From be916fe0609fe7228de82623df1770408ab4919b Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Wed, 23 Jul 2025 16:34:24 +0100 Subject: [PATCH 1/2] [lldb] add name-qualifiers FormatEntity --- lldb/docs/use/formatting.rst | 3 + lldb/include/lldb/Core/DemangledNameInfo.h | 10 ++ lldb/include/lldb/Core/FormatEntity.h | 1 + lldb/source/Core/FormatEntity.cpp | 3 + .../TestSwiftAsyncHiddenFrames.py | 2 +- lldb/unittests/Core/MangledTest.cpp | 107 +++++++++++------- 6 files changed, 87 insertions(+), 39 deletions(-) diff --git a/lldb/docs/use/formatting.rst b/lldb/docs/use/formatting.rst index 21b3ca1912b02..35caf3b31b662 100644 --- a/lldb/docs/use/formatting.rst +++ b/lldb/docs/use/formatting.rst @@ -89,6 +89,8 @@ A complete list of currently supported format string variables is listed below: +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``function.name-without-args`` | The name of the current function without arguments and values (used to include a function name in-line in the ``disassembly-format``) | +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``function.name-qualifiers`` | Any qualifiers added after the name of a function and before its arguments or template arguments. | ++---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``function.basename`` | The basename of the current function depending on the frame's language. E.g., for C++ the basename for ``void ns::foo::bar(int) const`` is ``bar``. | +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``function.prefix`` | Any prefix added to the demangled function name of the current function. This depends on the frame's language. E.g., for C++ the prefix will always be empty. | @@ -332,6 +334,7 @@ The function names displayed in backtraces/``frame info``/``thread info`` are th - ``${function.prefix}`` - ``${function.scope}`` - ``${function.basename}`` +- ``${function.name-qualifiers}`` - ``${function.template-arguments}`` - ``${function.formatted-arguments}`` - ``${function.qualifiers}`` diff --git a/lldb/include/lldb/Core/DemangledNameInfo.h b/lldb/include/lldb/Core/DemangledNameInfo.h index 9f567232dc50f..50f23506077c2 100644 --- a/lldb/include/lldb/Core/DemangledNameInfo.h +++ b/lldb/include/lldb/Core/DemangledNameInfo.h @@ -59,6 +59,11 @@ struct DemangledNameInfo { /// \endcode std::pair QualifiersRange; + /// Indicates the [start, end) of the function's name qualifiers. This is a + /// catch-all range for anything in between the basename and the arguments, + /// that is not tracked by the rest of the pairs. + std::pair NameQualifiersRange; + /// Indicates the [start, end) of the function's prefix. This is a /// catch-all range for anything that is not tracked by the rest of /// the pairs. @@ -88,6 +93,11 @@ struct DemangledNameInfo { return QualifiersRange.second >= QualifiersRange.first; } + /// Returns \c true if this object holds a valid name qualifiers range. + bool hasNameQualifiers() const { + return NameQualifiersRange.second >= NameQualifiersRange.first; + } + /// Returns \c true if this object holds a valid prefix range. bool hasPrefix() const { return PrefixRange.second >= PrefixRange.first; } diff --git a/lldb/include/lldb/Core/FormatEntity.h b/lldb/include/lldb/Core/FormatEntity.h index 17fee068230b2..d602edffb4c88 100644 --- a/lldb/include/lldb/Core/FormatEntity.h +++ b/lldb/include/lldb/Core/FormatEntity.h @@ -91,6 +91,7 @@ struct Entry { FunctionPrefix, FunctionScope, FunctionBasename, + FunctionNameQualifiers, FunctionTemplateArguments, FunctionFormattedArguments, FunctionReturnLeft, diff --git a/lldb/source/Core/FormatEntity.cpp b/lldb/source/Core/FormatEntity.cpp index abcbdb0e135a3..610835b287277 100644 --- a/lldb/source/Core/FormatEntity.cpp +++ b/lldb/source/Core/FormatEntity.cpp @@ -113,6 +113,7 @@ constexpr Definition g_frame_child_entries[] = { constexpr Definition g_function_child_entries[] = { Definition("id", EntryType::FunctionID), Definition("name", EntryType::FunctionName), + Definition("name-qualifiers", EntryType::FunctionNameQualifiers), Definition("name-without-args", EntryType::FunctionNameNoArgs), Definition("name-with-args", EntryType::FunctionNameWithArgs), Definition("mangled-name", EntryType::FunctionMangledName), @@ -384,6 +385,7 @@ const char *FormatEntity::Entry::TypeToCString(Type t) { ENUM_TO_CSTR(FunctionDidChange); ENUM_TO_CSTR(FunctionInitialFunction); ENUM_TO_CSTR(FunctionName); + ENUM_TO_CSTR(FunctionNameQualifiers); ENUM_TO_CSTR(FunctionNameWithArgs); ENUM_TO_CSTR(FunctionNameNoArgs); ENUM_TO_CSTR(FunctionMangledName); @@ -1852,6 +1854,7 @@ bool FormatEntity::Format(const Entry &entry, Stream &s, case Entry::Type::FunctionPrefix: case Entry::Type::FunctionScope: case Entry::Type::FunctionBasename: + case Entry::Type::FunctionNameQualifiers: case Entry::Type::FunctionTemplateArguments: case Entry::Type::FunctionFormattedArguments: case Entry::Type::FunctionReturnRight: diff --git a/lldb/test/API/lang/swift/async/unwind/hidden_frames/TestSwiftAsyncHiddenFrames.py b/lldb/test/API/lang/swift/async/unwind/hidden_frames/TestSwiftAsyncHiddenFrames.py index 6803dadb270b0..a600916d4158e 100644 --- a/lldb/test/API/lang/swift/async/unwind/hidden_frames/TestSwiftAsyncHiddenFrames.py +++ b/lldb/test/API/lang/swift/async/unwind/hidden_frames/TestSwiftAsyncHiddenFrames.py @@ -4,7 +4,7 @@ import lldbsuite.test.lldbutil as lldbutil -@skipIf(bugnumber="rdar://156178892") +# @skipIf(bugnumber="rdar://156178892") class TestSwiftAsyncHiddenFrames(lldbtest.TestBase): NO_DEBUG_INFO_TESTCASE = True diff --git a/lldb/unittests/Core/MangledTest.cpp b/lldb/unittests/Core/MangledTest.cpp index 921c3b4323785..be186a025f62a 100644 --- a/lldb/unittests/Core/MangledTest.cpp +++ b/lldb/unittests/Core/MangledTest.cpp @@ -615,6 +615,7 @@ INSTANTIATE_TEST_SUITE_P(DemanglingPartsTests, DemanglingPartsTestFixture, struct DemangledNameInfoTestCase { DemangledNameInfo expected_info; bool valid_basename; + bool valid_name_qualifiers; bool valid_scope; bool valid_arguments; bool valid_qualifiers; @@ -624,48 +625,76 @@ struct DemangledNameInfoTestCase { DemangledNameInfoTestCase g_demangled_name_info_test_cases[] = { // clang-format off - { - { /*.BasenameRange=*/{0, 10}, /*.ScopeRange=*/{1, 0}, /*.ArgumentsRange=*/{1, 0}, - /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, /*.SuffixRange=*/{1, 0} + { + { + /*.BasenameRange=*/{0, 10}, /*.NameQualifiersRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, + /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, + /*.SuffixRange=*/{1, 0} }, - /*valid_basename=*/true, /*valid_scope=*/false, /*valid_arguments=*/false, - /*valid_qualifiers=*/false, /*valid_prefix=*/false, /*valid_suffix=*/false, - }, - { - { /*.BasenameRange=*/{1, 0}, /*.ScopeRange=*/{0, 10}, /*.ArgumentsRange=*/{1, 0}, - /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, /*.SuffixRange=*/{1, 0} + /*valid_basename=*/true, /*valid_name_qualifiers=*/false, /*valid_scope=*/false, + /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_prefix=*/false, + /*valid_suffix=*/false, + }, + { + { + /*.BasenameRange=*/{1, 0}, /*.NameQualifiersRange=*/{0, 10}, /*.ScopeRange=*/{1, 0}, + /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, + /*.SuffixRange=*/{1, 0} }, - /*valid_basename=*/false, /*valid_scope=*/true, /*valid_arguments=*/false, - /*valid_qualifiers=*/false, /*valid_prefix=*/false, /*valid_suffix=*/false, - }, - { - { /*.BasenameRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, /*.ArgumentsRange=*/{0, 10}, - /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, /*.SuffixRange=*/{1, 0} + /*valid_basename=*/false, /*valid_name_qualifiers=*/true, /*valid_scope=*/false, + /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_prefix=*/false, + /*valid_suffix=*/false, + }, + { + { + /*.BasenameRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.ScopeRange=*/{0, 10}, + /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, + /*.SuffixRange=*/{1, 0} }, - /*valid_basename=*/false, /*valid_scope=*/false, /*valid_arguments=*/true, - /*valid_qualifiers=*/false, /*valid_prefix=*/false, /*valid_suffix=*/false, - }, - { - { /*.BasenameRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, /*.ArgumentsRange=*/{1, 0}, - /*.QualifiersRange=*/{0, 10}, /*.PrefixRange=*/{1, 0}, /*.SuffixRange=*/{1, 0} + /*valid_basename=*/false, /*valid_name_qualifiers=*/false, /*valid_scope=*/true, + /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_prefix=*/false, + /*valid_suffix=*/false, + }, + { + { + /*.BasenameRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, + /*.ArgumentsRange=*/{0, 10}, /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, + /*.SuffixRange=*/{1, 0} }, - /*valid_basename=*/false, /*valid_scope=*/false, /*valid_arguments=*/false, - /*valid_qualifiers=*/true, /*valid_prefix=*/false, /*valid_suffix=*/false, - }, - { - { /*.BasenameRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, /*.ArgumentsRange=*/{1, 0}, - /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{0, 10}, /*.SuffixRange=*/{1, 0} + /*valid_basename=*/false, /*valid_name_qualifiers=*/false, /*valid_scope=*/false, + /*valid_arguments=*/true, /*valid_qualifiers=*/false, /*valid_prefix=*/false, + /*valid_suffix=*/false, + }, + { + { + /*.BasenameRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, + /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{0, 10}, /*.PrefixRange=*/{1, 0}, + /*.SuffixRange=*/{1, 0} }, - /*valid_basename=*/false, /*valid_scope=*/false, /*valid_arguments=*/false, - /*valid_qualifiers=*/false, /*valid_prefix=*/true, /*valid_suffix=*/false, - }, - { - { /*.BasenameRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, /*.ArgumentsRange=*/{1, 0}, - /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, /*.SuffixRange=*/{0, 10} + /*valid_basename=*/false, /*valid_name_qualifiers=*/false, /*valid_scope=*/false, + /*valid_arguments=*/false, /*valid_qualifiers=*/true, /*valid_prefix=*/false, + /*valid_suffix=*/false, + }, + { + { + /*.BasenameRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, + /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{0, 10}, + /*.SuffixRange=*/{1, 0} }, - /*valid_basename=*/false, /*valid_scope=*/false, /*valid_arguments=*/false, - /*valid_qualifiers=*/false, /*valid_prefix=*/false, /*valid_suffix=*/true, - }, + /*valid_basename=*/false, /*valid_name_qualifiers=*/false, /*valid_scope=*/false, + /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_prefix=*/true, + /*valid_suffix=*/false, + }, + { + { + /*.BasenameRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, + /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, + /*.SuffixRange=*/{0, 10} + }, + /*valid_basename=*/false, /*valid_name_qualifiers=*/false, /*valid_scope=*/false, + /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_prefix=*/false, + /*valid_suffix=*/true, + }, // clang-format on }; @@ -673,10 +702,12 @@ struct DemangledNameInfoTestFixture : public ::testing::TestWithParam {}; TEST_P(DemangledNameInfoTestFixture, DemangledNameInfoRanges) { - const auto &[info, valid_basename, valid_scope, valid_arguments, - valid_qualifiers, valid_prefix, valid_suffix] = GetParam(); + const auto &[info, valid_basename, valid_name_qualifiers, valid_scope, + valid_arguments, valid_qualifiers, valid_prefix, valid_suffix] = + GetParam(); ASSERT_EQ(info.hasBasename(), valid_basename); + ASSERT_EQ(info.hasNameQualifiers(), valid_name_qualifiers); ASSERT_EQ(info.hasScope(), valid_scope); ASSERT_EQ(info.hasArguments(), valid_arguments); ASSERT_EQ(info.hasQualifiers(), valid_qualifiers); From 43f85c33b55991f44f22111c1670d874e0d059c8 Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Mon, 28 Jul 2025 17:03:02 +0200 Subject: [PATCH 2/2] [lldb] add Template Arguments format entity --- lldb/include/lldb/Core/DemangledNameInfo.h | 15 + lldb/source/Core/Mangled.cpp | 9 + .../Language/CPlusPlus/CPlusPlusLanguage.cpp | 14 + .../Language/Swift/LanguageSwiftProperties.td | 2 +- .../Plugins/Language/Swift/SwiftLanguage.cpp | 129 +- .../Plugins/Language/Swift/SwiftLanguage.h | 6 + .../Plugins/Language/Swift/SwiftMangled.h | 24 + lldb/unittests/Core/MangledTest.cpp | 230 ++-- .../Core/SwiftDemanglingPartsTest.cpp | 1047 +++++++++++------ 9 files changed, 1004 insertions(+), 472 deletions(-) diff --git a/lldb/include/lldb/Core/DemangledNameInfo.h b/lldb/include/lldb/Core/DemangledNameInfo.h index 50f23506077c2..bdfcb488c2e01 100644 --- a/lldb/include/lldb/Core/DemangledNameInfo.h +++ b/lldb/include/lldb/Core/DemangledNameInfo.h @@ -30,6 +30,16 @@ struct DemangledNameInfo { /// \endcode std::pair BasenameRange; + /// A [start, end) pair for the function template arguments. + /// The basename is the name without scope qualifiers + /// and without template parameters. E.g., + /// \code{.cpp} + /// void foo::bar::someFunc(int) const && + /// ^ ^ + /// start end + /// \endcode + std::pair TemplateRange; + /// A [start, end) pair for the function scope qualifiers. /// E.g., for /// \code{.cpp} @@ -80,6 +90,11 @@ struct DemangledNameInfo { return BasenameRange.second > BasenameRange.first; } + /// Returns \c true if this object holds a valid template range. + bool hasTemplate() const { + return TemplateRange.second >= TemplateRange.first; + } + /// Returns \c true if this object holds a valid scope range. bool hasScope() const { return ScopeRange.second >= ScopeRange.first; } diff --git a/lldb/source/Core/Mangled.cpp b/lldb/source/Core/Mangled.cpp index 5e4b7844d2432..62b5b300564f6 100644 --- a/lldb/source/Core/Mangled.cpp +++ b/lldb/source/Core/Mangled.cpp @@ -173,6 +173,15 @@ GetSwiftDemangledStr(ConstString m_mangled, const SymbolContext *sc, info.SuffixRange.first = std::max(info.BasenameRange.second, info.ArgumentsRange.second); info.SuffixRange.second = demangled.length(); + if (info.hasBasename() && info.hasArguments()) { + if (info.hasTemplate()) { + info.NameQualifiersRange.second = + std::min(info.ArgumentsRange.first, info.TemplateRange.first); + } else { + info.NameQualifiersRange.second = info.ArgumentsRange.first; + } + info.NameQualifiersRange.first = info.BasenameRange.second; + } // Don't cache the demangled name if the function isn't available yet. // Only cache eFullName demangled functions to keep the cache consistent. diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp index ca236e9da694a..d053f76c01dee 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp @@ -1953,6 +1953,20 @@ bool CPlusPlusLanguage::HandleFrameFormatVariable( return true; } + case FormatEntity::Entry::Type::FunctionNameQualifiers: { + auto name_or_err = GetDemangledBasename(sc); + if (!name_or_err) { + LLDB_LOG_ERROR(GetLog(LLDBLog::Language), name_or_err.takeError(), + "Failed to handle ${{function.name-qualifiers}} " + "frame-format variable: {0}"); + return false; + } + + s << *name_or_err; + + return true; + } + case FormatEntity::Entry::Type::FunctionTemplateArguments: { auto template_args_or_err = GetDemangledTemplateArguments(sc); if (!template_args_or_err) { diff --git a/lldb/source/Plugins/Language/Swift/LanguageSwiftProperties.td b/lldb/source/Plugins/Language/Swift/LanguageSwiftProperties.td index b863e32b52d89..9af8dc9ddb660 100644 --- a/lldb/source/Plugins/Language/Swift/LanguageSwiftProperties.td +++ b/lldb/source/Plugins/Language/Swift/LanguageSwiftProperties.td @@ -3,6 +3,6 @@ include "../../../../include/lldb/Core/PropertiesBase.td" let Definition = "language_swift" in { def FunctionNameFormat: Property<"function-name-format", "FormatEntity">, Global, - DefaultStringValue<"${function.prefix}${ansi.fg.yellow}${function.basename}${ansi.normal}${function.formatted-arguments}${function.suffix}">, + DefaultStringValue<"${function.prefix}${ansi.fg.yellow}${function.basename}${ansi.normal}${function.name-qualifiers}${function.template-arguments}${function.formatted-arguments}${function.suffix}">, Desc<"Swift specific frame format string to use when displaying stack frame information for threads.">; } \ No newline at end of file diff --git a/lldb/source/Plugins/Language/Swift/SwiftLanguage.cpp b/lldb/source/Plugins/Language/Swift/SwiftLanguage.cpp index 671d470d22945..cb1093fd1adb8 100644 --- a/lldb/source/Plugins/Language/Swift/SwiftLanguage.cpp +++ b/lldb/source/Plugins/Language/Swift/SwiftLanguage.cpp @@ -1718,13 +1718,7 @@ bool SwiftLanguage::GetFunctionDisplayName( // No need to customize this. return false; case Language::FunctionNameRepresentation::eNameWithNoArgs: { - if (!sc.function) - return false; - if (sc.function->GetLanguage() != eLanguageTypeSwift) - return false; - std::string display_name = SwiftLanguageRuntime::DemangleSymbolAsString( - sc.function->GetMangled().GetMangledName().GetStringRef(), - SwiftLanguageRuntime::eSimplified, &sc, exe_ctx); + std::string display_name = GetDemangledFunctionName(sc, exe_ctx); if (display_name.empty()) return false; s << display_name; @@ -1759,6 +1753,7 @@ bool SwiftLanguage::GetFunctionDisplayName( variable_list_sp->AppendVariablesWithScope(eValueTypeVariableArgument, args); + s << GetFunctionTemplateArguments(sc, exe_ctx); s << GetFunctionDisplayArgs(sc, args, exe_ctx); return true; } @@ -1766,23 +1761,58 @@ bool SwiftLanguage::GetFunctionDisplayName( return false; } -std::string SwiftLanguage::GetFunctionName(const SymbolContext &sc, - const ExecutionContext *exe_ctx) { +std::string +SwiftLanguage::GetDemangledFunctionName(const SymbolContext &sc, + const ExecutionContext *exe_ctx) { if (!sc.function) return {}; if (sc.function->GetLanguage() != eLanguageTypeSwift) return {}; - std::string name = SwiftLanguageRuntime::DemangleSymbolAsString( + return SwiftLanguageRuntime::DemangleSymbolAsString( sc.GetPossiblyInlinedFunctionName().GetMangledName(), SwiftLanguageRuntime::eSimplified, &sc, exe_ctx); - if (name.empty()) +} + +std::string SwiftLanguage::GetFunctionName(const SymbolContext &sc, + const ExecutionContext *exe_ctx) { + std::string demangled_name = GetDemangledFunctionName(sc, exe_ctx); + if (demangled_name.empty()) return {}; - size_t open_paren = name.find('('); - size_t generic = name.find('<'); + size_t open_paren = demangled_name.find('('); + size_t generic = demangled_name.find('<'); size_t name_end = std::min(open_paren, generic); if (name_end == std::string::npos) - return name; - return name.substr(0, name_end); + return demangled_name; + return demangled_name.substr(0, name_end); +} + +std::string +SwiftLanguage::GetFunctionTemplateArguments(const SymbolContext &sc, + const ExecutionContext *exe_ctx) { + std::string demangled_name = GetDemangledFunctionName(sc, exe_ctx); + if (demangled_name.empty()) + return {}; + size_t open_paren = demangled_name.find('('); + size_t generic_start = demangled_name.find('<'); + if (generic_start == std::string::npos || generic_start > open_paren) + return {}; + + int generic_depth = 1; + size_t generic_end = generic_start + 1; + + while (generic_end < demangled_name.size() && generic_depth > 0) { + if (demangled_name[generic_end] == '<') { + generic_depth++; + } else if (demangled_name[generic_end] == '>') { + generic_depth--; + } + generic_end++; + } + + if (generic_depth != 0) + return {}; + + return demangled_name.substr(generic_start, generic_end - generic_start); } std::string SwiftLanguage::GetFunctionDisplayArgs( @@ -1790,38 +1820,15 @@ std::string SwiftLanguage::GetFunctionDisplayArgs( const lldb_private::ExecutionContext *exe_ctx) { ExecutionContextScope *exe_scope = exe_ctx ? exe_ctx->GetBestExecutionContextScope() : NULL; - std::string name = SwiftLanguageRuntime::DemangleSymbolAsString( - sc.function->GetMangled().GetMangledName().GetStringRef(), - SwiftLanguageRuntime::eSimplified, &sc, exe_ctx); + std::string name = GetDemangledFunctionName(sc, exe_ctx); lldb_private::StreamString s; const char *cstr = name.data(); const char *open_paren = strchr(cstr, '('); const char *close_paren = nullptr; - const char *generic = strchr(cstr, '<'); - // If before the arguments list begins there is a template sign - // then scan to the end of the generic args before you try to find - // the arguments list. - const char *generic_start = generic; - if (generic && open_paren && generic < open_paren) { - int generic_depth = 1; - ++generic; - for (; *generic && generic_depth > 0; generic++) { - if (*generic == '<') - generic_depth++; - if (*generic == '>') - generic_depth--; - } - if (*generic) - open_paren = strchr(generic, '('); - else - open_paren = nullptr; - } if (open_paren) { close_paren = strchr(open_paren, ')'); } - if (generic_start && generic_start < open_paren) - s.Write(generic_start, open_paren - generic_start); s.PutChar('('); const size_t num_args = args.GetSize(); @@ -1945,6 +1952,23 @@ GetDemangledBasename(const SymbolContext &sc) { info.BasenameRange.second); } +static llvm::Expected +GetDemangledNameQualifiers(const SymbolContext &sc) { + auto info_or_err = GetAndValidateInfo(sc); + if (!info_or_err) + return info_or_err.takeError(); + + auto [demangled_name, info] = *info_or_err; + + if (!info.hasPrefix()) + return llvm::createStringError( + "DemangledInfo for '%s does not have a name qualifiers range.", + demangled_name.data()); + + return demangled_name.slice(info.NameQualifiersRange.first, + info.NameQualifiersRange.second); +} + static llvm::Expected GetDemangledFunctionPrefix(const SymbolContext &sc) { auto info_or_err = GetAndValidateInfo(sc); @@ -1955,7 +1979,7 @@ GetDemangledFunctionPrefix(const SymbolContext &sc) { if (!info.hasPrefix()) return llvm::createStringError( - "DemangledInfo for '%s does not have suffix range.", + "DemangledInfo for '%s does not have a prefix range.", demangled_name.data()); return demangled_name.slice(info.PrefixRange.first, info.PrefixRange.second); @@ -1971,7 +1995,7 @@ GetDemangledFunctionSuffix(const SymbolContext &sc) { if (!info.hasSuffix()) return llvm::createStringError( - "DemangledInfo for '%s does not have suffix range.", + "DemangledInfo for '%s does not have a suffix range.", demangled_name.data()); return demangled_name.slice(info.SuffixRange.first, info.SuffixRange.second); @@ -2026,6 +2050,24 @@ bool SwiftLanguage::HandleFrameFormatVariable(const SymbolContext &sc, return true; } + case FormatEntity::Entry::Type::FunctionNameQualifiers: { + auto qualifiers_or_err = GetDemangledNameQualifiers(sc); + if (!qualifiers_or_err) { + LLDB_LOG_ERROR(GetLog(LLDBLog::Language), qualifiers_or_err.takeError(), + "Failed to handle ${{function.name-qualifiers}} " + "frame-format variable: {0}"); + return false; + } + + s << *qualifiers_or_err; + + return true; + } + case FormatEntity::Entry::Type::FunctionTemplateArguments: { + s << GetFunctionTemplateArguments(sc, exe_ctx); + + return true; + } case FormatEntity::Entry::Type::FunctionFormattedArguments: { // This ensures we print the arguments even when no debug-info is available. // @@ -2034,9 +2076,7 @@ bool SwiftLanguage::HandleFrameFormatVariable(const SymbolContext &sc, // once we have a "fallback operator" in the frame-format language. if (!sc.function && sc.symbol) return PrintDemangledArgumentList(s, sc); - std::string display_name = SwiftLanguageRuntime::DemangleSymbolAsString( - sc.function->GetMangled().GetMangledName().GetStringRef(), - SwiftLanguageRuntime::eSimplified, &sc, exe_ctx); + std::string display_name = GetDemangledFunctionName(sc, exe_ctx); if (display_name.empty()) return false; @@ -2076,7 +2116,6 @@ bool SwiftLanguage::HandleFrameFormatVariable(const SymbolContext &sc, } case FormatEntity::Entry::Type::FunctionScope: - case FormatEntity::Entry::Type::FunctionTemplateArguments: case FormatEntity::Entry::Type::FunctionReturnRight: case FormatEntity::Entry::Type::FunctionReturnLeft: case FormatEntity::Entry::Type::FunctionQualifiers: diff --git a/lldb/source/Plugins/Language/Swift/SwiftLanguage.h b/lldb/source/Plugins/Language/Swift/SwiftLanguage.h index 248895f5b5e92..3460ccf43cc95 100644 --- a/lldb/source/Plugins/Language/Swift/SwiftLanguage.h +++ b/lldb/source/Plugins/Language/Swift/SwiftLanguage.h @@ -69,6 +69,9 @@ class SwiftLanguage : public Language { FunctionNameRepresentation representation, Stream &s) override; + std::string GetDemangledFunctionName(const SymbolContext &sc, + const ExecutionContext *exe_ctx); + /// Returns the name of function up to the first generic or opening /// parenthesis. /// @@ -83,6 +86,9 @@ class SwiftLanguage : public Language { std::string GetFunctionName(const SymbolContext &sc, const ExecutionContext *exe_ctx); + std::string GetFunctionTemplateArguments(const SymbolContext &sc, + const ExecutionContext *exe_ctx); + /// Returns the arguments of a function call with its generics if any. /// /// Calling GetFunctionDisplayArgs on the following function call will return diff --git a/lldb/source/Plugins/Language/Swift/SwiftMangled.h b/lldb/source/Plugins/Language/Swift/SwiftMangled.h index 5512d80d8daff..242279c475ce7 100644 --- a/lldb/source/Plugins/Language/Swift/SwiftMangled.h +++ b/lldb/source/Plugins/Language/Swift/SwiftMangled.h @@ -32,6 +32,7 @@ class TrackingNodePrinter : public NodePrinter { private: lldb_private::DemangledNameInfo info; std::optional parametersDepth; + std::optional genericsSignatureDepth; void startName() { if (!info.hasBasename()) @@ -43,6 +44,23 @@ class TrackingNodePrinter : public NodePrinter { info.BasenameRange.second = getStreamLength(); } + void startGenericSignature(unsigned depth) { + if (genericsSignatureDepth || !info.hasBasename() || + info.TemplateRange.first < info.TemplateRange.second) { + return; + } + info.TemplateRange.first = getStreamLength(); + genericsSignatureDepth = depth; + } + + void endGenericSignature(unsigned depth) { + if (!genericsSignatureDepth || *genericsSignatureDepth != depth || + info.TemplateRange.first < info.TemplateRange.second) { + return; + } + info.TemplateRange.second = getStreamLength(); + } + void startParameters(unsigned depth) { if (parametersDepth || !info.hasBasename() || info.ArgumentsRange.first < info.ArgumentsRange.second) { @@ -85,6 +103,12 @@ class TrackingNodePrinter : public NodePrinter { endName(); } + void printGenericSignature(NodePointer Node, unsigned depth) override { + startGenericSignature(depth); + NodePrinter::printGenericSignature(Node, depth); + endGenericSignature(depth); + } + void printFunctionParameters(NodePointer LabelList, NodePointer ParameterType, unsigned depth, bool showTypes) override { startParameters(depth); diff --git a/lldb/unittests/Core/MangledTest.cpp b/lldb/unittests/Core/MangledTest.cpp index be186a025f62a..68bfef1ecbd4a 100644 --- a/lldb/unittests/Core/MangledTest.cpp +++ b/lldb/unittests/Core/MangledTest.cpp @@ -413,142 +413,202 @@ struct DemanglingPartsTestCase { DemanglingPartsTestCase g_demangling_parts_test_cases[] = { // clang-format off { "_ZNVKO3BarIN2ns3QuxIiEEE1CIPFi3FooIS_IiES6_EEE6methodIS6_EENS5_IT_SC_E5InnerIiEESD_SD_", - { /*.BasenameRange=*/{92, 98}, /*.ScopeRange=*/{36, 92}, /*.ArgumentsRange=*/{ 108, 158 }, - /*.QualifiersRange=*/{158, 176}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{92, 98}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{36, 92}, + /*.ArgumentsRange=*/{108, 158}, /*.QualifiersRange=*/{158, 176}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"method", /*.scope=*/"Bar>::C, Bar>)>::", /*.qualifiers=*/" const volatile &&" }, { "_Z7getFuncIfEPFiiiET_", - { /*.BasenameRange=*/{6, 13}, /*.ScopeRange=*/{6, 6}, /*.ArgumentsRange=*/{ 20, 27 }, - /*.QualifiersRange=*/{38, 38}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{6, 13}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{6, 6}, + /*.ArgumentsRange=*/{20, 27}, /*.QualifiersRange=*/{38, 38}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"getFunc", /*.scope=*/"", /*.qualifiers=*/"" }, { "_ZN1f1b1c1gEv", - { /*.BasenameRange=*/{9, 10}, /*.ScopeRange=*/{0, 9}, /*.ArgumentsRange=*/{ 10, 12 }, - /*.QualifiersRange=*/{12, 12}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{9, 10}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 9}, + /*.ArgumentsRange=*/{10, 12}, /*.QualifiersRange=*/{12, 12}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"g", /*.scope=*/"f::b::c::", /*.qualifiers=*/"" }, { "_ZN5test73fD1IiEEDTcmtlNS_1DEL_ZNS_1bEEEcvT__EES2_", - { /*.BasenameRange=*/{45, 48}, /*.ScopeRange=*/{38, 45}, /*.ArgumentsRange=*/{ 53, 58 }, - /*.QualifiersRange=*/{58, 58}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{45, 48}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{38, 45}, + /*.ArgumentsRange=*/{53, 58}, /*.QualifiersRange=*/{58, 58}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"fD1", /*.scope=*/"test7::", /*.qualifiers=*/"" }, { "_ZN5test73fD1IiEEDTcmtlNS_1DEL_ZNS_1bINDT1cE1dEEEEEcvT__EES2_", - { /*.BasenameRange=*/{61, 64}, /*.ScopeRange=*/{54, 61}, /*.ArgumentsRange=*/{ 69, 79 }, - /*.QualifiersRange=*/{79, 79}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{61, 64}, /*.TemplateRange=*/{0, 0},/*.ScopeRange=*/{54, 61}, + /*.ArgumentsRange=*/{69, 79}, /*.QualifiersRange=*/{79, 79}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"fD1", /*.scope=*/"test7::", /*.qualifiers=*/"" }, { "_ZN5test7INDT1cE1dINDT1cE1dEEEE3fD1INDT1cE1dINDT1cE1dEEEEEDTcmtlNS_1DEL_ZNS_1bINDT1cE1dEEEEEcvT__EES2_", - { /*.BasenameRange=*/{120, 123}, /*.ScopeRange=*/{81, 120}, /*.ArgumentsRange=*/{ 155, 168 }, - /*.QualifiersRange=*/{168, 168}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{120, 123}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{81, 120}, + /*.ArgumentsRange=*/{155, 168}, /*.QualifiersRange=*/{168, 168}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"fD1", /*.scope=*/"test7>::", /*.qualifiers=*/"" }, { "_ZN8nlohmann16json_abi_v3_11_310basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEbxydS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvE5parseIRA29_KcEESE_OT_NS2_8functionIFbiNS0_6detail13parse_event_tERSE_EEEbb", - { /*.BasenameRange=*/{687, 692}, /*.ScopeRange=*/{343, 687}, /*.ArgumentsRange=*/{ 713, 1174 }, - /*.QualifiersRange=*/{1174, 1174}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{687, 692}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{343, 687}, + /*.ArgumentsRange=*/{713, 1174}, /*.QualifiersRange=*/{1174, 1174}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"parse", /*.scope=*/"nlohmann::json_abi_v3_11_3::basic_json, std::__1::allocator>, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::__1::vector>, void>::", /*.qualifiers=*/"" }, { "_ZN8nlohmann16json_abi_v3_11_310basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEbxydS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC1EDn", - { /*.BasenameRange=*/{344, 354}, /*.ScopeRange=*/{0, 344}, /*.ArgumentsRange=*/{ 354, 370 }, - /*.QualifiersRange=*/{370, 370}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{344, 354}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 344}, + /*.ArgumentsRange=*/{354, 370}, /*.QualifiersRange=*/{370, 370}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"basic_json", /*.scope=*/"nlohmann::json_abi_v3_11_3::basic_json, std::__1::allocator>, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::__1::vector>, void>::", /*.qualifiers=*/"" }, { "_Z3fppIiEPFPFvvEiEf", - { /*.BasenameRange=*/{10, 13}, /*.ScopeRange=*/{10, 10}, /*.ArgumentsRange=*/{ 18, 25 }, - /*.QualifiersRange=*/{34,34}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{10, 13}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{10, 10}, + /*.ArgumentsRange=*/{18, 25}, /*.QualifiersRange=*/{34,34}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"fpp", /*.scope=*/"", /*.qualifiers=*/"" }, { "_Z3fppIiEPFPFvvEN2ns3FooIiEEEf", - { /*.BasenameRange=*/{10, 13}, /*.ScopeRange=*/{10, 10}, /*.ArgumentsRange=*/{ 18, 25 }, - /*.QualifiersRange=*/{43, 43}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{10, 13}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{10, 10}, + /*.ArgumentsRange=*/{18, 25}, /*.QualifiersRange=*/{43, 43}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"fpp", /*.scope=*/"", /*.qualifiers=*/"" }, { "_Z3fppIiEPFPFvPFN2ns3FooIiEENS2_3BarIfE3QuxEEEPFS2_S2_EEf", - { /*.BasenameRange=*/{10, 13}, /*.ScopeRange=*/{10, 10}, /*.ArgumentsRange=*/{ 18, 25 }, - /*.QualifiersRange=*/{108, 108}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{10, 13}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{10, 10}, + /*.ArgumentsRange=*/{18, 25}, /*.QualifiersRange=*/{108, 108}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"fpp", /*.scope=*/"", /*.qualifiers=*/"" }, { "_ZN2ns8HasFuncsINS_3FooINS1_IiE3BarIfE3QuxEEEE3fppIiEEPFPFvvEiEf", - { /*.BasenameRange=*/{64, 67}, /*.ScopeRange=*/{10, 64}, /*.ArgumentsRange=*/{ 72, 79 }, - /*.QualifiersRange=*/{88, 88}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{64, 67}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{10, 64}, + /*.ArgumentsRange=*/{72, 79}, /*.QualifiersRange=*/{88, 88}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"fpp", /*.scope=*/"ns::HasFuncs::Bar::Qux>>::", /*.qualifiers=*/"" }, { "_ZN2ns8HasFuncsINS_3FooINS1_IiE3BarIfE3QuxEEEE3fppIiEEPFPFvvES2_Ef", - { /*.BasenameRange=*/{64, 67}, /*.ScopeRange=*/{10, 64}, /*.ArgumentsRange=*/{ 72, 79 }, - /*.QualifiersRange=*/{97, 97}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{64, 67}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{10, 64}, + /*.ArgumentsRange=*/{72, 79}, /*.QualifiersRange=*/{97, 97}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"fpp", /*.scope=*/"ns::HasFuncs::Bar::Qux>>::", /*.qualifiers=*/"", }, { "_ZN2ns8HasFuncsINS_3FooINS1_IiE3BarIfE3QuxEEEE3fppIiEEPFPFvPFS2_S5_EEPFS2_S2_EEf", - { /*.BasenameRange=*/{64, 67}, /*.ScopeRange=*/{10, 64}, /*.ArgumentsRange=*/{ 72, 79 }, - /*.QualifiersRange=*/{162, 162}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{64, 67}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{10, 64}, + /*.ArgumentsRange=*/{72, 79}, /*.QualifiersRange=*/{162, 162}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"fpp", /*.scope=*/"ns::HasFuncs::Bar::Qux>>::", /*.qualifiers=*/"", }, { "_ZNKO2ns3ns23Bar3fooIiEEPFPFNS0_3FooIiEEiENS3_IfEEEi", - { /*.BasenameRange=*/{37, 40}, /*.ScopeRange=*/{23, 37}, /*.ArgumentsRange=*/{ 45, 50 }, - /*.QualifiersRange=*/{78, 87}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{37, 40}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{23, 37}, + /*.ArgumentsRange=*/{45, 50}, /*.QualifiersRange=*/{78, 87}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"foo", /*.scope=*/"ns::ns2::Bar::", /*.qualifiers=*/" const &&", }, { "_ZTV11ImageLoader", - { /*.BasenameRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{ 0, 0 }, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{0, 0}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{0, 0}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"", /*.scope=*/"", /*.qualifiers=*/"", /*.valid_basename=*/false }, { "___ZNK5dyld313MachOAnalyzer18forEachInitializerER11DiagnosticsRKNS0_15VMAddrConverterEU13block_pointerFvjEPKv_block_invoke.204", - { /*.BasenameRange=*/{55, 73}, /*.ScopeRange=*/{33, 55}, /*.ArgumentsRange=*/{ 73, 181 }, - /*.QualifiersRange=*/{181, 187}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{55, 73}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{33, 55}, + /*.ArgumentsRange=*/{73, 181}, /*.QualifiersRange=*/{181, 187}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"forEachInitializer", /*.scope=*/"dyld3::MachOAnalyzer::", /*.qualifiers=*/" const", }, { "_ZZN5dyld45startEPNS_10KernelArgsEPvS2_ENK3$_1clEv", - { /*.BasenameRange=*/{53, 63}, /*.ScopeRange=*/{0, 53}, /*.ArgumentsRange=*/{ 63, 65 }, - /*.QualifiersRange=*/{65, 71}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{53, 63}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 53}, + /*.ArgumentsRange=*/{63, 65}, /*.QualifiersRange=*/{65, 71}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"operator()", /*.scope=*/"dyld4::start(dyld4::KernelArgs*, void*, void*)::$_1::", /*.qualifiers=*/" const", }, { "_ZZNK5dyld46Loader38runInitializersBottomUpPlusUpwardLinksERNS_12RuntimeStateEENK3$_0clEv", - { /*.BasenameRange=*/{88, 98}, /*.ScopeRange=*/{0, 88}, /*.ArgumentsRange=*/{ 98, 100 }, - /*.QualifiersRange=*/{100, 106}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{88, 98}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 88}, + /*.ArgumentsRange=*/{98, 100}, /*.QualifiersRange=*/{100, 106}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"operator()", /*.scope=*/"dyld4::Loader::runInitializersBottomUpPlusUpwardLinks(dyld4::RuntimeState&) const::$_0::", /*.qualifiers=*/" const", }, { "_ZZNK5dyld46Loader38runInitializersBottomUpPlusUpwardLinksERNS_12RuntimeStateEENK3$_0clEv.cold", - { /*.BasenameRange=*/{88, 98}, /*.ScopeRange=*/{0, 88}, /*.ArgumentsRange=*/{ 98, 100 }, - /*.QualifiersRange=*/{100, 106}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} }, + { + /*.BasenameRange=*/{88, 98}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 88}, + /*.ArgumentsRange=*/{98, 100}, /*.QualifiersRange=*/{100, 106}, /*.NameQualifiersRange=*/{0, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0} + }, /*.basename=*/"operator()", /*.scope=*/"dyld4::Loader::runInitializersBottomUpPlusUpwardLinks(dyld4::RuntimeState&) const::$_0::", /*.qualifiers=*/" const", @@ -615,10 +675,11 @@ INSTANTIATE_TEST_SUITE_P(DemanglingPartsTests, DemanglingPartsTestFixture, struct DemangledNameInfoTestCase { DemangledNameInfo expected_info; bool valid_basename; - bool valid_name_qualifiers; + bool valid_template; bool valid_scope; bool valid_arguments; bool valid_qualifiers; + bool valid_name_qualifiers; bool valid_prefix; bool valid_suffix; }; @@ -627,73 +688,83 @@ DemangledNameInfoTestCase g_demangled_name_info_test_cases[] = { // clang-format off { { - /*.BasenameRange=*/{0, 10}, /*.NameQualifiersRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, - /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, + /*.BasenameRange=*/{0, 10}, /*.TemplateRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, + /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, /*.SuffixRange=*/{1, 0} }, - /*valid_basename=*/true, /*valid_name_qualifiers=*/false, /*valid_scope=*/false, - /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_prefix=*/false, - /*valid_suffix=*/false, + /*valid_basename=*/true, /*valid_template=*/false, /*valid_scope=*/false, + /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_name_qualifiers=*/false, + /*valid_prefix=*/false, /*valid_suffix=*/false, }, { { - /*.BasenameRange=*/{1, 0}, /*.NameQualifiersRange=*/{0, 10}, /*.ScopeRange=*/{1, 0}, - /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, + /*.BasenameRange=*/{1, 0}, /*.TemplateRange=*/{0, 10}, /*.ScopeRange=*/{1, 0}, + /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, /*.SuffixRange=*/{1, 0} }, /*valid_basename=*/false, /*valid_name_qualifiers=*/true, /*valid_scope=*/false, - /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_prefix=*/false, - /*valid_suffix=*/false, + /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_name_qualifiers=*/false, + /*valid_prefix=*/false, /*valid_suffix=*/false, + }, + { + { + /*.BasenameRange=*/{1, 0}, /*.TemplateRange=*/{1, 0}, /*.ScopeRange=*/{0, 10}, + /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, + /*.SuffixRange=*/{1, 0} + }, + /*valid_basename=*/false, /*valid_template=*/false, /*valid_scope=*/true, + /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_name_qualifiers=*/false, + /*valid_prefix=*/false, /*valid_suffix=*/false, }, { { - /*.BasenameRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.ScopeRange=*/{0, 10}, - /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, + /*.BasenameRange=*/{1, 0}, /*.TemplateRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, + /*.ArgumentsRange=*/{0, 10}, /*.QualifiersRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, /*.SuffixRange=*/{1, 0} }, - /*valid_basename=*/false, /*valid_name_qualifiers=*/false, /*valid_scope=*/true, - /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_prefix=*/false, - /*valid_suffix=*/false, + /*valid_basename=*/false, /*valid_template=*/false, /*valid_scope=*/false, + /*valid_arguments=*/true, /*valid_qualifiers=*/false, /*valid_name_qualifiers=*/false, + /*valid_prefix=*/false, /*valid_suffix=*/false, }, { { - /*.BasenameRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, - /*.ArgumentsRange=*/{0, 10}, /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, + /*.BasenameRange=*/{1, 0}, /*.TemplateRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, + /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{0, 10}, /*.NameQualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, /*.SuffixRange=*/{1, 0} }, - /*valid_basename=*/false, /*valid_name_qualifiers=*/false, /*valid_scope=*/false, - /*valid_arguments=*/true, /*valid_qualifiers=*/false, /*valid_prefix=*/false, - /*valid_suffix=*/false, + /*valid_basename=*/false, /*valid_template=*/false, /*valid_scope=*/false, + /*valid_arguments=*/false, /*valid_qualifiers=*/true, /*valid_name_qualifiers=*/false, + /*valid_prefix=*/false, /*valid_suffix=*/false, }, { { - /*.BasenameRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, - /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{0, 10}, /*.PrefixRange=*/{1, 0}, + /*.BasenameRange=*/{1, 0}, /*.TemplateRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, + /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.NameQualifiersRange=*/{0, 10}, /*.PrefixRange=*/{1, 0}, /*.SuffixRange=*/{1, 0} }, - /*valid_basename=*/false, /*valid_name_qualifiers=*/false, /*valid_scope=*/false, - /*valid_arguments=*/false, /*valid_qualifiers=*/true, /*valid_prefix=*/false, - /*valid_suffix=*/false, + /*valid_basename=*/false, /*valid_template=*/false, /*valid_scope=*/false, + /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_name_qualifiers=*/true, + /*valid_prefix=*/false, /*valid_suffix=*/false, }, { { - /*.BasenameRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, - /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{0, 10}, + /*.BasenameRange=*/{1, 0}, /*.TemplateRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, + /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.PrefixRange=*/{0, 10}, /*.SuffixRange=*/{1, 0} }, - /*valid_basename=*/false, /*valid_name_qualifiers=*/false, /*valid_scope=*/false, - /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_prefix=*/true, - /*valid_suffix=*/false, + /*valid_basename=*/false, /*valid_template=*/false, /*valid_scope=*/false, + /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_name_qualifiers=*/false, + /*valid_prefix=*/true, /*valid_suffix=*/false, }, { { - /*.BasenameRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, - /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, + /*.BasenameRange=*/{1, 0}, /*.TemplateRange=*/{1, 0}, /*.ScopeRange=*/{1, 0}, + /*.ArgumentsRange=*/{1, 0}, /*.QualifiersRange=*/{1, 0}, /*.NameQualifiersRange=*/{1, 0}, /*.PrefixRange=*/{1, 0}, /*.SuffixRange=*/{0, 10} }, - /*valid_basename=*/false, /*valid_name_qualifiers=*/false, /*valid_scope=*/false, - /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_prefix=*/false, - /*valid_suffix=*/true, + /*valid_basename=*/false, /*valid_template=*/false, /*valid_scope=*/false, + /*valid_arguments=*/false, /*valid_qualifiers=*/false, /*valid_name_qualifiers=*/false, + /*valid_prefix=*/false, /*valid_suffix=*/true, }, // clang-format on }; @@ -702,15 +773,16 @@ struct DemangledNameInfoTestFixture : public ::testing::TestWithParam {}; TEST_P(DemangledNameInfoTestFixture, DemangledNameInfoRanges) { - const auto &[info, valid_basename, valid_name_qualifiers, valid_scope, - valid_arguments, valid_qualifiers, valid_prefix, valid_suffix] = - GetParam(); + const auto &[info, valid_basename, valid_template, valid_scope, + valid_arguments, valid_qualifiers, valid_name_qualifiers, + valid_prefix, valid_suffix] = GetParam(); ASSERT_EQ(info.hasBasename(), valid_basename); - ASSERT_EQ(info.hasNameQualifiers(), valid_name_qualifiers); + ASSERT_EQ(info.hasTemplate(), valid_template); ASSERT_EQ(info.hasScope(), valid_scope); ASSERT_EQ(info.hasArguments(), valid_arguments); ASSERT_EQ(info.hasQualifiers(), valid_qualifiers); + ASSERT_EQ(info.hasNameQualifiers(), valid_name_qualifiers); ASSERT_EQ(info.hasPrefix(), valid_prefix); ASSERT_EQ(info.hasSuffix(), valid_suffix); } diff --git a/lldb/unittests/Core/SwiftDemanglingPartsTest.cpp b/lldb/unittests/Core/SwiftDemanglingPartsTest.cpp index 4d053504f63ad..a01bd5c3f702e 100644 --- a/lldb/unittests/Core/SwiftDemanglingPartsTest.cpp +++ b/lldb/unittests/Core/SwiftDemanglingPartsTest.cpp @@ -27,1199 +27,1541 @@ struct SwiftDemanglingPartsTestCase { SwiftDemanglingPartsTestCase g_swift_demangling_parts_test_cases[] = { // clang-format off - { "_TFC3foo3bar3basfT3zimCS_3zim_T_", - { /*.BasenameRange=*/{8, 11}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{11, 25}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 8}, /*.SuffixRange=*/{25, 31} + { "_TFC3foo3bar3basfT3zimCS_3zim_T_", + { + /*.BasenameRange=*/{8, 11}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{11, 25}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{11, 0}, + /*.PrefixRange=*/{0, 8}, /*.SuffixRange=*/{25, 31} }, /*.basename=*/"bas", /*.arguments=*/"(zim: foo.zim)" }, { "_TToFC3foo3bar3basfT3zimCS_3zim_T_", - { /*.BasenameRange=*/{14, 17}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{17, 31}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 14}, /*.SuffixRange=*/{31, 37} + { + /*.BasenameRange=*/{14, 17}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{17, 31}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{17, 0}, + /*.PrefixRange=*/{0, 14}, /*.SuffixRange=*/{31, 37} }, /*.basename=*/"bas", /*.arguments=*/"(zim: foo.zim)" }, { "_TTOFSC3fooFTSdSd_Sd", - { /*.BasenameRange=*/{25, 28}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{28, 56}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 25}, /*.SuffixRange=*/{56, 72} + { + /*.BasenameRange=*/{25, 28}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{28, 56}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{28, 0}, + /*.PrefixRange=*/{0, 25}, /*.SuffixRange=*/{56, 72} }, /*.basename=*/"foo", /*.arguments=*/"(Swift.Double, Swift.Double)" }, { "_T03foo3barC3basyAA3zimCAE_tFTo", - { /*.BasenameRange=*/{14, 17}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{17, 31}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 14}, /*.SuffixRange=*/{31, 37} + { + /*.BasenameRange=*/{14, 17}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{17, 31}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{17, 0}, + /*.PrefixRange=*/{0, 14}, /*.SuffixRange=*/{31, 37} }, /*.basename=*/"bas", /*.arguments=*/"(zim: foo.zim)" }, { "_T0SC3fooS2d_SdtFTO", - { /*.BasenameRange=*/{25, 28}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{28, 56}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 25}, /*.SuffixRange=*/{56, 72} + { + /*.BasenameRange=*/{25, 28}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{28, 56}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{28, 0}, + /*.PrefixRange=*/{0, 25}, /*.SuffixRange=*/{56, 72} }, /*.basename=*/"foo", /*.arguments=*/"(Swift.Double, Swift.Double)" }, { "_$s3foo3barC3bas3zimyAaEC_tFTo", - { /*.BasenameRange=*/{14, 17}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{17, 31}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 14}, /*.SuffixRange=*/{31, 37} + { + /*.BasenameRange=*/{14, 17}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{17, 31}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{17, 0}, + /*.PrefixRange=*/{0, 14}, /*.SuffixRange=*/{31, 37} }, /*.basename=*/"bas", /*.arguments=*/"(zim: foo.zim)" }, { "_$sSC3fooyS2d_SdtFTO", - { /*.BasenameRange=*/{25, 28}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{28, 56}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 25}, /*.SuffixRange=*/{56, 72} + { + /*.BasenameRange=*/{25, 28}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{28, 56}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{28, 0}, + /*.PrefixRange=*/{0, 25}, /*.SuffixRange=*/{56, 72} }, /*.basename=*/"foo", /*.arguments=*/"(Swift.Double, Swift.Double)" }, { "$s4main3fooyySiFyyXEfU_TA.1", - { /*.BasenameRange=*/{28, 38}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{39, 41}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 28}, /*.SuffixRange=*/{41, 103} + { + /*.BasenameRange=*/{28, 38}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{39, 41}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{38, 0}, + /*.PrefixRange=*/{0, 28}, /*.SuffixRange=*/{41, 103} }, /*.basename=*/"closure #1", /*.arguments=*/"()" }, { "$s4main8MyStructV3fooyyFAA1XV_Tg5.foo", - { /*.BasenameRange=*/{49, 52}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{52, 54}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 49}, /*.SuffixRange=*/{54, 89} + { + /*.BasenameRange=*/{49, 52}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{52, 54}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{52, 0}, + /*.PrefixRange=*/{0, 49}, /*.SuffixRange=*/{54, 89} }, /*.basename=*/"foo", /*.arguments=*/"()" }, { "_TTDFC3foo3bar3basfT3zimCS_3zim_T_", - { /*.BasenameRange=*/{16, 19}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{19, 33}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 16}, /*.SuffixRange=*/{33, 39} + { + /*.BasenameRange=*/{16, 19}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{19, 33}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{19, 0}, + /*.PrefixRange=*/{0, 16}, /*.SuffixRange=*/{33, 39} }, /*.basename=*/"bas", /*.arguments=*/"(zim: foo.zim)" }, { "_TF3foooi1pFTCS_3barVS_3bas_OS_3zim", - { /*.BasenameRange=*/{4, 11}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{11, 29}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 4}, /*.SuffixRange=*/{29, 40} + { + /*.BasenameRange=*/{4, 11}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{11, 29}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{11, 0}, + /*.PrefixRange=*/{0, 4}, /*.SuffixRange=*/{29, 40} }, /*.basename=*/"+ infix", /*.arguments=*/"(foo.bar, foo.bas)" }, { "_TF3foooP1xFTCS_3barVS_3bas_OS_3zim", - { /*.BasenameRange=*/{4, 13}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{13, 31}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 4}, /*.SuffixRange=*/{31, 42} + { + /*.BasenameRange=*/{4, 13}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{13, 31}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{13, 0}, + /*.PrefixRange=*/{0, 4}, /*.SuffixRange=*/{31, 42} }, /*.basename=*/"^ postfix", /*.arguments=*/"(foo.bar, foo.bas)" }, { "_TFC3foo3barCfT_S0_", - { /*.BasenameRange=*/{8, 25}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{25, 27}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 8}, /*.SuffixRange=*/{27, 38} + { + /*.BasenameRange=*/{8, 25}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{25, 27}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{25, 0}, + /*.PrefixRange=*/{0, 8}, /*.SuffixRange=*/{27, 38} }, /*.basename=*/"__allocating_init", /*.arguments=*/"()" }, { "_TFC3foo3barcfT_S0_", - { /*.BasenameRange=*/{8, 12}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{12, 14}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 8}, /*.SuffixRange=*/{14, 25} + { + /*.BasenameRange=*/{8, 12}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{12, 14}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{12, 0}, + /*.PrefixRange=*/{0, 8}, /*.SuffixRange=*/{14, 25} }, /*.basename=*/"init", /*.arguments=*/"()" }, { "_TIF1t1fFT1iSi1sSS_T_A_", - { /*.BasenameRange=*/{24, 25}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{25, 56}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 24}, /*.SuffixRange=*/{56, 62} + { + /*.BasenameRange=*/{24, 25}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{25, 56}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{25, 0}, + /*.PrefixRange=*/{0, 24}, /*.SuffixRange=*/{56, 62} }, /*.basename=*/"f", /*.arguments=*/"(i: Swift.Int, s: Swift.String)" }, { "_TIF1t1fFT1iSi1sSS_T_A0_", - { /*.BasenameRange=*/{24, 25}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{25, 56}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 24}, /*.SuffixRange=*/{56, 62} + { + /*.BasenameRange=*/{24, 25}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{25, 56}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{25, 0}, + /*.PrefixRange=*/{0, 24}, /*.SuffixRange=*/{56, 62} }, /*.basename=*/"f", /*.arguments=*/"(i: Swift.Int, s: Swift.String)" }, - { "_TFSqcfT_GSqx_", - { /*.BasenameRange=*/{15, 19}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{19, 21}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 15}, /*.SuffixRange=*/{21, 42} + { "_TTSg5Si___TFSqcfT_GSqx_", + { + /*.BasenameRange=*/{53, 57}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{57, 59}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{57, 0}, + /*.PrefixRange=*/{0, 53}, /*.SuffixRange=*/{59, 80} }, /*.basename=*/"init", /*.arguments=*/"()" }, { "_TF21class_bound_protocols32class_bound_protocol_compositionFT1xPS_10ClassBoundS_13NotClassBound__PS0_S1__", - { /*.BasenameRange=*/{22, 54}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{54, 129}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 22}, /*.SuffixRange=*/{129, 203} + { + /*.BasenameRange=*/{22, 54}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{54, 129}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{54, 0}, + /*.PrefixRange=*/{0, 22}, /*.SuffixRange=*/{129, 203} }, /*.basename=*/"class_bound_protocol_composition", /*.arguments=*/"(x: class_bound_protocols.ClassBound & class_bound_protocols.NotClassBound)" }, { "_TFVCC6nested6AClass12AnotherClass7AStruct9aFunctionfT1aSi_S2_", - { /*.BasenameRange=*/{35, 44}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{44, 58}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 35}, /*.SuffixRange=*/{58, 96} + { + /*.BasenameRange=*/{35, 44}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{44, 58}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{44, 0}, + /*.PrefixRange=*/{0, 35}, /*.SuffixRange=*/{58, 96} }, /*.basename=*/"aFunction", /*.arguments=*/"(a: Swift.Int)" }, { "_TFCF5types1gFT1bSb_T_L0_10Collection3zimfT_T_", - { /*.BasenameRange=*/{0, 3}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{3, 5}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{5, 60} + { + /*.BasenameRange=*/{0, 3}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{3, 5}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{3, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{5, 60} }, /*.basename=*/"zim", /*.arguments=*/"()" }, { "_TFF17capture_promotion22test_capture_promotionFT_FT_SiU_FT_Si_promote0", - { /*.BasenameRange=*/{0, 10}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{11, 13}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{13, 125} + { + /*.BasenameRange=*/{0, 10}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{11, 13}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{10, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{13, 125} }, /*.basename=*/"closure #1", /*.arguments=*/"()" }, { "_TFIVs8_Processi10_argumentsGSaSS_U_FT_GSaSS_", - { /*.BasenameRange=*/{0, 10}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{0, 0}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{10, 130} + { + /*.BasenameRange=*/{0, 10}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{0, 0}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{10, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{10, 130} }, /*.basename=*/"_arguments", /*.arguments=*/"" }, { "_TFIvVs8_Process10_argumentsGSaSS_iU_FT_GSaSS_", - { /*.BasenameRange=*/{0, 10}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{11, 13}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{13, 137} + { + /*.BasenameRange=*/{0, 10}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{11, 13}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{10, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{13, 137} }, /*.basename=*/"closure #1", /*.arguments=*/"()" }, { "_TTWC13call_protocol1CS_1PS_FS1_3foofT_Si", - { /*.BasenameRange=*/{37, 40}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{40, 42}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 37}, /*.SuffixRange=*/{42, 121} + { + /*.BasenameRange=*/{37, 40}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{40, 42}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{40, 0}, + /*.PrefixRange=*/{0, 37}, /*.SuffixRange=*/{42, 121} }, /*.basename=*/"foo", /*.arguments=*/"()" }, { "_T013call_protocol1CCAA1PA2aDP3fooSiyFTW", - { /*.BasenameRange=*/{37, 40}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{40, 42}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 37}, /*.SuffixRange=*/{42, 121} + { + /*.BasenameRange=*/{37, 40}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{40, 42}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{40, 0}, + /*.PrefixRange=*/{0, 37}, /*.SuffixRange=*/{42, 121} }, /*.basename=*/"foo", /*.arguments=*/"()" }, { "_TFC12dynamic_self1X1ffT_DS0_", - { /*.BasenameRange=*/{15, 16}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{16, 18}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 15}, /*.SuffixRange=*/{18, 26} + { + /*.BasenameRange=*/{15, 16}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{16, 18}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{16, 0}, + /*.PrefixRange=*/{0, 15}, /*.SuffixRange=*/{18, 26} }, /*.basename=*/"f", /*.arguments=*/"()" }, { "_TTSg5Si___TFSqcfT_GSqx_", - { /*.BasenameRange=*/{53, 57}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{57, 59}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 53}, /*.SuffixRange=*/{59, 80} + { + /*.BasenameRange=*/{53, 57}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{57, 59}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{57, 0}, + /*.PrefixRange=*/{0, 53}, /*.SuffixRange=*/{59, 80} }, /*.basename=*/"init", /*.arguments=*/"()" }, { "_TTSgq5Si___TFSqcfT_GSqx_", - { /*.BasenameRange=*/{65, 69}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{69, 71}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 65}, /*.SuffixRange=*/{71, 92} + { + /*.BasenameRange=*/{65, 69}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{69, 71}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{69, 0}, + /*.PrefixRange=*/{0, 65}, /*.SuffixRange=*/{71, 92} }, /*.basename=*/"init", /*.arguments=*/"()" }, { "_TTSg5SiSis3Foos_Sf___TFSqcfT_GSqx_", - { /*.BasenameRange=*/{102, 106}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{106, 108}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 102}, /*.SuffixRange=*/{108, 129} + { + /*.BasenameRange=*/{102, 106}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{106, 108}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{106, 0}, + /*.PrefixRange=*/{0, 102}, /*.SuffixRange=*/{108, 129} }, /*.basename=*/"init", /*.arguments=*/"()" }, { "_TTSg5Si_Sf___TFSqcfT_GSqx_", - { /*.BasenameRange=*/{66, 70}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{70, 72}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 66}, /*.SuffixRange=*/{72, 93} + { + /*.BasenameRange=*/{66, 70}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{70, 72}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{70, 0}, + /*.PrefixRange=*/{0, 66}, /*.SuffixRange=*/{72, 93} }, /*.basename=*/"init", /*.arguments=*/"()" }, { "_TTSr5Si___TF4test7genericurFxx", - { /*.BasenameRange=*/{61, 68}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{71, 74}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 61}, /*.SuffixRange=*/{74, 79} + { + /*.BasenameRange=*/{61, 68}, /*.TemplateRange=*/{68, 71}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{71, 74}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{68, 68}, + /*.PrefixRange=*/{0, 61}, /*.SuffixRange=*/{74, 79} }, /*.basename=*/"generic", /*.arguments=*/"(A)" }, { "_TTSrq5Si___TF4test7genericurFxx", - { /*.BasenameRange=*/{73, 80}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{83, 86}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 73}, /*.SuffixRange=*/{86, 91} + { + /*.BasenameRange=*/{73, 80}, /*.TemplateRange=*/{80, 83}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{83, 86}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{80, 80}, + /*.PrefixRange=*/{0, 73}, /*.SuffixRange=*/{86, 91} }, /*.basename=*/"generic", /*.arguments=*/"(A)" }, { "_TF8manglingX22egbpdajGbuEbxfgehfvwxnFT_T_", - { /*.BasenameRange=*/{9, 43}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{43, 45}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{45, 51} + { + /*.BasenameRange=*/{9, 43}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{43, 45}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{43, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{45, 51} }, /*.basename=*/"ليهمابتكلموشعربي؟", /*.arguments=*/"()" }, { "_TF8manglingX24ihqwcrbEcvIaIdqgAFGpqjyeFT_T_", - { /*.BasenameRange=*/{9, 36}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{36, 38}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{38, 44} + { + /*.BasenameRange=*/{9, 36}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{36, 38}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{36, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{38, 44} }, /*.basename=*/"他们为什么不说中文", /*.arguments=*/"()" }, { "_TF8manglingX27ihqwctvzcJBfGFJdrssDxIboAybFT_T_", - { /*.BasenameRange=*/{9, 36}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{36, 38}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{38, 44} + { + /*.BasenameRange=*/{9, 36}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{36, 38}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{36, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{38, 44} }, /*.basename=*/"他們爲什麽不說中文", /*.arguments=*/"()" }, { "_TF8manglingX30Proprostnemluvesky_uybCEdmaEBaFT_T_", - { /*.BasenameRange=*/{9, 35}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{35, 37}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{37, 43} + { + /*.BasenameRange=*/{9, 35}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{35, 37}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{35, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{37, 43} }, /*.basename=*/"Pročprostěnemluvíčesky", /*.arguments=*/"()" }, { "_TF8manglingXoi7p_qcaDcFTSiSi_Si", - { /*.BasenameRange=*/{9, 20}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{20, 42}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{42, 55} + { + /*.BasenameRange=*/{9, 20}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{20, 42}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{20, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{42, 55} }, /*.basename=*/"«+» infix", /*.arguments=*/"(Swift.Int, Swift.Int)" }, { "_TF8manglingoi2qqFTSiSi_T_", - { /*.BasenameRange=*/{9, 17}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{17, 39}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{39, 45} + { + /*.BasenameRange=*/{9, 17}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{17, 39}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{17, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{39, 45} }, /*.basename=*/"?? infix", /*.arguments=*/"(Swift.Int, Swift.Int)" }, { "_TFE11ext_structAV11def_structA1A4testfT_T_", - { /*.BasenameRange=*/{41, 45}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{45, 47}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 41}, /*.SuffixRange=*/{47, 53} + { + /*.BasenameRange=*/{41, 45}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{45, 47}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{45, 0}, + /*.PrefixRange=*/{0, 41}, /*.SuffixRange=*/{47, 53} }, /*.basename=*/"test", /*.arguments=*/"()" }, { "_TF13devirt_accessP5_DISC15getPrivateClassFT_CS_P5_DISC12PrivateClass", - { /*.BasenameRange=*/{14, 40}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{40, 42}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 14}, /*.SuffixRange=*/{42, 83} + { + /*.BasenameRange=*/{14, 40}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{40, 42}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{40, 0}, + /*.PrefixRange=*/{0, 14}, /*.SuffixRange=*/{42, 83} }, /*.basename=*/"(getPrivateClass in _DISC)", /*.arguments=*/"()" }, { "_TF4mainP5_mainX3wxaFT_T_", - { /*.BasenameRange=*/{5, 18}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{18, 20}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{20, 26} + { + /*.BasenameRange=*/{5, 18}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{18, 20}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{18, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{20, 26} }, /*.basename=*/"(λ in _main)", /*.arguments=*/"()" }, { "_TF4mainP5_main3abcFT_aS_P5_DISC3xyz", - { /*.BasenameRange=*/{5, 19}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{19, 21}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{21, 44} + { + /*.BasenameRange=*/{5, 19}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{19, 21}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{19, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{21, 44} }, /*.basename=*/"(abc in _main)", /*.arguments=*/"()" }, { "_TFCs13_NSSwiftArray29canStoreElementsOfDynamicTypefPMP_Sb", - { /*.BasenameRange=*/{20, 49}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{49, 59}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 20}, /*.SuffixRange=*/{59, 73} + { + /*.BasenameRange=*/{20, 49}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{49, 59}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{49, 0}, + /*.PrefixRange=*/{0, 20}, /*.SuffixRange=*/{59, 73} }, /*.basename=*/"canStoreElementsOfDynamicType", /*.arguments=*/"(Any.Type)" }, { "_TTSf1cl35_TFF7specgen6callerFSiT_U_FTSiSi_T_Si___TF7specgen12take_closureFFTSiSi_T_T_", - { /*.BasenameRange=*/{183, 195}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{195, 225}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 183}, /*.SuffixRange=*/{225, 231} + { + /*.BasenameRange=*/{183, 195}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{195, 225}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{195, 0}, + /*.PrefixRange=*/{0, 183}, /*.SuffixRange=*/{225, 231} }, /*.basename=*/"take_closure", /*.arguments=*/"((Swift.Int, Swift.Int) -> ())" }, { "_TTSfq1cl35_TFF7specgen6callerFSiT_U_FTSiSi_T_Si___TF7specgen12take_closureFFTSiSi_T_T_", - { /*.BasenameRange=*/{195, 207}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{207, 237}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 195}, /*.SuffixRange=*/{237, 243} + { + /*.BasenameRange=*/{195, 207}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{207, 237}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{207, 0}, + /*.PrefixRange=*/{0, 195}, /*.SuffixRange=*/{237, 243} }, /*.basename=*/"take_closure", /*.arguments=*/"((Swift.Int, Swift.Int) -> ())" }, { "_TTSf1cl35_TFF7specgen6callerFSiT_U_FTSiSi_T_Si___TTSg5Si___TF7specgen12take_closureFFTSiSi_T_T_", - { /*.BasenameRange=*/{221, 233}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{233, 263}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 221}, /*.SuffixRange=*/{263, 269} + { + /*.BasenameRange=*/{221, 233}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{233, 263}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{233, 0}, + /*.PrefixRange=*/{0, 221}, /*.SuffixRange=*/{263, 269} }, /*.basename=*/"take_closure", /*.arguments=*/"((Swift.Int, Swift.Int) -> ())" }, { "_TTSg5Si___TTSf1cl35_TFF7specgen6callerFSiT_U_FTSiSi_T_Si___TF7specgen12take_closureFFTSiSi_T_T_", - { /*.BasenameRange=*/{221, 233}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{233, 263}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 221}, /*.SuffixRange=*/{263, 269} + { + /*.BasenameRange=*/{221, 233}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{233, 263}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{233, 0}, + /*.PrefixRange=*/{0, 221}, /*.SuffixRange=*/{263, 269} }, /*.basename=*/"take_closure", /*.arguments=*/"((Swift.Int, Swift.Int) -> ())" }, { "_TTSf1cpi0_cpfl0_cpse0v4u123_cpg53globalinit_33_06E7F1D906492AE070936A9B58CBAE1C_token8_cpfr36_TFtest_capture_propagation2_closure___TF7specgen12take_closureFFTSiSi_T_T_", - { /*.BasenameRange=*/{357, 369}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{369, 399}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 357}, /*.SuffixRange=*/{399, 405} + { + /*.BasenameRange=*/{357, 369}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{369, 399}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{369, 0}, + /*.PrefixRange=*/{0, 357}, /*.SuffixRange=*/{399, 405} }, /*.basename=*/"take_closure", /*.arguments=*/"((Swift.Int, Swift.Int) -> ())" }, { "_TTSf0gs___TFVs17_LegacyStringCore15_invariantCheckfT_T_", - { /*.BasenameRange=*/{105, 120}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{120, 122}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 105}, /*.SuffixRange=*/{122, 128} + { + /*.BasenameRange=*/{105, 120}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{120, 122}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{120, 0}, + /*.PrefixRange=*/{0, 105}, /*.SuffixRange=*/{122, 128} }, /*.basename=*/"_invariantCheck", /*.arguments=*/"()" }, { "_TTSf2g___TTSf2s_d___TFVs17_LegacyStringCoreCfVs13_StringBufferS_", - { /*.BasenameRange=*/{164, 168}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{168, 189}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 164}, /*.SuffixRange=*/{189, 216} + { + /*.BasenameRange=*/{164, 168}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{168, 189}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{168, 0}, + /*.PrefixRange=*/{0, 164}, /*.SuffixRange=*/{189, 216} }, /*.basename=*/"init", /*.arguments=*/"(Swift._StringBuffer)" }, { "_TTSf2dg___TTSf2s_d___TFVs17_LegacyStringCoreCfVs13_StringBufferS_", - { /*.BasenameRange=*/{173, 177}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{177, 198}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 173}, /*.SuffixRange=*/{198, 225} + { + /*.BasenameRange=*/{173, 177}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{177, 198}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{177, 0}, + /*.PrefixRange=*/{0, 173}, /*.SuffixRange=*/{198, 225} }, /*.basename=*/"init", /*.arguments=*/"(Swift._StringBuffer)" }, { "_TTSf2dgs___TTSf2s_d___TFVs17_LegacyStringCoreCfVs13_StringBufferS_", - { /*.BasenameRange=*/{186, 190}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{190, 211}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 186}, /*.SuffixRange=*/{211, 238} + { + /*.BasenameRange=*/{186, 190}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{190, 211}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{190, 0}, + /*.PrefixRange=*/{0, 186}, /*.SuffixRange=*/{211, 238} }, /*.basename=*/"init", /*.arguments=*/"(Swift._StringBuffer)" }, { "_TTSf3d_i_d_i_d_i___TFVs17_LegacyStringCoreCfVs13_StringBufferS_", - { /*.BasenameRange=*/{209, 213}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{213, 234}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 209}, /*.SuffixRange=*/{234, 261} + { + /*.BasenameRange=*/{209, 213}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{213, 234}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{213, 0}, + /*.PrefixRange=*/{0, 209}, /*.SuffixRange=*/{234, 261} }, /*.basename=*/"init", /*.arguments=*/"(Swift._StringBuffer)" }, { "_TTSf3d_i_n_i_d_i___TFVs17_LegacyStringCoreCfVs13_StringBufferS_", - { /*.BasenameRange=*/{194, 198}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{198, 219}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 194}, /*.SuffixRange=*/{219, 246} + { + /*.BasenameRange=*/{194, 198}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{198, 219}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{198, 0}, + /*.PrefixRange=*/{0, 194}, /*.SuffixRange=*/{219, 246} }, /*.basename=*/"init", /*.arguments=*/"(Swift._StringBuffer)" }, { "_TFFV23interface_type_mangling18GenericTypeContext23closureInGenericContexturFqd__T_L_3fooFTqd__x_T_", - { /*.BasenameRange=*/{0, 6}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{7, 14}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{14, 103} + { + /*.BasenameRange=*/{0, 6}, /*.TemplateRange=*/{90, 93}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{7, 14}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{6, 7}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{14, 103} }, /*.basename=*/"foo #1", /*.arguments=*/"(A1, A)" }, { "_TFFV23interface_type_mangling18GenericTypeContextg31closureInGenericPropertyContextxL_3fooFT_x", - { /*.BasenameRange=*/{0, 6}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{7, 9}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{9, 103} + { + /*.BasenameRange=*/{0, 6}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{7, 9}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{6, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{9, 103} }, /*.basename=*/"foo #1", /*.arguments=*/"()" }, { "_TTWurGV23interface_type_mangling18GenericTypeContextx_S_18GenericWitnessTestS_FS1_23closureInGenericContextuRxS1_rfqd__T_", - { /*.BasenameRange=*/{64, 87}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{142, 146}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 64}, /*.SuffixRange=*/{146, 289} + { + /*.BasenameRange=*/{64, 87}, /*.TemplateRange=*/{87, 142}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{142, 146}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{87, 87}, + /*.PrefixRange=*/{0, 64}, /*.SuffixRange=*/{146, 289} }, /*.basename=*/"closureInGenericContext", /*.arguments=*/"(A1)" }, { "_TTWurGV23interface_type_mangling18GenericTypeContextx_S_18GenericWitnessTestS_FS1_16twoParamsAtDepthu0_RxS1_rfTqd__1yqd_0__T_", - { /*.BasenameRange=*/{64, 80}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{138, 149}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 64}, /*.SuffixRange=*/{149, 292} + { + /*.BasenameRange=*/{64, 80}, /*.TemplateRange=*/{80, 138}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{138, 149}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{80, 80}, + /*.PrefixRange=*/{0, 64}, /*.SuffixRange=*/{149, 292} }, /*.basename=*/"twoParamsAtDepth", /*.arguments=*/"(A1, y: B1)" }, { "_TFC3red11BaseClassEHcfzT1aSi_S0_", - { /*.BasenameRange=*/{16, 20}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{20, 34}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 16}, /*.SuffixRange=*/{34, 60} + { + /*.BasenameRange=*/{16, 20}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{20, 34}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{20, 0}, + /*.PrefixRange=*/{0, 16}, /*.SuffixRange=*/{34, 60} }, /*.basename=*/"init", /*.arguments=*/"(a: Swift.Int)" }, { "_TFC4testP33_83378C430F65473055F1BD53F3ADCDB71C5doFoofT_T_", - { /*.BasenameRange=*/{46, 51}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{51, 53}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 46}, /*.SuffixRange=*/{53, 59} + { + /*.BasenameRange=*/{46, 51}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{51, 53}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{51, 0}, + /*.PrefixRange=*/{0, 46}, /*.SuffixRange=*/{53, 59} }, /*.basename=*/"doFoo", /*.arguments=*/"()" }, { "_TFVV15nested_generics5Lunch6DinnerCfT11firstCoursex12secondCourseGSqqd___9leftoversx14transformationFxqd___GS1_x_qd___", - { /*.BasenameRange=*/{29, 33}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{33, 124}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 29}, /*.SuffixRange=*/{124, 163} + { + /*.BasenameRange=*/{29, 33}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{33, 124}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{33, 0}, + /*.PrefixRange=*/{0, 29}, /*.SuffixRange=*/{124, 163} }, /*.basename=*/"init", /*.arguments=*/"(firstCourse: A, secondCourse: Swift.Optional, leftovers: A, transformation: (A) -> A1)" }, { "_TFVFC15nested_generics7HotDogs11applyRelishFT_T_L_6RelishCfT8materialx_GS1_x_", - { /*.BasenameRange=*/{0, 4}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{4, 17}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{17, 140} + { + /*.BasenameRange=*/{0, 4}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{4, 17}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{4, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{17, 140} }, /*.basename=*/"init", /*.arguments=*/"(material: A)" }, { "_TFVFE15nested_genericsSS3fooFT_T_L_6CheeseCfT8materialx_GS0_x_", - { /*.BasenameRange=*/{0, 4}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{4, 17}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{17, 164} + { + /*.BasenameRange=*/{0, 4}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{4, 17}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{4, 0}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{17, 164} }, /*.basename=*/"init", /*.arguments=*/"(material: A)" }, { "_T0s17MutableCollectionP1asAARzs012RandomAccessB0RzsAA11SubSequences013BidirectionalB0PRpzsAdHRQlE06rotatecD05Indexs01_A9IndexablePQzAM15shiftingToStart_tFAJs01_J4BasePQzAQcfU_", - { /*.BasenameRange=*/{0, 10}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{11, 41}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{41, 435} + { + /*.BasenameRange=*/{0, 10}, /*.TemplateRange=*/{117, 331}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{11, 41}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{10, 11}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{41, 435} }, /*.basename=*/"closure #1", /*.arguments=*/"(A.Swift._IndexableBase.Index)" }, { "_$Ss17MutableCollectionP1asAARzs012RandomAccessB0RzsAA11SubSequences013BidirectionalB0PRpzsAdHRQlE06rotatecD015shiftingToStart5Indexs01_A9IndexablePQzAN_tFAKs01_M4BasePQzAQcfU_", - { /*.BasenameRange=*/{0, 10}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{11, 41}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{41, 435} + { + /*.BasenameRange=*/{0, 10}, /*.TemplateRange=*/{117, 331}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{11, 41}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{10, 11}, + /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{41, 435} }, /*.basename=*/"closure #1", /*.arguments=*/"(A.Swift._IndexableBase.Index)" }, { "_T04main5innerys5Int32Vz_yADctF25closure_with_box_argumentxz_Bi32__lXXTf1nc_n", - { /*.BasenameRange=*/{151, 156}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{156, 196}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 151}, /*.SuffixRange=*/{196, 202} + { + /*.BasenameRange=*/{151, 156}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{156, 196}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{156, 0}, + /*.PrefixRange=*/{0, 151}, /*.SuffixRange=*/{196, 202} }, /*.basename=*/"inner", /*.arguments=*/"(inout Swift.Int32, (Swift.Int32) -> ())" }, { "_$S4main5inneryys5Int32Vz_yADctF25closure_with_box_argumentxz_Bi32__lXXTf1nc_n", - { /*.BasenameRange=*/{151, 156}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{156, 196}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 151}, /*.SuffixRange=*/{196, 202} + { + /*.BasenameRange=*/{151, 156}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{156, 196}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{156, 0}, + /*.PrefixRange=*/{0, 151}, /*.SuffixRange=*/{196, 202} }, /*.basename=*/"inner", /*.arguments=*/"(inout Swift.Int32, (Swift.Int32) -> ())" }, { "_T03foo6testityyyc_yyctF1a1bTf3pfpf_n", - { /*.BasenameRange=*/{132, 138}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{138, 158}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 132}, /*.SuffixRange=*/{158, 164} + { + /*.BasenameRange=*/{132, 138}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{138, 158}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{138, 0}, + /*.PrefixRange=*/{0, 132}, /*.SuffixRange=*/{158, 164} }, /*.basename=*/"testit", /*.arguments=*/"(() -> (), () -> ())" }, { "_$S3foo6testityyyyc_yyctF1a1bTf3pfpf_n", - { /*.BasenameRange=*/{132, 138}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{138, 158}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 132}, /*.SuffixRange=*/{158, 164} + { + /*.BasenameRange=*/{132, 138}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{138, 158}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{138, 0}, + /*.PrefixRange=*/{0, 132}, /*.SuffixRange=*/{158, 164} }, /*.basename=*/"testit", /*.arguments=*/"(() -> (), () -> ())" }, { "_T0s10DictionaryV3t17E6Index2V1loiSbAEyxq__G_AGtFZ", - { /*.BasenameRange=*/{50, 57}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{57, 157}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 50}, /*.SuffixRange=*/{157, 171} + { + /*.BasenameRange=*/{50, 57}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{57, 157}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{57, 0}, + /*.PrefixRange=*/{0, 50}, /*.SuffixRange=*/{157, 171} }, /*.basename=*/"< infix", /*.arguments=*/"((extension in t17):Swift.Dictionary.Index2, (extension in t17):Swift.Dictionary.Index2)" }, { "_T08mangling14varargsVsArrayySi3arrd_SS1ntF", - { /*.BasenameRange=*/{9, 23}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{23, 59}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{59, 65} + { + /*.BasenameRange=*/{9, 23}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{23, 59}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{23, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{59, 65} }, /*.basename=*/"varargsVsArray", /*.arguments=*/"(arr: Swift.Int..., n: Swift.String)" }, { "_T08mangling14varargsVsArrayySaySiG3arr_SS1ntF", - { /*.BasenameRange=*/{9, 23}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{23, 69}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{69, 75} + { + /*.BasenameRange=*/{9, 23}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{23, 69}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{23, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{69, 75} }, /*.basename=*/"varargsVsArray", /*.arguments=*/"(arr: Swift.Array, n: Swift.String)" }, { "_T08mangling14varargsVsArrayySaySiG3arrd_SS1ntF", - { /*.BasenameRange=*/{9, 23}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{23, 72}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{72, 78} + { + /*.BasenameRange=*/{9, 23}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{23, 72}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{23, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{72, 78} }, /*.basename=*/"varargsVsArray", /*.arguments=*/"(arr: Swift.Array..., n: Swift.String)" }, { "_T08mangling14varargsVsArrayySi3arrd_tF", - { /*.BasenameRange=*/{9, 23}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{23, 42}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{42, 48} + { + /*.BasenameRange=*/{9, 23}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{23, 42}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{23, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{42, 48} }, /*.basename=*/"varargsVsArray", /*.arguments=*/"(arr: Swift.Int...)" }, { "_T08mangling14varargsVsArrayySaySiG3arrd_tF", - { /*.BasenameRange=*/{9, 23}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{23, 55}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{55, 61} + { + /*.BasenameRange=*/{9, 23}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{23, 55}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{23, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{55, 61} }, /*.basename=*/"varargsVsArray", /*.arguments=*/"(arr: Swift.Array...)" }, { "_$Ss10DictionaryV3t17E6Index2V1loiySbAEyxq__G_AGtFZ", - { /*.BasenameRange=*/{50, 57}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{57, 157}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 50}, /*.SuffixRange=*/{157, 171} + { + /*.BasenameRange=*/{50, 57}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{57, 157}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{57, 0}, + /*.PrefixRange=*/{0, 50}, /*.SuffixRange=*/{157, 171} }, /*.basename=*/"< infix", /*.arguments=*/"((extension in t17):Swift.Dictionary.Index2, (extension in t17):Swift.Dictionary.Index2)" }, { "_$S8mangling14varargsVsArray3arr1nySid_SStF", - { /*.BasenameRange=*/{9, 23}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{23, 59}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{59, 65} + { + /*.BasenameRange=*/{9, 23}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{23, 59}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{23, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{59, 65} }, /*.basename=*/"varargsVsArray", /*.arguments=*/"(arr: Swift.Int..., n: Swift.String)" }, { "_$S8mangling14varargsVsArray3arr1nySaySiG_SStF", - { /*.BasenameRange=*/{9, 23}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{23, 69}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{69, 75} + { + /*.BasenameRange=*/{9, 23}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{23, 69}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{23, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{69, 75} }, /*.basename=*/"varargsVsArray", /*.arguments=*/"(arr: Swift.Array, n: Swift.String)" }, { "_$S8mangling14varargsVsArray3arr1nySaySiGd_SStF", - { /*.BasenameRange=*/{9, 23}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{23, 72}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{72, 78} + { + /*.BasenameRange=*/{9, 23}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{23, 72}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{23, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{72, 78} }, /*.basename=*/"varargsVsArray", /*.arguments=*/"(arr: Swift.Array..., n: Swift.String)" }, { "_$S8mangling14varargsVsArray3arrySid_tF", - { /*.BasenameRange=*/{9, 23}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{23, 42}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{42, 48} + { + /*.BasenameRange=*/{9, 23}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{23, 42}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{23, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{42, 48} }, /*.basename=*/"varargsVsArray", /*.arguments=*/"(arr: Swift.Int...)" }, { "_$S8mangling14varargsVsArray3arrySaySiGd_tF", - { /*.BasenameRange=*/{9, 23}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{23, 55}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{55, 61} + { + /*.BasenameRange=*/{9, 23}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{23, 55}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{23, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{55, 61} }, /*.basename=*/"varargsVsArray", /*.arguments=*/"(arr: Swift.Array...)" }, { "_T010Foundation11MeasurementV12SimulatorKitSo9UnitAngleCRszlE11OrientationO2eeoiSbAcDEAGOyAF_G_AKtFZ", - { /*.BasenameRange=*/{98, 106}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{106, 264}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 98}, /*.SuffixRange=*/{264, 278} + { + /*.BasenameRange=*/{98, 106}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{106, 264}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{106, 0}, + /*.PrefixRange=*/{0, 98}, /*.SuffixRange=*/{264, 278} }, /*.basename=*/"== infix", /*.arguments=*/"((extension in SimulatorKit):Foundation.Measurement<__C.UnitAngle>.Orientation, (extension in SimulatorKit):Foundation.Measurement<__C.UnitAngle>.Orientation)" }, { "_$S10Foundation11MeasurementV12SimulatorKitSo9UnitAngleCRszlE11OrientationO2eeoiySbAcDEAGOyAF_G_AKtFZ", - { /*.BasenameRange=*/{98, 106}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{106, 264}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 98}, /*.SuffixRange=*/{264, 278} + { + /*.BasenameRange=*/{98, 106}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{106, 264}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{106, 0}, + /*.PrefixRange=*/{0, 98}, /*.SuffixRange=*/{264, 278} }, /*.basename=*/"== infix", /*.arguments=*/"((extension in SimulatorKit):Foundation.Measurement<__C.UnitAngle>.Orientation, (extension in SimulatorKit):Foundation.Measurement<__C.UnitAngle>.Orientation)" }, { "_T04main1_yyF", - { /*.BasenameRange=*/{5, 6}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{6, 8}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{8, 14} + { + /*.BasenameRange=*/{5, 6}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{6, 8}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{6, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{8, 14} }, /*.basename=*/"_", /*.arguments=*/"()" }, { "_T04test6testitSiyt_tF", - { /*.BasenameRange=*/{5, 11}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{11, 15}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{15, 28} + { + /*.BasenameRange=*/{5, 11}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{11, 15}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{11, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{15, 28} }, /*.basename=*/"testit", /*.arguments=*/"(())" }, { "_$S4test6testitySiyt_tF", - { /*.BasenameRange=*/{5, 11}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{11, 15}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{15, 28} + { + /*.BasenameRange=*/{5, 11}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{11, 15}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{11, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{15, 28} }, /*.basename=*/"testit", /*.arguments=*/"(())" }, { "_T03abc6testitySiFTm", - { /*.BasenameRange=*/{11, 17}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{17, 28}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 11}, /*.SuffixRange=*/{28, 34} + { + /*.BasenameRange=*/{11, 17}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{17, 28}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{17, 0}, + /*.PrefixRange=*/{0, 11}, /*.SuffixRange=*/{28, 34} }, /*.basename=*/"testit", /*.arguments=*/"(Swift.Int)" }, { "_T04main4TestCACSi1x_tc6_PRIV_Llfc", - { /*.BasenameRange=*/{10, 26}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{26, 40}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 10}, /*.SuffixRange=*/{40, 53} + { + /*.BasenameRange=*/{10, 26}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{26, 40}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{26, 0}, + /*.PrefixRange=*/{0, 10}, /*.SuffixRange=*/{40, 53} }, /*.basename=*/"(in _PRIV_).init", /*.arguments=*/"(x: Swift.Int)" }, { "_$S3abc6testityySiFTm", - { /*.BasenameRange=*/{11, 17}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{17, 28}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 11}, /*.SuffixRange=*/{28, 34} + { + /*.BasenameRange=*/{11, 17}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{17, 28}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{17, 0}, + /*.PrefixRange=*/{0, 11}, /*.SuffixRange=*/{28, 34} }, /*.basename=*/"testit", /*.arguments=*/"(Swift.Int)" }, { "_$S4main4TestC1xACSi_tc6_PRIV_Llfc", - { /*.BasenameRange=*/{10, 26}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{26, 40}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 10}, /*.SuffixRange=*/{40, 53} + { + /*.BasenameRange=*/{10, 26}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{26, 40}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{26, 0}, + /*.PrefixRange=*/{0, 10}, /*.SuffixRange=*/{40, 53} }, /*.basename=*/"(in _PRIV_).init", /*.arguments=*/"(x: Swift.Int)" }, { "_T03nix6testitSaySiGyFTv_", - { /*.BasenameRange=*/{28, 34}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{34, 36}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 28}, /*.SuffixRange=*/{36, 62} + { + /*.BasenameRange=*/{28, 34}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{34, 36}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{34, 0}, + /*.PrefixRange=*/{0, 28}, /*.SuffixRange=*/{36, 62} }, /*.basename=*/"testit", /*.arguments=*/"()" }, { "_T03nix6testitSaySiGyFTv_r", - { /*.BasenameRange=*/{36, 42}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{42, 44}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 36}, /*.SuffixRange=*/{44, 70} + { + /*.BasenameRange=*/{36, 42}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{42, 44}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{42, 0}, + /*.PrefixRange=*/{0, 36}, /*.SuffixRange=*/{44, 70} }, /*.basename=*/"testit", /*.arguments=*/"()" }, { "_T03nix6testitSaySiGyFTv0_", - { /*.BasenameRange=*/{28, 34}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{34, 36}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 28}, /*.SuffixRange=*/{36, 62} + { + /*.BasenameRange=*/{28, 34}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{34, 36}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{34, 0}, + /*.PrefixRange=*/{0, 28}, /*.SuffixRange=*/{36, 62} }, /*.basename=*/"testit", /*.arguments=*/"()" }, { "$sSo5GizmoC11doSomethingyypSgSaySSGSgFToTembgnn_", - { /*.BasenameRange=*/{51, 62}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{62, 105}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 51}, /*.SuffixRange=*/{105, 128} + { + /*.BasenameRange=*/{51, 62}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{62, 105}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{62, 0}, + /*.PrefixRange=*/{0, 51}, /*.SuffixRange=*/{105, 128} }, /*.basename=*/"doSomething", /*.arguments=*/"(Swift.Optional>)" }, { "_T0s24_UnicodeScalarExceptions33_0E4228093681F6920F0AB2E48B4F1C69LLVACycfC", - { /*.BasenameRange=*/{70, 74}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{74, 76}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 70}, /*.SuffixRange=*/{76, 149} + { + /*.BasenameRange=*/{70, 74}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{74, 76}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{74, 0}, + /*.PrefixRange=*/{0, 70}, /*.SuffixRange=*/{76, 149} }, /*.basename=*/"init", /*.arguments=*/"()" }, { "_T0s18EnumeratedIteratorVyxGs8Sequencess0B8ProtocolRzlsADP5splitSay03SubC0QzGSi9maxSplits_Sb25omittingEmptySubsequencesSb7ElementQzKc14whereSeparatortKFTW", - { /*.BasenameRange=*/{36, 41}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{41, 152}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 36}, /*.SuffixRange=*/{152, 294} + { + /*.BasenameRange=*/{36, 41}, /*.TemplateRange=*/{205, 240}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{41, 152}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{41, 41}, + /*.PrefixRange=*/{0, 36}, /*.SuffixRange=*/{152, 294} }, /*.basename=*/"split", /*.arguments=*/"(maxSplits: Swift.Int, omittingEmptySubsequences: Swift.Bool, whereSeparator: (A.Element) throws -> Swift.Bool)" }, { "$s18opaque_return_type3fooQryFQOHo", - { /*.BasenameRange=*/{85, 88}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{88, 90}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 85}, /*.SuffixRange=*/{90, 100} + { + /*.BasenameRange=*/{85, 88}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{88, 90}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{88, 0}, + /*.PrefixRange=*/{0, 85}, /*.SuffixRange=*/{90, 100} }, /*.basename=*/"foo", /*.arguments=*/"()" }, { "$s20mangling_retroactive5test0yyAA1ZVy12RetroactiveB1XVSiAE1YVAG0D1A1PAAyHCg_AiJ1QAAyHCg1_GF", - { /*.BasenameRange=*/{21, 26}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{26, 93}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 21}, /*.SuffixRange=*/{93, 99} + { + /*.BasenameRange=*/{21, 26}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{26, 93}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{26, 0}, + /*.PrefixRange=*/{0, 21}, /*.SuffixRange=*/{93, 99} }, /*.basename=*/"test0", /*.arguments=*/"(mangling_retroactive.Z)" }, { "$s20mangling_retroactive5test0yyAA1ZVy12RetroactiveB1XVSiAE1YVAG0D1A1PHPyHCg_AiJ1QHPyHCg1_GF", - { /*.BasenameRange=*/{21, 26}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{26, 93}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 21}, /*.SuffixRange=*/{93, 99} + { + /*.BasenameRange=*/{21, 26}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{26, 93}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{26, 0}, + /*.PrefixRange=*/{0, 21}, /*.SuffixRange=*/{93, 99} }, /*.basename=*/"test0", /*.arguments=*/"(mangling_retroactive.Z)" }, { "$s20mangling_retroactive5test0yyAA1ZVy12RetroactiveB1XVSiAE1YVAG0D1A1PHpyHCg_AiJ1QHpyHCg1_GF", - { /*.BasenameRange=*/{21, 26}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{26, 93}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 21}, /*.SuffixRange=*/{93, 99} + { + /*.BasenameRange=*/{21, 26}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{26, 93}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{26, 0}, + /*.PrefixRange=*/{0, 21}, /*.SuffixRange=*/{93, 99} }, /*.basename=*/"test0", /*.arguments=*/"(mangling_retroactive.Z)" }, { "_TTSf0os___TFVs17_LegacyStringCore15_invariantCheckfT_T_", - { /*.BasenameRange=*/{105, 120}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{120, 122}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 105}, /*.SuffixRange=*/{122, 128} + { + /*.BasenameRange=*/{105, 120}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{120, 122}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{120, 0}, + /*.PrefixRange=*/{0, 105}, /*.SuffixRange=*/{122, 128} }, /*.basename=*/"_invariantCheck", /*.arguments=*/"()" }, { "_TTSf2o___TTSf2s_d___TFVs17_LegacyStringCoreCfVs13_StringBufferS_", - { /*.BasenameRange=*/{164, 168}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{168, 189}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 164}, /*.SuffixRange=*/{189, 216} + { + /*.BasenameRange=*/{164, 168}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{168, 189}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{168, 0}, + /*.PrefixRange=*/{0, 164}, /*.SuffixRange=*/{189, 216} }, /*.basename=*/"init", /*.arguments=*/"(Swift._StringBuffer)" }, { "_TTSf2do___TTSf2s_d___TFVs17_LegacyStringCoreCfVs13_StringBufferS_", - { /*.BasenameRange=*/{173, 177}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{177, 198}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 173}, /*.SuffixRange=*/{198, 225} + { + /*.BasenameRange=*/{173, 177}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{177, 198}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{177, 0}, + /*.PrefixRange=*/{0, 173}, /*.SuffixRange=*/{198, 225} }, /*.basename=*/"init", /*.arguments=*/"(Swift._StringBuffer)" }, { "_TTSf2dos___TTSf2s_d___TFVs17_LegacyStringCoreCfVs13_StringBufferS_", - { /*.BasenameRange=*/{186, 190}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{190, 211}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 186}, /*.SuffixRange=*/{211, 238} + { + /*.BasenameRange=*/{186, 190}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{190, 211}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{190, 0}, + /*.PrefixRange=*/{0, 186}, /*.SuffixRange=*/{211, 238} }, /*.basename=*/"init", /*.arguments=*/"(Swift._StringBuffer)" }, { "_TtCF4test11doNotCrash1FT_QuL_8MyClass1", - { /*.BasenameRange=*/{20, 31}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{31, 33}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 20}, /*.SuffixRange=*/{33, 41} + { + /*.BasenameRange=*/{20, 31}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{31, 33}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{31, 0}, + /*.PrefixRange=*/{0, 20}, /*.SuffixRange=*/{33, 41} }, /*.basename=*/"doNotCrash1", /*.arguments=*/"()" }, { "$s4Test5ProtoP8IteratorV10collectionAEy_qd__Gqd___tcfc", - { /*.BasenameRange=*/{20, 24}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{24, 40}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 20}, /*.SuffixRange=*/{40, 67} + { + /*.BasenameRange=*/{20, 24}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{24, 40}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{24, 0}, + /*.PrefixRange=*/{0, 20}, /*.SuffixRange=*/{40, 67} }, /*.basename=*/"init", /*.arguments=*/"(collection: A1)" }, { "$s4test3fooV4blahyAA1SV1fQryFQOy_Qo_AHF", - { /*.BasenameRange=*/{9, 13}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{13, 61}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{61, 111} + { + /*.BasenameRange=*/{9, 13}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{13, 61}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{13, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{61, 111} }, /*.basename=*/"blah", /*.arguments=*/"(< some>>.0)" }, { "$S3nix8MystructV1xACyxGx_tcfc7MyaliasL_ayx__GD", - { /*.BasenameRange=*/{30, 34}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{34, 40}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 30}, /*.SuffixRange=*/{40, 59} + { + /*.BasenameRange=*/{30, 34}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{34, 40}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{34, 0}, + /*.PrefixRange=*/{0, 30}, /*.SuffixRange=*/{40, 59} }, /*.basename=*/"init", /*.arguments=*/"(x: A)" }, { "$S3nix8MystructV6testit1xyx_tF7MyaliasL_ayx__GD", - { /*.BasenameRange=*/{30, 36}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{36, 42}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 30}, /*.SuffixRange=*/{42, 48} + { + /*.BasenameRange=*/{30, 36}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{36, 42}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{36, 0}, + /*.PrefixRange=*/{0, 30}, /*.SuffixRange=*/{42, 48} }, /*.basename=*/"testit", /*.arguments=*/"(x: A)" }, { "$S3nix8MystructV6testit1x1u1vyx_qd__qd_0_tr0_lF7MyaliasL_ayx_qd__qd_0__GD", - { /*.BasenameRange=*/{30, 36}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{44, 64}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 30}, /*.SuffixRange=*/{64, 70} + { + /*.BasenameRange=*/{30, 36}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{44, 64}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{36, 0}, + /*.PrefixRange=*/{0, 30}, /*.SuffixRange=*/{64, 70} }, /*.basename=*/"testit", /*.arguments=*/"(x: A, u: A1, v: B1)" }, { "$s1A1gyyxlFx_qd__t_Ti5", - { /*.BasenameRange=*/{40, 41}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{44, 47}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 40}, /*.SuffixRange=*/{47, 53} + { + /*.BasenameRange=*/{40, 41}, /*.TemplateRange=*/{41, 44}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{44, 47}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{41, 41}, + /*.PrefixRange=*/{0, 40}, /*.SuffixRange=*/{47, 53} }, /*.basename=*/"g", /*.arguments=*/"(A)" }, { "$s4Test6testityyxlFAA8MystructV_TB5", - { /*.BasenameRange=*/{47, 53}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{56, 59}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 47}, /*.SuffixRange=*/{59, 65} + { + /*.BasenameRange=*/{47, 53}, /*.TemplateRange=*/{53, 56}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{56, 59}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{53, 53}, + /*.PrefixRange=*/{0, 47}, /*.SuffixRange=*/{59, 65} }, /*.basename=*/"testit", /*.arguments=*/"(A)" }, { "$sSUss17FixedWidthIntegerRzrlEyxqd__cSzRd__lufCSu_SiTg5", - { /*.BasenameRange=*/{128, 132}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{165, 169}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 128}, /*.SuffixRange=*/{169, 174} + { + /*.BasenameRange=*/{128, 132}, /*.TemplateRange=*/{132, 165}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{165, 169}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{132, 132}, + /*.PrefixRange=*/{0, 128}, /*.SuffixRange=*/{169, 174} }, /*.basename=*/"init", /*.arguments=*/"(A1)" }, { "$s4test7genFuncyyx_q_tr0_lFSi_SbTtt1g5", - { /*.BasenameRange=*/{55, 62}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{68, 74}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 55}, /*.SuffixRange=*/{74, 80} + { + /*.BasenameRange=*/{55, 62}, /*.TemplateRange=*/{62, 68}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{68, 74}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{62, 62}, + /*.PrefixRange=*/{0, 55}, /*.SuffixRange=*/{74, 80} }, /*.basename=*/"genFunc", /*.arguments=*/"(A, B)" }, { "$s4test3StrCACycfC", - { /*.BasenameRange=*/{9, 26}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{26, 28}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{28, 40} + { + /*.BasenameRange=*/{9, 26}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{26, 28}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{26, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{28, 40} }, /*.basename=*/"__allocating_init", /*.arguments=*/"()" }, { "$s3red4testyAA3ResOyxSayq_GAEs5ErrorAAq_sAFHD1__HCg_GADyxq_GsAFR_r0_lF", - { /*.BasenameRange=*/{4, 8}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{35, 50}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 4}, /*.SuffixRange=*/{50, 80} + { + /*.BasenameRange=*/{4, 8}, /*.TemplateRange=*/{8, 35}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{35, 50}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{8, 8}, + /*.PrefixRange=*/{0, 4}, /*.SuffixRange=*/{50, 80} }, /*.basename=*/"test", /*.arguments=*/"(red.Res)" }, { "$s3red4testyAA7OurTypeOy4them05TheirD0Vy5AssocQzGAjE0F8ProtocolAAxAA0c7DerivedH0HD1_AA0c4BaseH0HI1_AieKHA2__HCg_GxmAaLRzlF", - { /*.BasenameRange=*/{4, 8}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{43, 51}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 4}, /*.SuffixRange=*/{51, 91} + { + /*.BasenameRange=*/{4, 8}, /*.TemplateRange=*/{8, 43}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{43, 51}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{8, 8}, + /*.PrefixRange=*/{0, 4}, /*.SuffixRange=*/{51, 91} }, /*.basename=*/"test", /*.arguments=*/"(A.Type)" }, { "$sSo17OS_dispatch_queueC4sync7executeyyyXE_tFTOTA", - { /*.BasenameRange=*/{59, 63}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{63, 82}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 59}, /*.SuffixRange=*/{82, 88} + { + /*.BasenameRange=*/{59, 63}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{63, 82}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{63, 0}, + /*.PrefixRange=*/{0, 59}, /*.SuffixRange=*/{82, 88} }, /*.basename=*/"sync", /*.arguments=*/"(execute: () -> ())" }, { "$s7example1fyyYaF", - { /*.BasenameRange=*/{8, 9}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{9, 11}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 8}, /*.SuffixRange=*/{11, 23} + { + /*.BasenameRange=*/{8, 9}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{9, 11}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{9, 0}, + /*.PrefixRange=*/{0, 8}, /*.SuffixRange=*/{11, 23} }, /*.basename=*/"f", /*.arguments=*/"()" }, { "$s7example1fyyYaKF", - { /*.BasenameRange=*/{8, 9}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{9, 11}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 8}, /*.SuffixRange=*/{11, 30} + { + /*.BasenameRange=*/{8, 9}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{9, 11}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{9, 0}, + /*.PrefixRange=*/{0, 8}, /*.SuffixRange=*/{11, 30} }, /*.basename=*/"f", /*.arguments=*/"()" }, { "$s4main20receiveInstantiationyySo34__CxxTemplateInst12MagicWrapperIiEVzF", - { /*.BasenameRange=*/{5, 25}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{25, 71}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{71, 77} + { + /*.BasenameRange=*/{5, 25}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{25, 71}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{25, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{71, 77} }, /*.basename=*/"receiveInstantiation", /*.arguments=*/"(inout __C.__CxxTemplateInst12MagicWrapperIiE)" }, { "$s4main19returnInstantiationSo34__CxxTemplateInst12MagicWrapperIiEVyF", - { /*.BasenameRange=*/{5, 24}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{24, 26}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{26, 68} + { + /*.BasenameRange=*/{5, 24}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{24, 26}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{24, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{26, 68} }, /*.basename=*/"returnInstantiation", /*.arguments=*/"()" }, { "$s4main6testityyYaFTu", - { /*.BasenameRange=*/{31, 37}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{37, 39}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 31}, /*.SuffixRange=*/{39, 51} + { + /*.BasenameRange=*/{31, 37}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{37, 39}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{37, 0}, + /*.PrefixRange=*/{0, 31}, /*.SuffixRange=*/{39, 51} }, /*.basename=*/"testit", /*.arguments=*/"()" }, { "$s13test_mangling3fooyS2f_S2ftFTJfUSSpSr", - { /*.BasenameRange=*/{41, 44}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{44, 83}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 41}, /*.SuffixRange=*/{83, 148} + { + /*.BasenameRange=*/{41, 44}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{44, 83}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{44, 0}, + /*.PrefixRange=*/{0, 41}, /*.SuffixRange=*/{83, 148} }, /*.basename=*/"foo", /*.arguments=*/"(Swift.Float, Swift.Float, Swift.Float)" }, { "$s13test_mangling4foo21xq_x_t16_Differentiation14DifferentiableR_AA1P13TangentVectorRp_r0_lFAdERzAdER_AafGRpzAafHRQr0_lTJrSpSr", - { /*.BasenameRange=*/{41, 45}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{126, 132}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 41}, /*.SuffixRange=*/{132, 341} + { + /*.BasenameRange=*/{41, 45}, /*.TemplateRange=*/{45, 126}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{126, 132}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{45, 45}, + /*.PrefixRange=*/{0, 41}, /*.SuffixRange=*/{132, 341} }, /*.basename=*/"foo2", /*.arguments=*/"(x: A)" }, { "$s13test_mangling4foo21xq_x_t16_Differentiation14DifferentiableR_AA1P13TangentVectorRp_r0_lFAdERzAdER_AafGRpzAafHRQr0_lTJVrSpSr", - { /*.BasenameRange=*/{58, 62}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{143, 149}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 58}, /*.SuffixRange=*/{149, 358} + { + /*.BasenameRange=*/{58, 62}, /*.TemplateRange=*/{62, 143}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{143, 149}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{62, 62}, + /*.PrefixRange=*/{0, 58}, /*.SuffixRange=*/{149, 358} }, /*.basename=*/"foo2", /*.arguments=*/"(x: A)" }, { "$s13test_mangling3fooyS2f_xq_t16_Differentiation14DifferentiableR_r0_lFAcDRzAcDR_r0_lTJpUSSpSr", - { /*.BasenameRange=*/{26, 29}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{76, 95}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 26}, /*.SuffixRange=*/{95, 249} + { + /*.BasenameRange=*/{26, 29}, /*.TemplateRange=*/{29, 76}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{76, 95}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{29, 29}, + /*.PrefixRange=*/{0, 26}, /*.SuffixRange=*/{95, 249} }, /*.basename=*/"foo", /*.arguments=*/"(Swift.Float, A, B)" }, { "$s13test_mangling4foo21xq_x_t16_Differentiation14DifferentiableR_AA1P13TangentVectorRp_r0_lFTSAdERzAdER_AafGRpzAafHRQr0_lTJrSpSr", - { /*.BasenameRange=*/{79, 83}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{164, 170}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 79}, /*.SuffixRange=*/{170, 379} + { + /*.BasenameRange=*/{79, 83}, /*.TemplateRange=*/{83, 164}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{164, 170}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{83, 83}, + /*.PrefixRange=*/{0, 79}, /*.SuffixRange=*/{170, 379} }, /*.basename=*/"foo2", /*.arguments=*/"(x: A)" }, { "$s13test_mangling3fooyS2f_xq_t16_Differentiation14DifferentiableR_r0_lFAcDRzAcDR_r0_lTJpUSSpSrTj", - { /*.BasenameRange=*/{44, 47}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{94, 113}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 44}, /*.SuffixRange=*/{113, 267} + { + /*.BasenameRange=*/{44, 47}, /*.TemplateRange=*/{47, 94}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{94, 113}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{47, 47}, + /*.PrefixRange=*/{0, 44}, /*.SuffixRange=*/{113, 267} }, /*.basename=*/"foo", /*.arguments=*/"(Swift.Float, A, B)" }, { "$s13test_mangling3fooyS2f_xq_t16_Differentiation14DifferentiableR_r0_lFAcDRzAcDR_r0_lTJpUSSpSrTq", - { /*.BasenameRange=*/{48, 51}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{98, 117}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 48}, /*.SuffixRange=*/{117, 271} + { + /*.BasenameRange=*/{48, 51}, /*.TemplateRange=*/{51, 98}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{98, 117}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{51, 51}, + /*.PrefixRange=*/{0, 48}, /*.SuffixRange=*/{117, 271} }, /*.basename=*/"foo", /*.arguments=*/"(Swift.Float, A, B)" }, { "$s39differentiation_subset_parameters_thunk19inoutIndirectCalleryq_x_q_q0_t16_Differentiation14DifferentiableRzAcDR_AcDR0_r1_lFxq_Sdq_xq_Sdr0_ly13TangentVectorAcDPQy_AeFQzIsegnrr_Iegnnnro_TJSrSSSpSrSUSP", - { /*.BasenameRange=*/{106, 125}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{247, 256}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 106}, /*.SuffixRange=*/{256, 658} + { + /*.BasenameRange=*/{106, 125}, /*.TemplateRange=*/{125, 247}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{247, 256}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{125, 125}, + /*.PrefixRange=*/{0, 106}, /*.SuffixRange=*/{256, 658} }, /*.basename=*/"inoutIndirectCaller", /*.arguments=*/"(A, B, C)" }, { "$s13test_mangling3fooyS2f_S2ftFWJrSpSr", - { /*.BasenameRange=*/{57, 60}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{60, 99}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 57}, /*.SuffixRange=*/{99, 161} + { + /*.BasenameRange=*/{57, 60}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{60, 99}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{60, 0}, + /*.PrefixRange=*/{0, 57}, /*.SuffixRange=*/{99, 161} }, /*.basename=*/"foo", /*.arguments=*/"(Swift.Float, Swift.Float, Swift.Float)" }, { "$s13test_mangling3fooyS2f_xq_t16_Differentiation14DifferentiableR_r0_lFAcDRzAcDR_r0_lWJrUSSpSr", - { /*.BasenameRange=*/{57, 60}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{107, 126}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 57}, /*.SuffixRange=*/{126, 280} + { + /*.BasenameRange=*/{57, 60}, /*.TemplateRange=*/{60, 107}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{107, 126}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{60, 60}, + /*.PrefixRange=*/{0, 57}, /*.SuffixRange=*/{126, 280} }, /*.basename=*/"foo", /*.arguments=*/"(Swift.Float, A, B)" }, { "$s5async1hyyS2iYbXEF", - { /*.BasenameRange=*/{6, 7}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{7, 43}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 6}, /*.SuffixRange=*/{43, 49} + { + /*.BasenameRange=*/{6, 7}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{7, 43}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{7, 0}, + /*.PrefixRange=*/{0, 6}, /*.SuffixRange=*/{43, 49} }, /*.basename=*/"h", /*.arguments=*/"(@Sendable (Swift.Int) -> Swift.Int)" }, { "$s5Actor02MyA0C17testAsyncFunctionyyYaKFTY0_", - { /*.BasenameRange=*/{54, 71}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{71, 73}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 54}, /*.SuffixRange=*/{73, 92} + { + /*.BasenameRange=*/{54, 71}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{71, 73}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{71, 0}, + /*.PrefixRange=*/{0, 54}, /*.SuffixRange=*/{73, 92} }, /*.basename=*/"testAsyncFunction", /*.arguments=*/"()" }, { "$s5Actor02MyA0C17testAsyncFunctionyyYaKFTQ1_", - { /*.BasenameRange=*/{52, 69}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{69, 71}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 52}, /*.SuffixRange=*/{71, 90} + { + /*.BasenameRange=*/{52, 69}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{69, 71}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{69, 0}, + /*.PrefixRange=*/{0, 52}, /*.SuffixRange=*/{71, 90} }, /*.basename=*/"testAsyncFunction", /*.arguments=*/"()" }, { "$s4diff1hyyS2iYjfXEF", - { /*.BasenameRange=*/{5, 6}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{6, 58}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{58, 64} + { + /*.BasenameRange=*/{5, 6}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{6, 58}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{6, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{58, 64} }, /*.basename=*/"h", /*.arguments=*/"(@differentiable(_forward) (Swift.Int) -> Swift.Int)" }, { "$s4diff1hyyS2iYjrXEF", - { /*.BasenameRange=*/{5, 6}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{6, 57}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{57, 63} + { + /*.BasenameRange=*/{5, 6}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{6, 57}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{6, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{57, 63} }, /*.basename=*/"h", /*.arguments=*/"(@differentiable(reverse) (Swift.Int) -> Swift.Int)" }, { "$s4diff1hyyS2iYjdXEF", - { /*.BasenameRange=*/{5, 6}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{6, 48}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{48, 54} + { + /*.BasenameRange=*/{5, 6}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{6, 48}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{6, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{48, 54} }, /*.basename=*/"h", /*.arguments=*/"(@differentiable (Swift.Int) -> Swift.Int)" }, { "$s4diff1hyyS2iYjlXEF", - { /*.BasenameRange=*/{5, 6}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{6, 57}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{57, 63} + { + /*.BasenameRange=*/{5, 6}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{6, 57}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{6, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{57, 63} }, /*.basename=*/"h", /*.arguments=*/"(@differentiable(_linear) (Swift.Int) -> Swift.Int)" }, { "$s4test3fooyyS2f_SfYkztYjrXEF", - { /*.BasenameRange=*/{5, 8}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{8, 96}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{96, 102} + { + /*.BasenameRange=*/{5, 8}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{8, 96}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{8, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{96, 102} }, /*.basename=*/"foo", /*.arguments=*/"(@differentiable(reverse) (Swift.Float, inout @noDerivative Swift.Float) -> Swift.Float)" }, { "$s4test3fooyyS2f_SfYkntYjrXEF", - { /*.BasenameRange=*/{5, 8}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{8, 98}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{98, 104} + { + /*.BasenameRange=*/{5, 8}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{8, 98}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{8, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{98, 104} }, /*.basename=*/"foo", /*.arguments=*/"(@differentiable(reverse) (Swift.Float, __owned @noDerivative Swift.Float) -> Swift.Float)" }, { "$s4test3fooyyS2f_SfYktYjrXEF", - { /*.BasenameRange=*/{5, 8}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{8, 90}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{90, 96} + { + /*.BasenameRange=*/{5, 8}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{8, 90}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{8, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{90, 96} }, /*.basename=*/"foo", /*.arguments=*/"(@differentiable(reverse) (Swift.Float, @noDerivative Swift.Float) -> Swift.Float)" }, { "$s4test3fooyyS2f_SfYktYaYbYjrXEF", - { /*.BasenameRange=*/{5, 8}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{8, 106}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{106, 112} + { + /*.BasenameRange=*/{5, 8}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{8, 106}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{8, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{106, 112} }, /*.basename=*/"foo", /*.arguments=*/"(@differentiable(reverse) @Sendable (Swift.Float, @noDerivative Swift.Float) async -> Swift.Float)" }, { "$s1t10globalFuncyyAA7MyActorCYiF", - { /*.BasenameRange=*/{2, 12}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{12, 32}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 2}, /*.SuffixRange=*/{32, 38} + { + /*.BasenameRange=*/{2, 12}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{12, 32}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{12, 0}, + /*.PrefixRange=*/{0, 2}, /*.SuffixRange=*/{32, 38} }, /*.basename=*/"globalFunc", /*.arguments=*/"(isolated t.MyActor)" }, { "$s6Foobar7Vector2VAASdRszlE10simdMatrix5scale6rotate9translateSo0C10_double3x3aACySdG_SdAJtFZ0D4TypeL_aySd__GD", - { /*.BasenameRange=*/{102, 112}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{112, 212}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 102}, /*.SuffixRange=*/{212, 234} + { + /*.BasenameRange=*/{102, 112}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{112, 212}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{112, 0}, + /*.PrefixRange=*/{0, 102}, /*.SuffixRange=*/{212, 234} }, /*.basename=*/"simdMatrix", /*.arguments=*/"(scale: Foobar.Vector2, rotate: Swift.Double, translate: Foobar.Vector2)" }, { "$s17distributed_thunk2DAC1fyyFTE", - { /*.BasenameRange=*/{39, 40}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{40, 42}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 39}, /*.SuffixRange=*/{42, 48} + { + /*.BasenameRange=*/{39, 40}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{40, 42}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{40, 0}, + /*.PrefixRange=*/{0, 39}, /*.SuffixRange=*/{42, 48} }, /*.basename=*/"f", /*.arguments=*/"()" }, { "$s16distributed_test1XC7computeyS2iFTF", - { /*.BasenameRange=*/{44, 51}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{51, 62}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 44}, /*.SuffixRange=*/{62, 75} + { + /*.BasenameRange=*/{44, 51}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{51, 62}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{51, 0}, + /*.PrefixRange=*/{0, 44}, /*.SuffixRange=*/{62, 75} }, /*.basename=*/"compute", /*.arguments=*/"(Swift.Int)" }, { "$s27distributed_actor_accessors7MyActorC7simple2ySSSiFTETFHF", - { /*.BasenameRange=*/{118, 125}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{125, 136}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 118}, /*.SuffixRange=*/{136, 152} + { + /*.BasenameRange=*/{118, 125}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{125, 136}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{125, 0}, + /*.PrefixRange=*/{0, 118}, /*.SuffixRange=*/{136, 152} }, /*.basename=*/"simple2", /*.arguments=*/"(Swift.Int)" }, { "$s1A3bar1aySSYt_tF", - { /*.BasenameRange=*/{2, 5}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{5, 29}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 2}, /*.SuffixRange=*/{29, 35} + { + /*.BasenameRange=*/{2, 5}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{5, 29}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{5, 0}, + /*.PrefixRange=*/{0, 2}, /*.SuffixRange=*/{29, 35} }, /*.basename=*/"bar", /*.arguments=*/"(a: _const Swift.String)" }, { "$s1t1fyyFSiAA3StrVcs7KeyPathCyADSiGcfu_SiADcfu0_33_556644b740b1b333fecb81e55a7cce98ADSiTf3npk_n", - { /*.BasenameRange=*/{258, 259}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{259, 261}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 258}, /*.SuffixRange=*/{261, 267} + { + /*.BasenameRange=*/{258, 259}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{259, 261}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{259, 0}, + /*.PrefixRange=*/{0, 258}, /*.SuffixRange=*/{261, 267} }, /*.basename=*/"f", /*.arguments=*/"()" }, { "$s21back_deploy_attribute0A12DeployedFuncyyFTwb", - { /*.BasenameRange=*/{48, 64}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{64, 66}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 48}, /*.SuffixRange=*/{66, 72} + { + /*.BasenameRange=*/{48, 64}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{64, 66}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{64, 0}, + /*.PrefixRange=*/{0, 48}, /*.SuffixRange=*/{66, 72} }, /*.basename=*/"backDeployedFunc", /*.arguments=*/"()" }, { "$s21back_deploy_attribute0A12DeployedFuncyyFTwB", - { /*.BasenameRange=*/{51, 67}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{67, 69}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 51}, /*.SuffixRange=*/{69, 75} + { + /*.BasenameRange=*/{51, 67}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{67, 69}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{67, 0}, + /*.PrefixRange=*/{0, 51}, /*.SuffixRange=*/{69, 75} }, /*.basename=*/"backDeployedFunc", /*.arguments=*/"()" }, { "$s4test3fooyyAA1P_px1TRts_XPlF", - { /*.BasenameRange=*/{5, 8}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{11, 36}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{36, 42} + { + /*.BasenameRange=*/{5, 8}, /*.TemplateRange=*/{8, 11}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{11, 36}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{8, 8}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{36, 42} }, /*.basename=*/"foo", /*.arguments=*/"(any test.P)" }, { "$s4test3fooyyAA1P_pSS1TAaCPRts_Si1UAERtsXPF", - { /*.BasenameRange=*/{5, 8}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{8, 79}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{79, 85} + { + /*.BasenameRange=*/{5, 8}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{8, 79}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{8, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{79, 85} }, /*.basename=*/"foo", /*.arguments=*/"(any test.P)" }, { "$s4test3FooVAAyyAA1P_pF", - { /*.BasenameRange=*/{9, 13}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{13, 21}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{21, 27} + { + /*.BasenameRange=*/{9, 13}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{13, 21}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{13, 0}, + /*.PrefixRange=*/{0, 9}, /*.SuffixRange=*/{21, 27} }, /*.basename=*/"test", /*.arguments=*/"(test.P)" }, { "$s7Library3fooyyFTwS", - { /*.BasenameRange=*/{30, 33}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{33, 35}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 30}, /*.SuffixRange=*/{35, 41} + { + /*.BasenameRange=*/{30, 33}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{33, 35}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{33, 0}, + /*.PrefixRange=*/{0, 30}, /*.SuffixRange=*/{35, 41} }, /*.basename=*/"foo", /*.arguments=*/"()" }, { "$s9MacroUser13testStringify1a1bySi_SitF9stringifyfMf1_", - { /*.BasenameRange=*/{58, 71}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{71, 99}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 58}, /*.SuffixRange=*/{99, 105} + { + /*.BasenameRange=*/{58, 71}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{71, 99}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{71, 0}, + /*.PrefixRange=*/{0, 58}, /*.SuffixRange=*/{99, 105} }, /*.basename=*/"testStringify", /*.arguments=*/"(a: Swift.Int, b: Swift.Int)" }, { "$s9MacroUser016testFreestandingA9ExpansionyyF4Foo3L_V23bitwidthNumberedStructsfMf_6methodfMu0_", - { /*.BasenameRange=*/{111, 141}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{141, 143}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 111}, /*.SuffixRange=*/{143, 149} + { + /*.BasenameRange=*/{111, 141}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{141, 143}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{141, 0}, + /*.PrefixRange=*/{0, 111}, /*.SuffixRange=*/{143, 149} }, /*.basename=*/"testFreestandingMacroExpansion", /*.arguments=*/"()" }, { "@__swiftmacro_1a13testStringifyAA1bySi_SitF9stringifyfMf_", - { /*.BasenameRange=*/{50, 63}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{63, 91}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 50}, /*.SuffixRange=*/{91, 97} + { + /*.BasenameRange=*/{50, 63}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{63, 91}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{63, 0}, + /*.PrefixRange=*/{0, 50}, /*.SuffixRange=*/{91, 97} }, /*.basename=*/"testStringify", /*.arguments=*/"(a: Swift.Int, b: Swift.Int)" }, { "$s12typed_throws15rethrowConcreteyyAA7MyErrorOYKF", - { /*.BasenameRange=*/{13, 28}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{28, 30}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 13}, /*.SuffixRange=*/{30, 65} + { + /*.BasenameRange=*/{13, 28}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{28, 30}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{28, 0}, + /*.PrefixRange=*/{0, 13}, /*.SuffixRange=*/{30, 65} }, /*.basename=*/"rethrowConcrete", /*.arguments=*/"()" }, { "$s3red3use2fnySiyYAXE_tF", - { /*.BasenameRange=*/{4, 7}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{7, 43}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 4}, /*.SuffixRange=*/{43, 49} + { + /*.BasenameRange=*/{4, 7}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{7, 43}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{7, 0}, + /*.PrefixRange=*/{0, 4}, /*.SuffixRange=*/{43, 49} }, /*.basename=*/"use", /*.arguments=*/"(fn: @isolated(any) () -> Swift.Int)" }, { "$s4testAAyAA5KlassC_ACtACnYTF", - { /*.BasenameRange=*/{5, 9}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{9, 29}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{29, 65} + { + /*.BasenameRange=*/{5, 9}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{9, 29}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{9, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{29, 65} }, /*.basename=*/"test", /*.arguments=*/"(__owned test.Klass)" }, { "$s5test24testyyAA5KlassCnYuF", - { /*.BasenameRange=*/{6, 10}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{10, 39}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 6}, /*.SuffixRange=*/{39, 45} + { + /*.BasenameRange=*/{6, 10}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{10, 39}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{10, 0}, + /*.PrefixRange=*/{0, 6}, /*.SuffixRange=*/{39, 45} }, /*.basename=*/"test", /*.arguments=*/"(sending __owned test2.Klass)" }, { "$s4testA2A5KlassCyYTF", - { /*.BasenameRange=*/{5, 9}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{9, 11}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{11, 33} + { + /*.BasenameRange=*/{5, 9}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{9, 11}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{9, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{11, 33} }, /*.basename=*/"test", /*.arguments=*/"()" }, { "$s4null19transferAsyncResultAA16NonSendableKlassCyYaYTF", - { /*.BasenameRange=*/{5, 24}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{24, 26}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{26, 65} + { + /*.BasenameRange=*/{5, 24}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{24, 26}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{24, 0}, + /*.PrefixRange=*/{0, 5}, /*.SuffixRange=*/{26, 65} }, /*.basename=*/"transferAsyncResult", /*.arguments=*/"()" }, { "$s3red7MyActorC3runyxxyYaKACYcYTXEYaKlFZ", - { /*.BasenameRange=*/{19, 22}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{25, 68}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 19}, /*.SuffixRange=*/{68, 86} + { + /*.BasenameRange=*/{19, 22}, /*.TemplateRange=*/{22, 25}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{25, 68}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{22, 22}, + /*.PrefixRange=*/{0, 19}, /*.SuffixRange=*/{68, 86} }, /*.basename=*/"run", /*.arguments=*/"(@red.MyActor () async throws -> sending A)" }, { "$s3red7MyActorC3runyxxyYaKYAYTXEYaKlFZ", - { /*.BasenameRange=*/{19, 22}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{25, 70}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 19}, /*.SuffixRange=*/{70, 88} + { + /*.BasenameRange=*/{19, 22}, /*.TemplateRange=*/{22, 25}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{25, 70}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{22, 22}, + /*.PrefixRange=*/{0, 19}, /*.SuffixRange=*/{70, 88} }, /*.basename=*/"run", /*.arguments=*/"(@isolated(any) () async throws -> sending A)" }, { "$s3red7MyActorC3runyxxyYaKYCXEYaKlFZ", - { /*.BasenameRange=*/{19, 22}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{25, 71}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 19}, /*.SuffixRange=*/{71, 89} + { + /*.BasenameRange=*/{19, 22}, /*.TemplateRange=*/{22, 25}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{25, 71}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{22, 22}, + /*.PrefixRange=*/{0, 19}, /*.SuffixRange=*/{71, 89} }, /*.basename=*/"run", /*.arguments=*/"(nonisolated(nonsending) () async throws -> A)" }, { "_$s15raw_identifiers0020pathfoo_yuEHaaCiJskayyF", - { /*.BasenameRange=*/{16, 28}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{28, 30}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 16}, /*.SuffixRange=*/{30, 36} + { + /*.BasenameRange=*/{16, 28}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{28, 30}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{28, 0}, + /*.PrefixRange=*/{0, 16}, /*.SuffixRange=*/{30, 36} }, /*.basename=*/"`path://foo`", /*.arguments=*/"()" }, { "_$s15raw_identifiers10FontWeightO009_100_FpEpdyyFZ", - { /*.BasenameRange=*/{34, 39}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{39, 41}, - /*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 34}, /*.SuffixRange=*/{41, 47} + { + /*.BasenameRange=*/{34, 39}, /*.TemplateRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, + /*.ArgumentsRange=*/{39, 41}, /*.QualifiersRange=*/{0, 0}, /*.NameQualifiersRange=*/{39, 0}, + /*.PrefixRange=*/{0, 34}, /*.SuffixRange=*/{41, 47} }, /*.basename=*/"`100`", /*.arguments=*/"()" @@ -1239,15 +1581,26 @@ TEST_P(SwiftDemanglingPartsTestFixture, SwiftDemanglingParts) { std::string demangled = printer.takeString(); DemangledNameInfo nameInfo = printer.getInfo(); nameInfo.PrefixRange.second = - std::min(info.BasenameRange.first, info.ArgumentsRange.first); + std::min(nameInfo.BasenameRange.first, nameInfo.ArgumentsRange.first); nameInfo.SuffixRange.first = - std::max(info.BasenameRange.second, info.ArgumentsRange.second); + std::max(nameInfo.BasenameRange.second, nameInfo.ArgumentsRange.second); nameInfo.SuffixRange.second = demangled.length(); + if (nameInfo.hasBasename() && nameInfo.hasArguments()) { + if (nameInfo.hasTemplate()) { + nameInfo.NameQualifiersRange.second = + std::min(nameInfo.ArgumentsRange.first, nameInfo.TemplateRange.first); + } else { + nameInfo.NameQualifiersRange.second = nameInfo.ArgumentsRange.first; + } + nameInfo.NameQualifiersRange.first = nameInfo.BasenameRange.second; + } EXPECT_EQ(nameInfo.BasenameRange, info.BasenameRange); + EXPECT_EQ(nameInfo.TemplateRange, info.TemplateRange); EXPECT_EQ(nameInfo.ScopeRange, info.ScopeRange); EXPECT_EQ(nameInfo.ArgumentsRange, info.ArgumentsRange); EXPECT_EQ(nameInfo.QualifiersRange, info.QualifiersRange); + EXPECT_EQ(nameInfo.NameQualifiersRange, info.NameQualifiersRange); EXPECT_EQ(nameInfo.PrefixRange, info.PrefixRange); EXPECT_EQ(nameInfo.SuffixRange, info.SuffixRange); @@ -1261,4 +1614,4 @@ TEST_P(SwiftDemanglingPartsTestFixture, SwiftDemanglingParts) { INSTANTIATE_TEST_SUITE_P( SwiftDemanglingPartsTests, SwiftDemanglingPartsTestFixture, - ::testing::ValuesIn(g_swift_demangling_parts_test_cases)); \ No newline at end of file + ::testing::ValuesIn(g_swift_demangling_parts_test_cases));