diff --git a/include/swift/IDE/CommentConversion.h b/include/swift/IDE/CommentConversion.h index d2703a03097fb..50c9ce71a68ad 100644 --- a/include/swift/IDE/CommentConversion.h +++ b/include/swift/IDE/CommentConversion.h @@ -14,6 +14,7 @@ #define SWIFT_IDE_COMMENT_CONVERSION_H #include "swift/Basic/LLVM.h" +#include "swift/AST/TypeOrExtensionDecl.h" #include #include @@ -27,7 +28,9 @@ namespace ide { /// in Clang-like XML format. /// /// \returns true if the declaration has a documentation comment. -bool getDocumentationCommentAsXML(const Decl *D, raw_ostream &OS); +bool getDocumentationCommentAsXML( + const Decl *D, raw_ostream &OS, + TypeOrExtensionDecl SynthesizedTarget = TypeOrExtensionDecl()); /// If the declaration has a documentation comment and a localization key, /// print it into the given output stream and return true. Else, return false. diff --git a/lib/AST/ASTPrinter.cpp b/lib/AST/ASTPrinter.cpp index b3815525627ee..0ee3b2a21fade 100644 --- a/lib/AST/ASTPrinter.cpp +++ b/lib/AST/ASTPrinter.cpp @@ -813,6 +813,10 @@ class PrintAST : public ASTVisitor { TypeArrayView genericParams, ArrayRef requirements, unsigned flags, llvm::function_ref filter); + void printSingleDepthOfGenericSignature( + TypeArrayView genericParams, + ArrayRef requirements, bool &isFirstReq, unsigned flags, + llvm::function_ref filter); void printRequirement(const Requirement &req); private: @@ -872,7 +876,12 @@ class PrintAST : public ASTVisitor { return false; // not needed for the parser library. #endif - if (!shouldPrint(D, true)) + bool Synthesize = + Options.TransformContext && + Options.TransformContext->isPrintingSynthesizedExtension() && + isa(D); + + if (!shouldPrint(D, true) && !Synthesize) return false; Decl *Old = Current; @@ -890,10 +899,6 @@ class PrintAST : public ASTVisitor { SWIFT_DEFER { CurrentType = OldType; }; - bool Synthesize = - Options.TransformContext && - Options.TransformContext->isPrintingSynthesizedExtension() && - isa(D); if (Synthesize) { Printer.setSynthesizedTarget(Options.TransformContext->getDecl()); } @@ -1456,6 +1461,15 @@ void PrintAST::printSingleDepthOfGenericSignature( TypeArrayView genericParams, ArrayRef requirements, unsigned flags, llvm::function_ref filter) { + bool isFirstReq = true; + printSingleDepthOfGenericSignature(genericParams, requirements, isFirstReq, + flags, filter); +} + +void PrintAST::printSingleDepthOfGenericSignature( + TypeArrayView genericParams, + ArrayRef requirements, bool &isFirstReq, unsigned flags, + llvm::function_ref filter) { bool printParams = (flags & PrintParams); bool printRequirements = (flags & PrintRequirements); printRequirements &= Options.PrintGenericRequirements; @@ -1502,7 +1516,6 @@ void PrintAST::printSingleDepthOfGenericSignature( } if (printRequirements || printInherited) { - bool isFirstReq = true; for (const auto &req : requirements) { if (!filter(req)) continue; @@ -1564,9 +1577,6 @@ void PrintAST::printSingleDepthOfGenericSignature( } } else { Printer.callPrintStructurePre(PrintStructureKind::GenericRequirement); - - // We don't substitute type for the printed requirement so that the - // printed requirement agrees with separately reported generic parameters. printRequirement(req); Printer.printStructurePost(PrintStructureKind::GenericRequirement); } @@ -1578,7 +1588,7 @@ void PrintAST::printSingleDepthOfGenericSignature( } void PrintAST::printRequirement(const Requirement &req) { - printType(req.getFirstType()); + printTransformedType(req.getFirstType()); switch (req.getKind()) { case RequirementKind::Layout: Printer << " : "; @@ -1592,7 +1602,7 @@ void PrintAST::printRequirement(const Requirement &req) { Printer << " == "; break; } - printType(req.getSecondType()); + printTransformedType(req.getSecondType()); } bool PrintAST::shouldPrintPattern(const Pattern *P) { @@ -2180,8 +2190,52 @@ static void printExtendedTypeName(Type ExtendedType, ASTPrinter &Printer, Ty->print(Printer, Options); } + void PrintAST::printSynthesizedExtension(Type ExtendedType, ExtensionDecl *ExtDecl) { + + auto printRequirementsFrom = [&](ExtensionDecl *ED, bool &IsFirst) { + auto Sig = ED->getGenericSignature(); + printSingleDepthOfGenericSignature(Sig->getGenericParams(), + Sig->getRequirements(), + IsFirst, PrintRequirements, + [](const Requirement &Req){ + return true; + }); + }; + + auto printCombinedRequirementsIfNeeded = [&]() -> bool { + if (!Options.TransformContext || + !Options.TransformContext->isPrintingSynthesizedExtension()) + return false; + + // Combined requirements only needed if the transform context is an enabling + // extension of the protocol rather than a nominal (which can't have + // constraints of its own). + ExtensionDecl *Target = dyn_cast( + Options.TransformContext->getDecl().getAsDecl()); + if (!Target || Target == ExtDecl) + return false; + + bool IsFirst = true; + if (ExtDecl->isConstrainedExtension()) { + printRequirementsFrom(ExtDecl, IsFirst); + } + if (Target->isConstrainedExtension()) { + if (auto *NTD = Target->getExtendedNominal()) { + // Update the current decl and type transform for Target rather than + // ExtDecl. + PrintOptions Adjusted = Options; + Adjusted.initForSynthesizedExtension(NTD); + llvm::SaveAndRestore TempCurrent(Current, NTD); + llvm::SaveAndRestore TempOptions(Options, Adjusted); + printRequirementsFrom(Target, IsFirst); + } + } + return true; + }; + + if (Options.BracketOptions.shouldOpenExtension(ExtDecl)) { printDocumentationComment(ExtDecl); printAttributes(ExtDecl); @@ -2189,7 +2243,25 @@ void PrintAST::printSynthesizedExtension(Type ExtendedType, printExtendedTypeName(ExtendedType, Printer, Options); printInherited(ExtDecl); - printDeclGenericRequirements(ExtDecl); + + // We may need to combine requirements from ExtDecl (which has the members + // to print) and the TransformContexts' decl if it is an enabling extension + // of the base NominalDecl (which can have its own requirements) rather than + // base NominalDecl itself (which can't). E.g: + // + // protocol Foo {} + // extension Foo where { ... } + // struct Bar {} + // extension Bar: Foo where { ... } + // + // should produce a synthesized extension of Bar with both sets of + // requirments: + // + // extension Bar where "; } - void visitDocComment(const DocComment *DC); + void visitDocComment(const DocComment *DC, TypeOrExtensionDecl SynthesizedTarget); void visitCommentParts(const swift::markup::CommentParts &Parts); }; } // unnamed namespace @@ -297,7 +297,8 @@ void CommentToXMLConverter::visitCommentParts(const swift::markup::CommentParts } } -void CommentToXMLConverter::visitDocComment(const DocComment *DC) { +void CommentToXMLConverter:: +visitDocComment(const DocComment *DC, TypeOrExtensionDecl SynthesizedTarget) { const Decl *D = DC->getDecl(); StringRef RootEndTag; @@ -347,6 +348,10 @@ void CommentToXMLConverter::visitDocComment(const DocComment *DC) { { llvm::raw_svector_ostream OS(SS); Failed = ide::printValueDeclUSR(VD, OS); + if (!Failed && SynthesizedTarget) { + OS << "::SYNTHESIZED::"; + Failed = ide::printValueDeclUSR(SynthesizedTarget.getBaseNominal(), OS); + } } if (!Failed && !SS.empty()) { OS << "" << SS << ""; @@ -362,6 +367,9 @@ void CommentToXMLConverter::visitDocComment(const DocComment *DC) { PO.VarInitializers = false; PO.ShouldQualifyNestedDeclarations = PrintOptions::QualifyNestedDeclarations::TypesOnly; + PO.SkipUnderscoredStdlibProtocols = false; + if (SynthesizedTarget) + PO.initForSynthesizedExtension(SynthesizedTarget); OS << ""; llvm::SmallString<32> DeclSS; @@ -398,12 +406,15 @@ static bool getClangDocumentationCommentAsXML(const clang::Decl *D, return true; } -static void replaceObjcDeclarationsWithSwiftOnes(const Decl *D, - StringRef Doc, - raw_ostream &OS) { +static void +replaceObjcDeclarationsWithSwiftOnes(const Decl *D, StringRef Doc, + raw_ostream &OS, + TypeOrExtensionDecl SynthesizedTarget) { StringRef Open = ""; StringRef Close = ""; PrintOptions Options = PrintOptions::printQuickHelpDeclaration(); + if (SynthesizedTarget) + Options.initForSynthesizedExtension(SynthesizedTarget); std::string S; llvm::raw_string_ostream SS(S); D->print(SS, Options); @@ -444,14 +455,16 @@ std::string ide::extractPlainTextFromComment(const StringRef Text) { return getLineListFromComment(SourceMgr, MC, Text).str(); } -bool ide::getDocumentationCommentAsXML(const Decl *D, raw_ostream &OS) { +bool ide::getDocumentationCommentAsXML(const Decl *D, raw_ostream &OS, + TypeOrExtensionDecl SynthesizedTarget) { auto MaybeClangNode = D->getClangNode(); if (MaybeClangNode) { if (auto *CD = MaybeClangNode.getAsDecl()) { std::string S; llvm::raw_string_ostream SS(S); if (getClangDocumentationCommentAsXML(CD, SS)) { - replaceObjcDeclarationsWithSwiftOnes(D, SS.str(), OS); + replaceObjcDeclarationsWithSwiftOnes(D, SS.str(), OS, + SynthesizedTarget); return true; } } @@ -464,7 +477,7 @@ bool ide::getDocumentationCommentAsXML(const Decl *D, raw_ostream &OS) { return false; CommentToXMLConverter Converter(OS); - Converter.visitDocComment(DC); + Converter.visitDocComment(DC, SynthesizedTarget); OS.flush(); return true; diff --git a/lib/IDE/IDETypeChecking.cpp b/lib/IDE/IDETypeChecking.cpp index 57c124d7f184e..c928cb3dd6824 100644 --- a/lib/IDE/IDETypeChecking.cpp +++ b/lib/IDE/IDETypeChecking.cpp @@ -282,7 +282,10 @@ struct SynthesizedExtensionAnalyzer::Implementation { auto handleRequirements = [&](SubstitutionMap subMap, GenericSignature GenericSig, + ExtensionDecl *OwningExt, ArrayRef Reqs) { + ProtocolDecl *BaseProto = OwningExt->getInnermostDeclContext() + ->getSelfProtocolDecl(); for (auto Req : Reqs) { auto Kind = Req.getKind(); @@ -290,8 +293,16 @@ struct SynthesizedExtensionAnalyzer::Implementation { if (Kind == RequirementKind::Layout) continue; - auto First = Req.getFirstType(); - auto Second = Req.getSecondType(); + Type First = Req.getFirstType(); + Type Second = Req.getSecondType(); + + // Skip protocol's Self : requirement. + if (BaseProto && + Req.getKind() == RequirementKind::Conformance && + First->isEqual(BaseProto->getSelfInterfaceType()) && + Second->getAnyNominal() == BaseProto) + continue; + if (!BaseType->isExistentialType()) { First = First.subst(subMap); Second = Second.subst(subMap); @@ -346,19 +357,29 @@ struct SynthesizedExtensionAnalyzer::Implementation { // the extension to the interface types of the base type's // declaration. SubstitutionMap subMap; - if (!BaseType->isExistentialType()) - subMap = BaseType->getContextSubstitutionMap(M, Ext); + if (!BaseType->isExistentialType()) { + if (auto *NTD = Ext->getExtendedNominal()) + subMap = BaseType->getContextSubstitutionMap(M, NTD); + } assert(Ext->getGenericSignature() && "No generic signature."); auto GenericSig = Ext->getGenericSignature(); - if (handleRequirements(subMap, GenericSig, GenericSig->getRequirements())) + if (handleRequirements(subMap, GenericSig, Ext, GenericSig->getRequirements())) return {Result, MergeInfo}; } - if (Conf && handleRequirements(Conf->getSubstitutions(M), - Conf->getGenericSignature(), - Conf->getConditionalRequirements())) - return {Result, MergeInfo}; + if (Conf) { + SubstitutionMap subMap; + if (!BaseType->isExistentialType()) { + if (auto *NTD = EnablingExt->getExtendedNominal()) + subMap = BaseType->getContextSubstitutionMap(M, NTD); + } + if (handleRequirements(subMap, + Conf->getGenericSignature(), + EnablingExt, + Conf->getConditionalRequirements())) + return {Result, MergeInfo}; + } Result.Ext = Ext; return {Result, MergeInfo}; @@ -431,7 +452,14 @@ struct SynthesizedExtensionAnalyzer::Implementation { auto handleExtension = [&](ExtensionDecl *E, bool Synthesized, ExtensionDecl *EnablingE, NormalProtocolConformance *Conf) { - if (Options.shouldPrint(E)) { + PrintOptions AdjustedOpts = Options; + if (Synthesized) { + // Members from underscored system protocols should still appear as + // members of the target type, even if the protocols themselves are not + // printed. + AdjustedOpts.SkipUnderscoredStdlibProtocols = false; + } + if (AdjustedOpts.shouldPrint(E)) { auto Pair = isApplicable(E, Synthesized, EnablingE, Conf); if (Pair.first) { InfoMap->insert({E, Pair.first}); diff --git a/test/IDE/print_synthesized_extensions.swift b/test/IDE/print_synthesized_extensions.swift index 55a42676c393e..0b2cec63473f4 100644 --- a/test/IDE/print_synthesized_extensions.swift +++ b/test/IDE/print_synthesized_extensions.swift @@ -237,21 +237,21 @@ extension S13 : P5 { public func foo1() {} } -// CHECK1: extension S1 where Self.P2T1 : P2 { +// CHECK1: extension S1 where T : P2 { // CHECK1-NEXT: public func p2member() // CHECK1-NEXT: public func ef1(t: T) // CHECK1-NEXT: public func ef2(t: S2) // CHECK1-NEXT: } -// CHECK2: extension S1 where Self.T1 : P3 { +// CHECK2: extension S1 where T : P3 { // CHECK2-NEXT: public func p3Func(i: Int) -> Int // CHECK2-NEXT: } -// CHECK3: extension S1 where Self.T1 == Int { +// CHECK3: extension S1 where T == Int { // CHECK3-NEXT: public func p1IntFunc(i: Int) -> Int // CHECK3-NEXT: } -// CHECK4: extension S1 where Self.T1 == S9<Int> { +// CHECK4: extension S1 where T == S9<Int> { // CHECK4-NEXT: public func S9IntFunc() // CHECK4-NEXT: } diff --git a/test/SourceKit/DocSupport/doc_clang_module.swift.response b/test/SourceKit/DocSupport/doc_clang_module.swift.response index 7397dc33ebcb0..5e57ce4087762 100644 --- a/test/SourceKit/DocSupport/doc_clang_module.swift.response +++ b/test/SourceKit/DocSupport/doc_clang_module.swift.response @@ -65,7 +65,7 @@ struct FooRuncingOptions : OptionSet { extension FooRuncingOptions { - @inlinable init(_ sequence: S) where S : Sequence, Self.Element == S.Element + @inlinable init(_ sequence: S) where S : Sequence, FooRuncingOptions == S.Element @inlinable mutating func subtract(_ other: FooRuncingOptions) @@ -1314,3479 +1314,3474 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.length: 8 }, { - key.kind: source.lang.swift.ref.generic_type_param, - key.name: "Self", - key.usr: "s:s10SetAlgebraP4Selfxmfp", + key.kind: source.lang.swift.ref.struct, + key.name: "FooRuncingOptions", + key.usr: "c:@E@FooRuncingOptions", key.offset: 1547, - key.length: 4 - }, - { - key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 1552, - key.length: 7 + key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 1563, + key.offset: 1568, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 1565, + key.offset: 1570, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1578, + key.offset: 1583, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1589, + key.offset: 1594, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1598, + key.offset: 1603, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1603, + key.offset: 1608, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 1612, + key.offset: 1617, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 1614, + key.offset: 1619, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 1621, + key.offset: 1626, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1645, + key.offset: 1650, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1656, + key.offset: 1661, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1661, + key.offset: 1666, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 1670, + key.offset: 1675, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 1673, + key.offset: 1678, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 1680, + key.offset: 1685, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 1702, + key.offset: 1707, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1712, + key.offset: 1717, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1723, + key.offset: 1728, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1728, + key.offset: 1733, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 1739, + key.offset: 1744, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 1742, + key.offset: 1747, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 1749, + key.offset: 1754, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 1771, + key.offset: 1776, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1781, + key.offset: 1786, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1792, + key.offset: 1797, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1797, + key.offset: 1802, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 1808, + key.offset: 1813, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 1813, + key.offset: 1818, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 1820, + key.offset: 1825, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 1842, + key.offset: 1847, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1852, + key.offset: 1857, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1863, + key.offset: 1868, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1868, + key.offset: 1873, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 1880, + key.offset: 1885, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 1882, + key.offset: 1887, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 1889, + key.offset: 1894, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 1911, + key.offset: 1916, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1934, + key.offset: 1939, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1945, + key.offset: 1950, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1949, + key.offset: 1954, key.length: 7 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 1958, + key.offset: 1963, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1965, + key.offset: 1970, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1976, + key.offset: 1981, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1987, + key.offset: 1992, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1992, + key.offset: 1997, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2009, + key.offset: 2014, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2012, + key.offset: 2017, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2019, + key.offset: 2024, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 2041, + key.offset: 2046, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2051, + key.offset: 2056, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2062, + key.offset: 2067, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2067, + key.offset: 2072, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2082, + key.offset: 2087, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2085, + key.offset: 2090, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2092, + key.offset: 2097, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 2114, + key.offset: 2119, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2122, + key.offset: 2127, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2132, + key.offset: 2137, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2157, + key.offset: 2162, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2168, + key.offset: 2173, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2173, + key.offset: 2178, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2179, + key.offset: 2184, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2181, + key.offset: 2186, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2188, + key.offset: 2193, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2210, + key.offset: 2215, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2233, + key.offset: 2238, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2244, + key.offset: 2249, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2249, + key.offset: 2254, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2262, + key.offset: 2267, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2264, + key.offset: 2269, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2271, + key.offset: 2276, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2293, + key.offset: 2298, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2316, + key.offset: 2321, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2327, + key.offset: 2332, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2332, + key.offset: 2337, key.length: 19 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2352, + key.offset: 2357, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2354, + key.offset: 2359, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2361, + key.offset: 2366, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2383, + key.offset: 2388, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2404, + key.offset: 2409, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2414, + key.offset: 2419, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2439, + key.offset: 2444, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2450, + key.offset: 2455, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2455, + key.offset: 2460, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2464, + key.offset: 2469, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2466, + key.offset: 2471, key.length: 6 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2474, + key.offset: 2479, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 2496, + key.offset: 2501, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2506, + key.offset: 2511, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2517, + key.offset: 2522, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2526, + key.offset: 2531, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2531, + key.offset: 2536, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2538, + key.offset: 2543, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2540, + key.offset: 2545, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2551, + key.offset: 2556, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2574, + key.offset: 2579, key.length: 8 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 2584, + key.offset: 2589, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2590, + key.offset: 2595, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2609, + key.offset: 2614, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2633, + key.offset: 2638, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2644, + key.offset: 2649, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2653, + key.offset: 2658, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2658, + key.offset: 2663, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2665, + key.offset: 2670, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2667, + key.offset: 2672, key.length: 6 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2675, + key.offset: 2680, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2697, + key.offset: 2702, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2721, + key.offset: 2726, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2732, + key.offset: 2737, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2741, + key.offset: 2746, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2746, + key.offset: 2751, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2753, + key.offset: 2758, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2758, + key.offset: 2763, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2769, + key.offset: 2774, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2791, + key.offset: 2796, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2813, + key.offset: 2818, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2823, + key.offset: 2828, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2848, + key.offset: 2853, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2859, + key.offset: 2864, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2871, + key.offset: 2876, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2882, + key.offset: 2887, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2891, + key.offset: 2896, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2896, + key.offset: 2901, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2906, + key.offset: 2911, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2908, + key.offset: 2913, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2915, + key.offset: 2920, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2939, + key.offset: 2944, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2950, + key.offset: 2955, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2959, + key.offset: 2964, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2964, + key.offset: 2969, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2981, + key.offset: 2986, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2983, + key.offset: 2988, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2990, + key.offset: 2995, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3014, + key.offset: 3019, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3025, + key.offset: 3030, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3034, + key.offset: 3039, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3039, + key.offset: 3044, key.length: 23 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3063, + key.offset: 3068, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3065, + key.offset: 3070, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 3072, + key.offset: 3077, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3093, + key.offset: 3098, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3100, + key.offset: 3105, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3118, + key.offset: 3123, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3122, + key.offset: 3127, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3125, + key.offset: 3130, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3136, + key.offset: 3141, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3140, + key.offset: 3145, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Double", key.usr: "s:Sd", - key.offset: 3143, + key.offset: 3148, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3155, + key.offset: 3160, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3167, + key.offset: 3172, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3172, + key.offset: 3177, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3174, + key.offset: 3179, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3177, + key.offset: 3182, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3184, + key.offset: 3189, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3186, + key.offset: 3191, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Double", key.usr: "s:Sd", - key.offset: 3189, + key.offset: 3194, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3199, + key.offset: 3204, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3209, + key.offset: 3214, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "UnsafeMutablePointer", key.usr: "s:Sp", - key.offset: 3229, + key.offset: 3234, key.length: 20 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooStruct1", key.usr: "c:@S@FooStruct1", - key.offset: 3250, + key.offset: 3255, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3262, + key.offset: 3267, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3269, + key.offset: 3274, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3287, + key.offset: 3292, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3291, + key.offset: 3296, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3294, + key.offset: 3299, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3305, + key.offset: 3310, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3309, + key.offset: 3314, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Double", key.usr: "s:Sd", - key.offset: 3312, + key.offset: 3317, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3324, + key.offset: 3329, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3336, + key.offset: 3341, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3341, + key.offset: 3346, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3343, + key.offset: 3348, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3346, + key.offset: 3351, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3353, + key.offset: 3358, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3355, + key.offset: 3360, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Double", key.usr: "s:Sd", - key.offset: 3358, + key.offset: 3363, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3368, + key.offset: 3373, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3378, + key.offset: 3383, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooStruct2", key.usr: "c:@S@FooStruct2", - key.offset: 3398, + key.offset: 3403, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3409, + key.offset: 3414, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3416, + key.offset: 3421, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3441, + key.offset: 3446, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3445, + key.offset: 3450, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3448, + key.offset: 3453, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3459, + key.offset: 3464, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3463, + key.offset: 3468, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Double", key.usr: "s:Sd", - key.offset: 3466, + key.offset: 3471, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3478, + key.offset: 3483, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3490, + key.offset: 3495, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3495, + key.offset: 3500, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3497, + key.offset: 3502, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3500, + key.offset: 3505, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3507, + key.offset: 3512, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3509, + key.offset: 3514, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Double", key.usr: "s:Sd", - key.offset: 3512, + key.offset: 3517, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3522, + key.offset: 3527, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3532, + key.offset: 3537, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3546, + key.offset: 3551, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3552, + key.offset: 3557, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3556, + key.offset: 3561, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3567, + key.offset: 3572, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3573, + key.offset: 3578, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3578, + key.offset: 3583, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3587, + key.offset: 3592, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3589, + key.offset: 3594, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3592, + key.offset: 3597, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3602, + key.offset: 3607, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3608, + key.offset: 3613, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3613, + key.offset: 3618, key.length: 22 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3636, + key.offset: 3641, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3638, + key.offset: 3643, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3641, + key.offset: 3646, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3651, + key.offset: 3656, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3657, + key.offset: 3662, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3662, + key.offset: 3667, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3671, + key.offset: 3676, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3673, + key.offset: 3678, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3676, + key.offset: 3681, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3683, + key.offset: 3688, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3685, + key.offset: 3690, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Float", key.usr: "s:Sf", - key.offset: 3688, + key.offset: 3693, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3695, + key.offset: 3700, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3697, + key.offset: 3702, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Double", key.usr: "s:Sd", - key.offset: 3700, + key.offset: 3705, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3708, + key.offset: 3713, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3710, + key.offset: 3715, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "UnsafeMutablePointer", key.usr: "s:Sp", - key.offset: 3713, + key.offset: 3718, key.length: 20 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3734, + key.offset: 3739, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3746, + key.offset: 3751, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3752, + key.offset: 3757, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3757, + key.offset: 3762, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3774, + key.offset: 3779, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3776, + key.offset: 3781, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Float", key.usr: "s:Sf", - key.offset: 3783, + key.offset: 3788, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3793, + key.offset: 3798, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3802, + key.offset: 3807, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3807, + key.offset: 3812, key.length: 26 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3834, + key.offset: 3839, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3836, + key.offset: 3841, key.length: 4 }, { key.kind: source.lang.swift.ref.struct, key.name: "Float", key.usr: "s:Sf", - key.offset: 3844, + key.offset: 3849, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 3854, + key.offset: 3859, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3863, + key.offset: 3868, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3868, + key.offset: 3873, key.length: 16 }, { key.kind: source.lang.swift.ref.enum, key.name: "Never", key.usr: "s:s5NeverO", - key.offset: 3890, + key.offset: 3895, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3896, + key.offset: 3901, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3901, + key.offset: 3906, key.length: 16 }, { key.kind: source.lang.swift.ref.enum, key.name: "Never", key.usr: "s:s5NeverO", - key.offset: 3923, + key.offset: 3928, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3929, + key.offset: 3934, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3934, + key.offset: 3939, key.length: 19 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3956, + key.offset: 3961, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3961, + key.offset: 3966, key.length: 19 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3983, + key.offset: 3988, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3988, + key.offset: 3993, key.length: 19 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4010, + key.offset: 4015, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4015, + key.offset: 4020, key.length: 19 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4037, + key.offset: 4042, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4042, + key.offset: 4047, key.length: 19 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4064, + key.offset: 4069, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4069, + key.offset: 4074, key.length: 32 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4102, + key.offset: 4107, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4104, + key.offset: 4109, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 4107, + key.offset: 4112, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 4117, + key.offset: 4122, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4123, + key.offset: 4128, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4132, + key.offset: 4137, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4155, + key.offset: 4160, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4160, + key.offset: 4165, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4180, + key.offset: 4185, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4185, + key.offset: 4190, key.length: 33 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4226, + key.offset: 4231, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4231, + key.offset: 4236, key.length: 33 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4272, + key.offset: 4277, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4279, + key.offset: 4284, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4284, + key.offset: 4289, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4309, + key.offset: 4314, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4313, + key.offset: 4318, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 4327, + key.offset: 4332, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4335, + key.offset: 4340, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4339, + key.offset: 4344, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4350, + key.offset: 4355, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4354, + key.offset: 4359, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 4368, + key.offset: 4373, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4376, + key.offset: 4381, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4380, + key.offset: 4385, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4391, + key.offset: 4396, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4395, + key.offset: 4400, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 4409, + key.offset: 4414, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4417, + key.offset: 4422, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4425, + key.offset: 4430, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4434, + key.offset: 4439, key.length: 18 }, { key.kind: source.lang.swift.ref.protocol, key.name: "FooProtocolBase", key.usr: "c:objc(pl)FooProtocolBase", - key.offset: 4455, + key.offset: 4460, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4475, + key.offset: 4480, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4481, + key.offset: 4486, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4501, + key.offset: 4506, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4506, + key.offset: 4511, key.length: 20 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4534, + key.offset: 4539, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4539, + key.offset: 4544, key.length: 20 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4560, + key.offset: 4565, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4562, + key.offset: 4567, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4572, + key.offset: 4577, key.length: 3 }, { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 4581, + key.offset: 4586, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4600, + key.offset: 4605, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 4613, + key.offset: 4618, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4625, + key.offset: 4630, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4631, + key.offset: 4636, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4637, + key.offset: 4642, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Float", key.usr: "s:Sf", - key.offset: 4640, + key.offset: 4645, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4652, + key.offset: 4657, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4657, + key.offset: 4662, key.length: 29 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4694, + key.offset: 4699, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4700, + key.offset: 4705, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4705, + key.offset: 4710, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4730, + key.offset: 4735, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4735, + key.offset: 4740, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4755, + key.offset: 4760, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4765, + key.offset: 4770, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4770, + key.offset: 4775, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4790, + key.offset: 4795, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4800, + key.offset: 4805, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4805, + key.offset: 4810, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4826, + key.offset: 4831, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4836, + key.offset: 4841, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4841, + key.offset: 4846, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4861, + key.offset: 4866, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4868, + key.offset: 4873, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4874, + key.offset: 4879, key.length: 15 }, { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 4892, + key.offset: 4897, key.length: 12 }, { key.kind: source.lang.swift.ref.protocol, key.name: "FooProtocolDerived", key.usr: "c:objc(pl)FooProtocolDerived", - key.offset: 4906, + key.offset: 4911, key.length: 18 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4932, + key.offset: 4937, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4936, + key.offset: 4941, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 4950, + key.offset: 4955, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4961, + key.offset: 4966, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4965, + key.offset: 4970, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 4979, + key.offset: 4984, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4990, + key.offset: 4995, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4994, + key.offset: 4999, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 5008, + key.offset: 5013, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5016, + key.offset: 5021, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5027, + key.offset: 5032, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5032, + key.offset: 5037, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5056, + key.offset: 5061, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5061, + key.offset: 5066, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 5078, + key.offset: 5083, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 5080, + key.offset: 5085, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 5083, + key.offset: 5088, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5095, + key.offset: 5100, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5100, + key.offset: 5105, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 5117, + key.offset: 5122, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 5119, + key.offset: 5124, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 5122, + key.offset: 5127, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 5129, + key.offset: 5134, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 5135, + key.offset: 5140, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 5138, + key.offset: 5143, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5150, + key.offset: 5155, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5155, + key.offset: 5160, key.length: 29 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5192, + key.offset: 5197, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5198, + key.offset: 5203, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5203, + key.offset: 5208, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5224, + key.offset: 5229, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5229, + key.offset: 5234, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5249, + key.offset: 5254, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5259, + key.offset: 5264, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5264, + key.offset: 5269, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5284, + key.offset: 5289, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5294, + key.offset: 5299, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5299, + key.offset: 5304, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5320, + key.offset: 5325, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5330, + key.offset: 5335, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5335, + key.offset: 5340, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5355, + key.offset: 5360, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5362, + key.offset: 5367, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5372, + key.offset: 5377, key.length: 13 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 5388, + key.offset: 5393, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5394, + key.offset: 5399, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5398, + key.offset: 5403, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 5411, + key.offset: 5416, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5419, + key.offset: 5424, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5425, + key.offset: 5430, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5429, + key.offset: 5434, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 5442, + key.offset: 5447, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5450, + key.offset: 5455, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5456, + key.offset: 5461, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5460, + key.offset: 5465, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 5473, + key.offset: 5478, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5481, + key.offset: 5486, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5487, + key.offset: 5492, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5491, + key.offset: 5496, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "UInt32", key.usr: "s:s6UInt32V", - key.offset: 5504, + key.offset: 5509, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5513, + key.offset: 5518, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5519, + key.offset: 5524, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5523, + key.offset: 5528, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "UInt64", key.usr: "s:s6UInt64V", - key.offset: 5536, + key.offset: 5541, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5545, + key.offset: 5550, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5551, + key.offset: 5556, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5555, + key.offset: 5560, key.length: 11 }, { key.kind: source.lang.swift.ref.typealias, key.name: "typedef_int_t", key.usr: "c:Foo.h@T@typedef_int_t", - key.offset: 5568, + key.offset: 5573, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5584, + key.offset: 5589, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5590, + key.offset: 5595, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5594, + key.offset: 5599, key.length: 11 }, { key.kind: source.lang.swift.ref.typealias, key.name: "typedef_int_t", key.usr: "c:Foo.h@T@typedef_int_t", - key.offset: 5607, + key.offset: 5612, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5623, + key.offset: 5628, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5629, + key.offset: 5634, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5633, + key.offset: 5638, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int8", key.usr: "s:s4Int8V", - key.offset: 5646, + key.offset: 5651, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5653, + key.offset: 5658, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5659, + key.offset: 5664, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5663, + key.offset: 5668, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 5676, + key.offset: 5681, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5684, + key.offset: 5689, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5690, + key.offset: 5695, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5694, + key.offset: 5699, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int16", key.usr: "s:s5Int16V", - key.offset: 5708, + key.offset: 5713, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5716, + key.offset: 5721, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5722, + key.offset: 5727, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5726, + key.offset: 5731, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 5740, + key.offset: 5745, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5746, + key.offset: 5751, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5752, + key.offset: 5757, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5756, + key.offset: 5761, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 5770, + key.offset: 5775, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5778, + key.offset: 5783, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5784, + key.offset: 5789, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5788, + key.offset: 5793, key.length: 13 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 5803, + key.offset: 5808, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5811, + key.offset: 5816, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5817, + key.offset: 5822, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5821, + key.offset: 5826, key.length: 18 }, { key.kind: source.lang.swift.ref.struct, key.name: "UInt64", key.usr: "s:s6UInt64V", - key.offset: 5841, + key.offset: 5846, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5850, + key.offset: 5855, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5856, + key.offset: 5861, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5860, + key.offset: 5865, key.length: 16 }, { key.kind: source.lang.swift.ref.struct, key.name: "UInt32", key.usr: "s:s6UInt32V", - key.offset: 5878, + key.offset: 5883, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5887, + key.offset: 5892, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5893, + key.offset: 5898, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5897, + key.offset: 5902, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 5916, + key.offset: 5921, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5924, + key.offset: 5929, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5930, + key.offset: 5935, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5934, + key.offset: 5939, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 5953, + key.offset: 5958, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5961, + key.offset: 5966, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5967, + key.offset: 5972, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5972, + key.offset: 5977, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5991, + key.offset: 5996, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5996, + key.offset: 6001, key.length: 21 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6020, + key.offset: 6025, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6027, + key.offset: 6032, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6050, + key.offset: 6055, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6054, + key.offset: 6059, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 6057, + key.offset: 6062, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6068, + key.offset: 6073, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6080, + key.offset: 6085, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 6085, + key.offset: 6090, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 6087, + key.offset: 6092, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 6090, + key.offset: 6095, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6099, + key.offset: 6104, key.length: 9 }, { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 6109, + key.offset: 6114, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6129, + key.offset: 6134, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6134, + key.offset: 6139, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6154, + key.offset: 6159, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6161, + key.offset: 6166, key.length: 9 }, { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 6171, + key.offset: 6176, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6191, + key.offset: 6196, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6196, + key.offset: 6201, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6216, + key.offset: 6221, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6226, + key.offset: 6231, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6231, + key.offset: 6236, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6252, + key.offset: 6257, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6259, + key.offset: 6264, key.length: 9 }, { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 6269, + key.offset: 6274, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6289, + key.offset: 6294, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6294, + key.offset: 6299, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6314, + key.offset: 6319, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6321, + key.offset: 6326, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6330, + key.offset: 6335, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6348, + key.offset: 6353, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6354, + key.offset: 6359, key.length: 21 }, { key.kind: source.lang.swift.ref.protocol, key.name: "_InternalProt", key.usr: "c:objc(pl)_InternalProt", - key.offset: 6378, + key.offset: 6383, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6396, + key.offset: 6401, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6402, + key.offset: 6407, key.length: 25 }, { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 6430, + key.offset: 6435, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 6450, + key.offset: 6455, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6466, + key.offset: 6471, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6470, + key.offset: 6475, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 6482, + key.offset: 6487, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 6498, + key.offset: 6503, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6514, + key.offset: 6519, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6518, + key.offset: 6523, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 6536, + key.offset: 6541, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6552, + key.offset: 6557, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6556, + key.offset: 6561, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6568, + key.offset: 6573, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6578, + key.offset: 6583, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6582, + key.offset: 6587, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6593, + key.offset: 6598, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6603, + key.offset: 6608, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6607, + key.offset: 6612, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6617, + key.offset: 6622, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 6627, + key.offset: 6632, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6632, + key.offset: 6637, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6636, + key.offset: 6641, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 6645, + key.offset: 6650, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6661, + key.offset: 6666, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6665, + key.offset: 6670, key.length: 6 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 6673, + key.offset: 6678, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6684, + key.offset: 6689, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6689, + key.offset: 6694, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6709, + key.offset: 6714, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6719, + key.offset: 6724, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6724, + key.offset: 6729, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6744, + key.offset: 6749, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6754, + key.offset: 6759, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6759, + key.offset: 6764, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6780, + key.offset: 6785, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6790, + key.offset: 6795, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6795, + key.offset: 6800, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6815, + key.offset: 6820, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6822, + key.offset: 6827, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6826, + key.offset: 6831, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6838, + key.offset: 6843, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6844, + key.offset: 6849, key.length: 21 }, { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 6868, + key.offset: 6873, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 6888, + key.offset: 6893, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6900, + key.offset: 6905, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 6906, + key.offset: 6911, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 6910, + key.offset: 6915, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 6913, + key.offset: 6918, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6925, + key.offset: 6930, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6930, + key.offset: 6935, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6949, + key.offset: 6954, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6954, + key.offset: 6959, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6978, + key.offset: 6983, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6983, + key.offset: 6988, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7001, + key.offset: 7006, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7006, + key.offset: 7011, key.length: 22 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7036, + key.offset: 7041, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7041, + key.offset: 7046, key.length: 22 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7071, + key.offset: 7076, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7076, + key.offset: 7081, key.length: 21 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7105, + key.offset: 7110, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7110, + key.offset: 7115, key.length: 23 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7141, + key.offset: 7146, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7146, + key.offset: 7151, key.length: 25 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7179, + key.offset: 7184, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7184, + key.offset: 7189, key.length: 25 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7217, + key.offset: 7222, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7222, + key.offset: 7227, key.length: 24 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7254, + key.offset: 7259, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7259, + key.offset: 7264, key.length: 26 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7293, + key.offset: 7298, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7298, + key.offset: 7303, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7318, + key.offset: 7323, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7328, + key.offset: 7333, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7333, + key.offset: 7338, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7353, + key.offset: 7358, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7363, + key.offset: 7368, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7368, + key.offset: 7373, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7389, + key.offset: 7394, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7399, + key.offset: 7404, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7404, + key.offset: 7409, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7424, + key.offset: 7429, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7431, + key.offset: 7436, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7437, + key.offset: 7442, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7451, + key.offset: 7456, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7456, + key.offset: 7461, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 7473, + key.offset: 7478, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 7475, + key.offset: 7480, key.length: 1 }, { key.kind: source.lang.swift.ref.class, key.name: "FooCFType", key.usr: "c:Foo.h@T@FooCFTypeRef", - key.offset: 7478, + key.offset: 7483, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7490, + key.offset: 7495, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7495, + key.offset: 7500, key.length: 21 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 7519, + key.offset: 7524, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7530, + key.offset: 7535, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7535, + key.offset: 7540, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.number, - key.offset: 7551, + key.offset: 7556, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7558, + key.offset: 7563, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7563, + key.offset: 7568, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.number, - key.offset: 7576, + key.offset: 7581, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 7583, + key.offset: 7588, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7594, + key.offset: 7599, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7598, + key.offset: 7603, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 7609, + key.offset: 7614, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7615, + key.offset: 7620, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 7626, + key.offset: 7631, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7637, + key.offset: 7642, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7642, + key.offset: 7647, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 7647, + key.offset: 7652, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 7652, + key.offset: 7657, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7660, + key.offset: 7665, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Hasher", key.usr: "s:s6HasherV", - key.offset: 7666, + key.offset: 7671, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7679, + key.offset: 7684, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7686, + key.offset: 7691, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 7695, + key.offset: 7700, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 7697, + key.offset: 7702, key.length: 3 }, { key.kind: source.lang.swift.ref.enum, key.name: "ABAuthorizationStatus", key.usr: "c:@E@ABAuthorizationStatus", - key.offset: 7702, + key.offset: 7707, key.length: 21 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 7725, + key.offset: 7730, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 7727, + key.offset: 7732, key.length: 3 }, { key.kind: source.lang.swift.ref.enum, key.name: "ABAuthorizationStatus", key.usr: "c:@E@ABAuthorizationStatus", - key.offset: 7732, + key.offset: 7737, key.length: 21 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 7758, + key.offset: 7763, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7765, + key.offset: 7770, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7770, + key.offset: 7775, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 7782, + key.offset: 7787, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 7784, + key.offset: 7789, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 7787, + key.offset: 7792, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:s5Int32V", - key.offset: 7797, + key.offset: 7802, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7803, + key.offset: 7808, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7810, + key.offset: 7815, key.length: 11 }, { key.kind: source.lang.swift.ref.protocol, key.name: "Equatable", key.usr: "s:SQ", - key.offset: 7824, + key.offset: 7829, key.length: 9 }, { key.kind: source.lang.swift.ref.protocol, key.name: "RawRepresentable", key.usr: "s:SY", - key.offset: 7835, + key.offset: 7840, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7859, + key.offset: 7864, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 7864, + key.offset: 7869, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 7866, + key.offset: 7871, key.length: 8 }, { key.kind: source.lang.swift.ref.struct, key.name: "UInt32", key.usr: "s:s6UInt32V", - key.offset: 7876, + key.offset: 7881, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7889, + key.offset: 7894, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 7894, + key.offset: 7899, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 7903, + key.offset: 7908, key.length: 8 }, { key.kind: source.lang.swift.ref.struct, key.name: "UInt32", key.usr: "s:s6UInt32V", - key.offset: 7913, + key.offset: 7918, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7926, + key.offset: 7931, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7930, + key.offset: 7935, key.length: 8 }, { key.kind: source.lang.swift.ref.struct, key.name: "UInt32", key.usr: "s:s6UInt32V", - key.offset: 7940, + key.offset: 7945, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7952, + key.offset: 7957, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7959, + key.offset: 7964, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 7968, + key.offset: 7973, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 7970, + key.offset: 7975, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooSubEnum1", key.usr: "c:@E@FooSubEnum1", - key.offset: 7975, + key.offset: 7980, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 7988, + key.offset: 7993, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 7990, + key.offset: 7995, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooSubEnum1", key.usr: "c:@E@FooSubEnum1", - key.offset: 7995, + key.offset: 8000, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 8011, + key.offset: 8016, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8018, + key.offset: 8023, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8022, + key.offset: 8027, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooSubEnum1", key.usr: "c:@E@FooSubEnum1", - key.offset: 8036, + key.offset: 8041, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8050, + key.offset: 8055, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8056, + key.offset: 8061, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8060, + key.offset: 8065, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooSubEnum1", key.usr: "c:@E@FooSubEnum1", - key.offset: 8074, + key.offset: 8079, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8088, + key.offset: 8093, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8094, + key.offset: 8099, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8098, + key.offset: 8103, key.length: 25 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 8125, + key.offset: 8130, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8131, + key.offset: 8136, key.length: 3 } ] @@ -5273,7 +5268,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "init(arrayLiteral:)", key.usr: "s:s10SetAlgebraPs7ElementQz012ArrayLiteralC0RtzrlE05arrayE0xAFd_tcfc::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s10SetAlgebraPs7ElementQz012ArrayLiteralC0RtzrlE05arrayE0xAFd_tcfc", - key.doc.full_as_xml: "init(arrayLiteral:)s:s10SetAlgebraPs7ElementQz012ArrayLiteralC0RtzrlE05arrayE0xAFd_tcfc@inlinable init(arrayLiteral: Self.Element...)Creates a set containing the elements of the given array literal.arrayLiteralinA list of elements of the new set.Do not call this initializer directly. It is used by the compiler when you use an array literal. Instead, create a new set using an array literal as its value by enclosing a comma-separated list of values in square brackets. You can use an array literal anywhere a set is expected by the type context.Here, a set of strings is created from an array literal holding only strings:", + key.doc.full_as_xml: "init(arrayLiteral:)s:s10SetAlgebraPs7ElementQz012ArrayLiteralC0RtzrlE05arrayE0xAFd_tcfc::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable init(arrayLiteral: FooRuncingOptions...)Creates a set containing the elements of the given array literal.arrayLiteralinA list of elements of the new set.Do not call this initializer directly. It is used by the compiler when you use an array literal. Instead, create a new set using an array literal as its value by enclosing a comma-separated list of values in square brackets. You can use an array literal anywhere a set is expected by the type context.Here, a set of strings is created from an array literal holding only strings:", key.offset: 1390, key.length: 64, key.fully_annotated_decl: "@inlinable init(arrayLiteral: FooRuncingOptions...)", @@ -5293,8 +5288,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.extension.struct, key.doc.full_as_xml: "extension FooRuncingOptionsSetAlgebra requirements for which default implementations are supplied.A type conforming to SetAlgebra can implement any of these initializers or methods, and those implementations will be used in lieu of these defaults.", key.offset: 1458, - key.length: 662, - key.fully_annotated_generic_signature: "<Self where Self : SetAlgebra>", + key.length: 667, + key.fully_annotated_decl: "extension FooRuncingOptions", key.extends: { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", @@ -5316,13 +5311,13 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.description: "S : Sequence" }, { - key.description: "Self.Element == S.Element" + key.description: "FooRuncingOptions == S.Element" } ], - key.doc.full_as_xml: "init(_:)s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc@inlinable init<S>(_ sequence: S) where S : Sequence, Self.Element == S.ElementCreates a new set from a finite sequence of items.sequenceinThe elements to use as members of the new set.Use this initializer to create a new set from an existing sequence, like an array or a range:", + key.doc.full_as_xml: "init(_:)s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable init<S>(_ sequence: S) where S : Sequence, FooRuncingOptions == S.ElementCreates a new set from a finite sequence of items.sequenceinThe elements to use as members of the new set.Use this initializer to create a new set from an existing sequence, like an array or a range:", key.offset: 1493, - key.length: 79, - key.fully_annotated_decl: "@inlinable init<S>(_ sequence: S) where S : Sequence, Self.Element == S.Element", + key.length: 84, + key.fully_annotated_decl: "@inlinable init<S>(_ sequence: S) where S : Sequence, FooRuncingOptions == S.Element", key.entities: [ { key.kind: source.lang.swift.decl.var.local, @@ -5338,8 +5333,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "subtract(_:)", key.usr: "s:s10SetAlgebraPsE8subtractyyxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s10SetAlgebraPsE8subtractyyxF", - key.doc.full_as_xml: "subtract(_:)s:s10SetAlgebraPsE8subtractyyxF@inlinable mutating func subtract(_ other: Self)Removes the elements of the given set from this set.otherinA set of the same type as the current set.In the following example, the elements of the employees set that are also members of the neighbors set are removed. In particular, the names "Bethany" and "Eric" are removed from employees.", - key.offset: 1578, + key.doc.full_as_xml: "subtract(_:)s:s10SetAlgebraPsE8subtractyyxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable mutating func subtract(_ other: FooRuncingOptions)Removes the elements of the given set from this set.otherinA set of the same type as the current set.In the following example, the elements of the employees set that are also members of the neighbors set are removed. In particular, the names "Bethany" and "Eric" are removed from employees.", + key.offset: 1583, key.length: 61, key.fully_annotated_decl: "@inlinable mutating func subtract(_ other: FooRuncingOptions)", key.entities: [ @@ -5347,7 +5342,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 1621, + key.offset: 1626, key.length: 17 } ] @@ -5357,8 +5352,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "isSubset(of:)", key.usr: "s:s10SetAlgebraPsE8isSubset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s10SetAlgebraPsE8isSubset2ofSbx_tF", - key.doc.full_as_xml: "isSubset(of:)s:s10SetAlgebraPsE8isSubset2ofSbx_tF@inlinable func isSubset(of other: Self) -> BoolReturns a Boolean value that indicates whether the set is a subset of another set.otherinA set of the same type as the current set.true if the set is a subset of other; otherwise, false.Set A is a subset of another set B if every member of A is also a member of B.", - key.offset: 1645, + key.doc.full_as_xml: "isSubset(of:)s:s10SetAlgebraPsE8isSubset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isSubset(of other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether the set is a subset of another set.otherinA set of the same type as the current set.true if the set is a subset of other; otherwise, false.Set A is a subset of another set B if every member of A is also a member of B.", + key.offset: 1650, key.length: 61, key.fully_annotated_decl: "@inlinable func isSubset(of other: FooRuncingOptions) -> Bool", key.entities: [ @@ -5366,7 +5361,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "of", key.name: "other", - key.offset: 1680, + key.offset: 1685, key.length: 17 } ] @@ -5376,8 +5371,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "isSuperset(of:)", key.usr: "s:s10SetAlgebraPsE10isSuperset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s10SetAlgebraPsE10isSuperset2ofSbx_tF", - key.doc.full_as_xml: "isSuperset(of:)s:s10SetAlgebraPsE10isSuperset2ofSbx_tF@inlinable func isSuperset(of other: Self) -> BoolReturns a Boolean value that indicates whether the set is a superset of the given set.otherinA set of the same type as the current set.true if the set is a superset of other; otherwise, false.Set A is a superset of another set B if every member of B is also a member of A.", - key.offset: 1712, + key.doc.full_as_xml: "isSuperset(of:)s:s10SetAlgebraPsE10isSuperset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isSuperset(of other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether the set is a superset of the given set.otherinA set of the same type as the current set.true if the set is a superset of other; otherwise, false.Set A is a superset of another set B if every member of B is also a member of A.", + key.offset: 1717, key.length: 63, key.fully_annotated_decl: "@inlinable func isSuperset(of other: FooRuncingOptions) -> Bool", key.entities: [ @@ -5385,7 +5380,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "of", key.name: "other", - key.offset: 1749, + key.offset: 1754, key.length: 17 } ] @@ -5395,8 +5390,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "isDisjoint(with:)", key.usr: "s:s10SetAlgebraPsE10isDisjoint4withSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s10SetAlgebraPsE10isDisjoint4withSbx_tF", - key.doc.full_as_xml: "isDisjoint(with:)s:s10SetAlgebraPsE10isDisjoint4withSbx_tF@inlinable func isDisjoint(with other: Self) -> BoolReturns a Boolean value that indicates whether the set has no members in common with the given set.otherinA set of the same type as the current set.true if the set has no elements in common with other; otherwise, false.In the following example, the employees set is disjoint with the visitors set because no name appears in both sets.", - key.offset: 1781, + key.doc.full_as_xml: "isDisjoint(with:)s:s10SetAlgebraPsE10isDisjoint4withSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isDisjoint(with other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether the set has no members in common with the given set.otherinA set of the same type as the current set.true if the set has no elements in common with other; otherwise, false.In the following example, the employees set is disjoint with the visitors set because no name appears in both sets.", + key.offset: 1786, key.length: 65, key.fully_annotated_decl: "@inlinable func isDisjoint(with other: FooRuncingOptions) -> Bool", key.entities: [ @@ -5404,7 +5399,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "with", key.name: "other", - key.offset: 1820, + key.offset: 1825, key.length: 17 } ] @@ -5414,8 +5409,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "subtracting(_:)", key.usr: "s:s10SetAlgebraPsE11subtractingyxxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s10SetAlgebraPsE11subtractingyxxF", - key.doc.full_as_xml: "subtracting(_:)s:s10SetAlgebraPsE11subtractingyxxF@inlinable func subtracting(_ other: Self) -> SelfReturns a new set containing the elements of this set that do not occur in the given set.otherinA set of the same type as the current set.A new set.In the following example, the nonNeighbors set is made up of the elements of the employees set that are not elements of neighbors:", - key.offset: 1852, + key.doc.full_as_xml: "subtracting(_:)s:s10SetAlgebraPsE11subtractingyxxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func subtracting(_ other: FooRuncingOptions) -> FooRuncingOptionsReturns a new set containing the elements of this set that do not occur in the given set.otherinA set of the same type as the current set.A new set.In the following example, the nonNeighbors set is made up of the elements of the employees set that are not elements of neighbors:", + key.offset: 1857, key.length: 76, key.fully_annotated_decl: "@inlinable func subtracting(_ other: FooRuncingOptions) -> FooRuncingOptions", key.entities: [ @@ -5423,7 +5418,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 1889, + key.offset: 1894, key.length: 17 } ] @@ -5433,8 +5428,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "isEmpty", key.usr: "s:s10SetAlgebraPsE7isEmptySbvp::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s10SetAlgebraPsE7isEmptySbvp", - key.doc.full_as_xml: "isEmptys:s10SetAlgebraPsE7isEmptySbvp@inlinable var isEmpty: Bool { get }A Boolean value that indicates whether the set has no elements.", - key.offset: 1934, + key.doc.full_as_xml: "isEmptys:s10SetAlgebraPsE7isEmptySbvp::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable var isEmpty: Bool { get }A Boolean value that indicates whether the set has no elements.", + key.offset: 1939, key.length: 36, key.fully_annotated_decl: "@inlinable var isEmpty: Bool { get }" }, @@ -5443,8 +5438,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "isStrictSuperset(of:)", key.usr: "s:s10SetAlgebraPsE16isStrictSuperset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s10SetAlgebraPsE16isStrictSuperset2ofSbx_tF", - key.doc.full_as_xml: "isStrictSuperset(of:)s:s10SetAlgebraPsE16isStrictSuperset2ofSbx_tF@inlinable func isStrictSuperset(of other: Self) -> BoolReturns a Boolean value that indicates whether this set is a strict superset of the given set.otherinA set of the same type as the current set.true if the set is a strict superset of other; otherwise, false.Set A is a strict superset of another set B if every member of B is also a member of A and A contains at least one element that is not a member of B.", - key.offset: 1976, + key.doc.full_as_xml: "isStrictSuperset(of:)s:s10SetAlgebraPsE16isStrictSuperset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isStrictSuperset(of other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether this set is a strict superset of the given set.otherinA set of the same type as the current set.true if the set is a strict superset of other; otherwise, false.Set A is a strict superset of another set B if every member of B is also a member of A and A contains at least one element that is not a member of B.", + key.offset: 1981, key.length: 69, key.fully_annotated_decl: "@inlinable func isStrictSuperset(of other: FooRuncingOptions) -> Bool", key.entities: [ @@ -5452,7 +5447,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "of", key.name: "other", - key.offset: 2019, + key.offset: 2024, key.length: 17 } ] @@ -5462,8 +5457,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "isStrictSubset(of:)", key.usr: "s:s10SetAlgebraPsE14isStrictSubset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s10SetAlgebraPsE14isStrictSubset2ofSbx_tF", - key.doc.full_as_xml: "isStrictSubset(of:)s:s10SetAlgebraPsE14isStrictSubset2ofSbx_tF@inlinable func isStrictSubset(of other: Self) -> BoolReturns a Boolean value that indicates whether this set is a strict subset of the given set.otherinA set of the same type as the current set.true if the set is a strict subset of other; otherwise, false.Set A is a strict subset of another set B if every member of A is also a member of B and B contains at least one element that is not a member of A.", - key.offset: 2051, + key.doc.full_as_xml: "isStrictSubset(of:)s:s10SetAlgebraPsE14isStrictSubset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isStrictSubset(of other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether this set is a strict subset of the given set.otherinA set of the same type as the current set.true if the set is a strict subset of other; otherwise, false.Set A is a strict subset of another set B if every member of A is also a member of B and B contains at least one element that is not a member of A.", + key.offset: 2056, key.length: 67, key.fully_annotated_decl: "@inlinable func isStrictSubset(of other: FooRuncingOptions) -> Bool", key.entities: [ @@ -5471,7 +5466,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "of", key.name: "other", - key.offset: 2092, + key.offset: 2097, key.length: 17 } ] @@ -5481,9 +5476,9 @@ var FooSubUnnamedEnumeratorA1: Int { get } { key.kind: source.lang.swift.decl.extension.struct, key.doc.full_as_xml: "extension FooRuncingOptionsOptionSet requirements for which default implementations are supplied.A type conforming to OptionSet can implement any of these initializers or methods, and those implementations will be used in lieu of these defaults.", - key.offset: 2122, + key.offset: 2127, key.length: 280, - key.fully_annotated_generic_signature: "<Self where Self : OptionSet>", + key.fully_annotated_decl: "extension FooRuncingOptions", key.extends: { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", @@ -5495,8 +5490,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "union(_:)", key.usr: "s:s9OptionSetPsE5unionyxxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPsE5unionyxxF", - key.doc.full_as_xml: "union(_:)s:s9OptionSetPsE5unionyxxF@inlinable func union(_ other: Self) -> SelfReturns a new option set of the elements contained in this set, in the given set, or in both.otherinAn option set.A new option set made up of the elements contained in this set, in other, or in both.This example uses the union(_:) method to add two more shipping options to the default set.", - key.offset: 2157, + key.doc.full_as_xml: "union(_:)s:s9OptionSetPsE5unionyxxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func union(_ other: FooRuncingOptions) -> FooRuncingOptionsReturns a new option set of the elements contained in this set, in the given set, or in both.otherinAn option set.A new option set made up of the elements contained in this set, in other, or in both.This example uses the union(_:) method to add two more shipping options to the default set.", + key.offset: 2162, key.length: 70, key.fully_annotated_decl: "@inlinable func union(_ other: FooRuncingOptions) -> FooRuncingOptions", key.entities: [ @@ -5504,7 +5499,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 2188, + key.offset: 2193, key.length: 17 } ] @@ -5514,8 +5509,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "intersection(_:)", key.usr: "s:s9OptionSetPsE12intersectionyxxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPsE12intersectionyxxF", - key.doc.full_as_xml: "intersection(_:)s:s9OptionSetPsE12intersectionyxxF@inlinable func intersection(_ other: Self) -> SelfReturns a new option set with only the elements contained in both this set and the given set.otherinAn option set.A new option set with only the elements contained in both this set and other.This example uses the intersection(_:) method to limit the available shipping options to what can be used with a PO Box destination.", - key.offset: 2233, + key.doc.full_as_xml: "intersection(_:)s:s9OptionSetPsE12intersectionyxxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func intersection(_ other: FooRuncingOptions) -> FooRuncingOptionsReturns a new option set with only the elements contained in both this set and the given set.otherinAn option set.A new option set with only the elements contained in both this set and other.This example uses the intersection(_:) method to limit the available shipping options to what can be used with a PO Box destination.", + key.offset: 2238, key.length: 77, key.fully_annotated_decl: "@inlinable func intersection(_ other: FooRuncingOptions) -> FooRuncingOptions", key.entities: [ @@ -5523,7 +5518,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 2271, + key.offset: 2276, key.length: 17 } ] @@ -5533,8 +5528,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "symmetricDifference(_:)", key.usr: "s:s9OptionSetPsE19symmetricDifferenceyxxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPsE19symmetricDifferenceyxxF", - key.doc.full_as_xml: "symmetricDifference(_:)s:s9OptionSetPsE19symmetricDifferenceyxxF@inlinable func symmetricDifference(_ other: Self) -> SelfReturns a new option set with the elements contained in this set or in the given set, but not in both.otherinAn option set.A new option set with only the elements contained in either this set or other, but not in both.", - key.offset: 2316, + key.doc.full_as_xml: "symmetricDifference(_:)s:s9OptionSetPsE19symmetricDifferenceyxxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func symmetricDifference(_ other: FooRuncingOptions) -> FooRuncingOptionsReturns a new option set with the elements contained in this set or in the given set, but not in both.otherinAn option set.A new option set with only the elements contained in either this set or other, but not in both.", + key.offset: 2321, key.length: 84, key.fully_annotated_decl: "@inlinable func symmetricDifference(_ other: FooRuncingOptions) -> FooRuncingOptions", key.entities: [ @@ -5542,7 +5537,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 2361, + key.offset: 2366, key.length: 17 } ] @@ -5551,15 +5546,10 @@ var FooSubUnnamedEnumeratorA1: Int { get } }, { key.kind: source.lang.swift.decl.extension.struct, - key.generic_requirements: [ - { - key.description: "Self == Self.Element" - } - ], - key.doc.full_as_xml: "extension FooRuncingOptions where Self == Self.ElementOptionSet requirements for which default implementations are supplied when Element == Self, which is the default.A type conforming to OptionSet can implement any of these initializers or methods, and those implementations will be used in lieu of these defaults.", - key.offset: 2404, + key.doc.full_as_xml: "extension FooRuncingOptionsOptionSet requirements for which default implementations are supplied when Element == Self, which is the default.A type conforming to OptionSet can implement any of these initializers or methods, and those implementations will be used in lieu of these defaults.", + key.offset: 2409, key.length: 407, - key.fully_annotated_generic_signature: "<Self where Self : OptionSet, Self == Self.Element>", + key.fully_annotated_decl: "extension FooRuncingOptions", key.extends: { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", @@ -5571,8 +5561,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "contains(_:)", key.usr: "s:s9OptionSetPs7ElementQzRszrlE8containsySbxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPs7ElementQzRszrlE8containsySbxF", - key.doc.full_as_xml: "contains(_:)s:s9OptionSetPs7ElementQzRszrlE8containsySbxF@inlinable func contains(_ member: Self) -> BoolReturns a Boolean value that indicates whether a given element is a member of the option set.memberinThe element to look for in the option set.true if the option set contains member; otherwise, false.This example uses the contains(_:) method to check whether next-day shipping is in the availableOptions instance.", - key.offset: 2439, + key.doc.full_as_xml: "contains(_:)s:s9OptionSetPs7ElementQzRszrlE8containsySbxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func contains(_ member: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether a given element is a member of the option set.memberinThe element to look for in the option set.true if the option set contains member; otherwise, false.This example uses the contains(_:) method to check whether next-day shipping is in the availableOptions instance.", + key.offset: 2444, key.length: 61, key.fully_annotated_decl: "@inlinable func contains(_ member: FooRuncingOptions) -> Bool", key.entities: [ @@ -5580,7 +5570,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "member", - key.offset: 2474, + key.offset: 2479, key.length: 17 } ] @@ -5590,8 +5580,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "insert(_:)", key.usr: "s:s9OptionSetPs7ElementQzRszrlE6insertySb8inserted_x17memberAfterInserttxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPs7ElementQzRszrlE6insertySb8inserted_x17memberAfterInserttxF", - key.doc.full_as_xml: "insert(_:)s:s9OptionSetPs7ElementQzRszrlE6insertySb8inserted_x17memberAfterInserttxF@inlinable mutating func insert(_ newMember: Self.Element) -> (inserted: Bool, memberAfterInsert: Self.Element)Adds the given element to the option set if it is not already a member.newMemberinThe element to insert.(true, newMember) if newMember was not contained in self. Otherwise, returns (false, oldMember), where oldMember is the member of the set equal to newMember.In the following example, the .secondDay shipping option is added to the freeOptions option set if purchasePrice is greater than 50.0. For the ShippingOptions declaration, see the OptionSet protocol discussion. 50 {]]>", - key.offset: 2506, + key.doc.full_as_xml: "insert(_:)s:s9OptionSetPs7ElementQzRszrlE6insertySb8inserted_x17memberAfterInserttxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable mutating func insert(_ newMember: FooRuncingOptions) -> (inserted: Bool, memberAfterInsert: FooRuncingOptions)Adds the given element to the option set if it is not already a member.newMemberinThe element to insert.(true, newMember) if newMember was not contained in self. Otherwise, returns (false, oldMember), where oldMember is the member of the set equal to newMember.In the following example, the .secondDay shipping option is added to the freeOptions option set if purchasePrice is greater than 50.0. For the ShippingOptions declaration, see the OptionSet protocol discussion. 50 {]]>", + key.offset: 2511, key.length: 121, key.fully_annotated_decl: "@discardableResult @inlinable mutating func insert(_ newMember: FooRuncingOptions) -> (inserted: Bool, memberAfterInsert: FooRuncingOptions)", key.entities: [ @@ -5599,7 +5589,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "newMember", - key.offset: 2551, + key.offset: 2556, key.length: 17 } ] @@ -5609,8 +5599,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "remove(_:)", key.usr: "s:s9OptionSetPs7ElementQzRszrlE6removeyxSgxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPs7ElementQzRszrlE6removeyxSgxF", - key.doc.full_as_xml: "remove(_:)s:s9OptionSetPs7ElementQzRszrlE6removeyxSgxF@inlinable mutating func remove(_ member: Self.Element) -> Self.Element?Removes the given element and all elements subsumed by it.memberinThe element of the set to remove.The intersection of [member] and the set, if the intersection was nonempty; otherwise, nil.In the following example, the .priority shipping option is removed from the options option set. Attempting to remove the same shipping option a second time results in nil, because options no longer contains .priority as a member.In the next example, the .express element is passed to remove(_:). Although .express is not a member of options, .express subsumes the remaining .secondDay element of the option set. Therefore, options is emptied and the intersection between .express and options is returned.", - key.offset: 2633, + key.doc.full_as_xml: "remove(_:)s:s9OptionSetPs7ElementQzRszrlE6removeyxSgxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable mutating func remove(_ member: FooRuncingOptions) -> FooRuncingOptions?Removes the given element and all elements subsumed by it.memberinThe element of the set to remove.The intersection of [member] and the set, if the intersection was nonempty; otherwise, nil.In the following example, the .priority shipping option is removed from the options option set. Attempting to remove the same shipping option a second time results in nil, because options no longer contains .priority as a member.In the next example, the .express element is passed to remove(_:). Although .express is not a member of options, .express subsumes the remaining .secondDay element of the option set. Therefore, options is emptied and the intersection between .express and options is returned.", + key.offset: 2638, key.length: 82, key.fully_annotated_decl: "@discardableResult @inlinable mutating func remove(_ member: FooRuncingOptions) -> FooRuncingOptions?", key.entities: [ @@ -5618,7 +5608,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "member", - key.offset: 2675, + key.offset: 2680, key.length: 17 } ] @@ -5628,8 +5618,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "update(with:)", key.usr: "s:s9OptionSetPs7ElementQzRszrlE6update4withxSgx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPs7ElementQzRszrlE6update4withxSgx_tF", - key.doc.full_as_xml: "update(with:)s:s9OptionSetPs7ElementQzRszrlE6update4withxSgx_tF@inlinable mutating func update(with newMember: Self.Element) -> Self.Element?Inserts the given element into the set.The intersection of [newMember] and the set if the intersection was nonempty; otherwise, nil.If newMember is not contained in the set but subsumes current members of the set, the subsumed members are returned.", - key.offset: 2721, + key.doc.full_as_xml: "update(with:)s:s9OptionSetPs7ElementQzRszrlE6update4withxSgx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable mutating func update(with newMember: FooRuncingOptions) -> FooRuncingOptions?Inserts the given element into the set.The intersection of [newMember] and the set if the intersection was nonempty; otherwise, nil.If newMember is not contained in the set but subsumes current members of the set, the subsumed members are returned.", + key.offset: 2726, key.length: 88, key.fully_annotated_decl: "@discardableResult @inlinable mutating func update(with newMember: FooRuncingOptions) -> FooRuncingOptions?", key.entities: [ @@ -5637,7 +5627,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "with", key.name: "newMember", - key.offset: 2769, + key.offset: 2774, key.length: 17 } ] @@ -5646,15 +5636,10 @@ var FooSubUnnamedEnumeratorA1: Int { get } }, { key.kind: source.lang.swift.decl.extension.struct, - key.generic_requirements: [ - { - key.description: "Self.RawValue : FixedWidthInteger" - } - ], - key.doc.full_as_xml: "extension FooRuncingOptions where Self.RawValue : FixedWidthIntegerOptionSet requirements for which default implementations are supplied when RawValue conforms to FixedWidthInteger, which is the usual case. Each distinct bit of an option set’s .rawValue corresponds to a disjoint value of the OptionSet.A type conforming to OptionSet can implement any of these initializers or methods, and those implementations will be used in lieu of these defaults.union is implemented as a bitwise “or” (|) of rawValuesintersection is implemented as a bitwise “and” (&) of rawValuessymmetricDifference is implemented as a bitwise “exclusive or” (^) of rawValues", - key.offset: 2813, + key.doc.full_as_xml: "extension FooRuncingOptionsOptionSet requirements for which default implementations are supplied when RawValue conforms to FixedWidthInteger, which is the usual case. Each distinct bit of an option set’s .rawValue corresponds to a disjoint value of the OptionSet.A type conforming to OptionSet can implement any of these initializers or methods, and those implementations will be used in lieu of these defaults.union is implemented as a bitwise “or” (|) of rawValuesintersection is implemented as a bitwise “and” (&) of rawValuessymmetricDifference is implemented as a bitwise “exclusive or” (^) of rawValues", + key.offset: 2818, key.length: 279, - key.fully_annotated_generic_signature: "<Self where Self : OptionSet, Self.RawValue : FixedWidthInteger>", + key.fully_annotated_decl: "extension FooRuncingOptions", key.extends: { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", @@ -5666,8 +5651,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "init()", key.usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlExycfc::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlExycfc", - key.doc.full_as_xml: "init()s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlExycfc@inlinable init()Creates an empty option set.This initializer creates an option set with a raw value of zero.", - key.offset: 2848, + key.doc.full_as_xml: "init()s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlExycfc::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable init()Creates an empty option set.This initializer creates an option set with a raw value of zero.", + key.offset: 2853, key.length: 17, key.fully_annotated_decl: "@inlinable init()" }, @@ -5676,8 +5661,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "formUnion(_:)", key.usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE9formUnionyyxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE9formUnionyyxF", - key.doc.full_as_xml: "formUnion(_:)s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE9formUnionyyxF@inlinable mutating func formUnion(_ other: Self)Inserts the elements of another set into this option set.otherinAn option set.This method is implemented as a | (bitwise OR) operation on the two sets’ raw values.", - key.offset: 2871, + key.doc.full_as_xml: "formUnion(_:)s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE9formUnionyyxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable mutating func formUnion(_ other: FooRuncingOptions)Inserts the elements of another set into this option set.otherinAn option set.This method is implemented as a | (bitwise OR) operation on the two sets’ raw values.", + key.offset: 2876, key.length: 62, key.fully_annotated_decl: "@inlinable mutating func formUnion(_ other: FooRuncingOptions)", key.entities: [ @@ -5685,7 +5670,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 2915, + key.offset: 2920, key.length: 17 } ] @@ -5695,8 +5680,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "formIntersection(_:)", key.usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE16formIntersectionyyxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE16formIntersectionyyxF", - key.doc.full_as_xml: "formIntersection(_:)s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE16formIntersectionyyxF@inlinable mutating func formIntersection(_ other: Self)Removes all elements of this option set that are not also present in the given set.otherinAn option set.This method is implemented as a & (bitwise AND) operation on the two sets’ raw values.", - key.offset: 2939, + key.doc.full_as_xml: "formIntersection(_:)s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE16formIntersectionyyxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable mutating func formIntersection(_ other: FooRuncingOptions)Removes all elements of this option set that are not also present in the given set.otherinAn option set.This method is implemented as a & (bitwise AND) operation on the two sets’ raw values.", + key.offset: 2944, key.length: 69, key.fully_annotated_decl: "@inlinable mutating func formIntersection(_ other: FooRuncingOptions)", key.entities: [ @@ -5704,7 +5689,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 2990, + key.offset: 2995, key.length: 17 } ] @@ -5714,8 +5699,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "formSymmetricDifference(_:)", key.usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE23formSymmetricDifferenceyyxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE23formSymmetricDifferenceyyxF", - key.doc.full_as_xml: "formSymmetricDifference(_:)s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE23formSymmetricDifferenceyyxF@inlinable mutating func formSymmetricDifference(_ other: Self)Replaces this set with a new set containing all elements contained in either this set or the given set, but not in both.otherinAn option set.This method is implemented as a ^ (bitwise XOR) operation on the two sets’ raw values.", - key.offset: 3014, + key.doc.full_as_xml: "formSymmetricDifference(_:)s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE23formSymmetricDifferenceyyxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable mutating func formSymmetricDifference(_ other: FooRuncingOptions)Replaces this set with a new set containing all elements contained in either this set or the given set, but not in both.otherinAn option set.This method is implemented as a ^ (bitwise XOR) operation on the two sets’ raw values.", + key.offset: 3019, key.length: 76, key.fully_annotated_decl: "@inlinable mutating func formSymmetricDifference(_ other: FooRuncingOptions)", key.entities: [ @@ -5723,7 +5708,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 3072, + key.offset: 3077, key.length: 17 } ] @@ -5734,7 +5719,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.struct, key.name: "FooStruct1", key.usr: "c:@S@FooStruct1", - key.offset: 3093, + key.offset: 3098, key.length: 105, key.fully_annotated_decl: "struct FooStruct1", key.entities: [ @@ -5742,7 +5727,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "x", key.usr: "c:@S@FooStruct1@FI@x", - key.offset: 3118, + key.offset: 3123, key.length: 12, key.fully_annotated_decl: "var x: Int32" }, @@ -5750,7 +5735,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "y", key.usr: "c:@S@FooStruct1@FI@y", - key.offset: 3136, + key.offset: 3141, key.length: 13, key.fully_annotated_decl: "var y: Double" }, @@ -5758,7 +5743,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init()", key.usr: "s:So10FooStruct1VABycfc", - key.offset: 3155, + key.offset: 3160, key.length: 6, key.fully_annotated_decl: "init()" }, @@ -5766,7 +5751,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(x:y:)", key.usr: "s:So10FooStruct1V1x1yABs5Int32V_Sdtcfc", - key.offset: 3167, + key.offset: 3172, key.length: 29, key.fully_annotated_decl: "init(x: Int32, y: Double)", key.entities: [ @@ -5774,14 +5759,14 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", - key.offset: 3177, + key.offset: 3182, key.length: 5 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "y", key.name: "y", - key.offset: 3189, + key.offset: 3194, key.length: 6 } ] @@ -5792,7 +5777,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.typealias, key.name: "FooStruct1Pointer", key.usr: "c:Foo.h@T@FooStruct1Pointer", - key.offset: 3199, + key.offset: 3204, key.length: 62, key.fully_annotated_decl: "typealias FooStruct1Pointer = UnsafeMutablePointer<FooStruct1>", key.conforms: [ @@ -5807,7 +5792,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.struct, key.name: "FooStruct2", key.usr: "c:@S@FooStruct2", - key.offset: 3262, + key.offset: 3267, key.length: 105, key.fully_annotated_decl: "struct FooStruct2", key.entities: [ @@ -5815,7 +5800,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "x", key.usr: "c:@S@FooStruct2@FI@x", - key.offset: 3287, + key.offset: 3292, key.length: 12, key.fully_annotated_decl: "var x: Int32" }, @@ -5823,7 +5808,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "y", key.usr: "c:@S@FooStruct2@FI@y", - key.offset: 3305, + key.offset: 3310, key.length: 13, key.fully_annotated_decl: "var y: Double" }, @@ -5831,7 +5816,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init()", key.usr: "s:So10FooStruct2VABycfc", - key.offset: 3324, + key.offset: 3329, key.length: 6, key.fully_annotated_decl: "init()" }, @@ -5839,7 +5824,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(x:y:)", key.usr: "s:So10FooStruct2V1x1yABs5Int32V_Sdtcfc", - key.offset: 3336, + key.offset: 3341, key.length: 29, key.fully_annotated_decl: "init(x: Int32, y: Double)", key.entities: [ @@ -5847,14 +5832,14 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", - key.offset: 3346, + key.offset: 3351, key.length: 5 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "y", key.name: "y", - key.offset: 3358, + key.offset: 3363, key.length: 6 } ] @@ -5865,7 +5850,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.typealias, key.name: "FooStructTypedef1", key.usr: "c:Foo.h@T@FooStructTypedef1", - key.offset: 3368, + key.offset: 3373, key.length: 40, key.fully_annotated_decl: "typealias FooStructTypedef1 = FooStruct2" }, @@ -5873,7 +5858,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.struct, key.name: "FooStructTypedef2", key.usr: "c:@SA@FooStructTypedef2", - key.offset: 3409, + key.offset: 3414, key.length: 112, key.fully_annotated_decl: "struct FooStructTypedef2", key.entities: [ @@ -5881,7 +5866,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "x", key.usr: "c:@SA@FooStructTypedef2@FI@x", - key.offset: 3441, + key.offset: 3446, key.length: 12, key.fully_annotated_decl: "var x: Int32" }, @@ -5889,7 +5874,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "y", key.usr: "c:@SA@FooStructTypedef2@FI@y", - key.offset: 3459, + key.offset: 3464, key.length: 13, key.fully_annotated_decl: "var y: Double" }, @@ -5897,7 +5882,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init()", key.usr: "s:So17FooStructTypedef2aABycfc", - key.offset: 3478, + key.offset: 3483, key.length: 6, key.fully_annotated_decl: "init()" }, @@ -5905,7 +5890,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(x:y:)", key.usr: "s:So17FooStructTypedef2a1x1yABs5Int32V_Sdtcfc", - key.offset: 3490, + key.offset: 3495, key.length: 29, key.fully_annotated_decl: "init(x: Int32, y: Double)", key.entities: [ @@ -5913,14 +5898,14 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", - key.offset: 3500, + key.offset: 3505, key.length: 5 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "y", key.name: "y", - key.offset: 3512, + key.offset: 3517, key.length: 6 } ] @@ -5932,7 +5917,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "FooTypedef1", key.usr: "c:Foo.h@T@FooTypedef1", key.doc.full_as_xml: "FooTypedef1c:Foo.h@T@FooTypedef1typealias FooTypedef1 = Int32 Aaa. FooTypedef1. Bbb.", - key.offset: 3522, + key.offset: 3527, key.length: 29, key.fully_annotated_decl: "typealias FooTypedef1 = Int32", key.conforms: [ @@ -5958,7 +5943,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooIntVar", key.usr: "c:@fooIntVar", key.doc.full_as_xml: "fooIntVarc:@fooIntVarvar fooIntVar: Int32 Aaa. fooIntVar. Bbb.", - key.offset: 3552, + key.offset: 3557, key.length: 20, key.fully_annotated_decl: "var fooIntVar: Int32" }, @@ -5967,7 +5952,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooFunc1(_:)", key.usr: "c:@F@fooFunc1", key.doc.full_as_xml: "fooFunc1c:@F@fooFunc1func fooFunc1(_ a: Int32) -> Int32 Aaa. fooFunc1. Bbb.", - key.offset: 3573, + key.offset: 3578, key.length: 34, key.fully_annotated_decl: "func fooFunc1(_ a: Int32) -> Int32", key.entities: [ @@ -5975,7 +5960,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", - key.offset: 3592, + key.offset: 3597, key.length: 5 } ] @@ -5984,14 +5969,14 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "fooFunc1AnonymousParam(_:)", key.usr: "c:@F@fooFunc1AnonymousParam", - key.offset: 3608, + key.offset: 3613, key.length: 48, key.fully_annotated_decl: "func fooFunc1AnonymousParam(_: Int32) -> Int32", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", - key.offset: 3641, + key.offset: 3646, key.length: 5 } ] @@ -6000,7 +5985,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "fooFunc3(_:_:_:_:)", key.usr: "c:@F@fooFunc3", - key.offset: 3657, + key.offset: 3662, key.length: 94, key.fully_annotated_decl: "func fooFunc3(_ a: Int32, _ b: Float, _ c: Double, _ d: UnsafeMutablePointer<Int32>!) -> Int32", key.entities: [ @@ -6008,28 +5993,28 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", - key.offset: 3676, + key.offset: 3681, key.length: 5 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "b", - key.offset: 3688, + key.offset: 3693, key.length: 5 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "c", - key.offset: 3700, + key.offset: 3705, key.length: 6 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "d", - key.offset: 3713, + key.offset: 3718, key.length: 28 } ] @@ -6038,7 +6023,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "fooFuncWithBlock(_:)", key.usr: "c:@F@fooFuncWithBlock", - key.offset: 3752, + key.offset: 3757, key.length: 49, key.fully_annotated_decl: "func fooFuncWithBlock(_ blk: ((Float) -> Int32)!)", key.entities: [ @@ -6046,7 +6031,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "blk", - key.offset: 3781, + key.offset: 3786, key.length: 19 } ] @@ -6055,7 +6040,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "fooFuncWithFunctionPointer(_:)", key.usr: "c:@F@fooFuncWithFunctionPointer", - key.offset: 3802, + key.offset: 3807, key.length: 60, key.fully_annotated_decl: "func fooFuncWithFunctionPointer(_ fptr: ((Float) -> Int32)!)", key.entities: [ @@ -6063,7 +6048,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "fptr", - key.offset: 3842, + key.offset: 3847, key.length: 19 } ] @@ -6072,7 +6057,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "fooFuncNoreturn1()", key.usr: "c:@F@fooFuncNoreturn1", - key.offset: 3863, + key.offset: 3868, key.length: 32, key.fully_annotated_decl: "func fooFuncNoreturn1() -> Never" }, @@ -6080,7 +6065,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "fooFuncNoreturn2()", key.usr: "c:@F@fooFuncNoreturn2", - key.offset: 3896, + key.offset: 3901, key.length: 32, key.fully_annotated_decl: "func fooFuncNoreturn2() -> Never" }, @@ -6089,7 +6074,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooFuncWithComment1()", key.usr: "c:@F@fooFuncWithComment1", key.doc.full_as_xml: "fooFuncWithComment1c:@F@fooFuncWithComment1func fooFuncWithComment1() Aaa. fooFuncWithComment1. Bbb. Ccc. Ddd.", - key.offset: 3929, + key.offset: 3934, key.length: 26, key.fully_annotated_decl: "func fooFuncWithComment1()" }, @@ -6098,7 +6083,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooFuncWithComment2()", key.usr: "c:@F@fooFuncWithComment2", key.doc.full_as_xml: "fooFuncWithComment2c:@F@fooFuncWithComment2func fooFuncWithComment2() Aaa. fooFuncWithComment2. Bbb.", - key.offset: 3956, + key.offset: 3961, key.length: 26, key.fully_annotated_decl: "func fooFuncWithComment2()" }, @@ -6107,7 +6092,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooFuncWithComment3()", key.usr: "c:@F@fooFuncWithComment3", key.doc.full_as_xml: "fooFuncWithComment3c:@F@fooFuncWithComment3func fooFuncWithComment3() Aaa. fooFuncWithComment3. Bbb. Ccc.", - key.offset: 3983, + key.offset: 3988, key.length: 26, key.fully_annotated_decl: "func fooFuncWithComment3()" }, @@ -6116,7 +6101,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooFuncWithComment4()", key.usr: "c:@F@fooFuncWithComment4", key.doc.full_as_xml: "fooFuncWithComment4c:@F@fooFuncWithComment4func fooFuncWithComment4() Aaa. fooFuncWithComment4. Bbb. Ddd.", - key.offset: 4010, + key.offset: 4015, key.length: 26, key.fully_annotated_decl: "func fooFuncWithComment4()" }, @@ -6125,7 +6110,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooFuncWithComment5()", key.usr: "c:@F@fooFuncWithComment5", key.doc.full_as_xml: "fooFuncWithComment5c:@F@fooFuncWithComment5func fooFuncWithComment5() Aaa. fooFuncWithComment5. Bbb. Ccc. Ddd.", - key.offset: 4037, + key.offset: 4042, key.length: 26, key.fully_annotated_decl: "func fooFuncWithComment5()" }, @@ -6134,7 +6119,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "redeclaredInMultipleModulesFunc1(_:)", key.usr: "c:@F@redeclaredInMultipleModulesFunc1", key.doc.full_as_xml: "redeclaredInMultipleModulesFunc1c:@F@redeclaredInMultipleModulesFunc1func redeclaredInMultipleModulesFunc1(_ a: Int32) -> Int32 Aaa. redeclaredInMultipleModulesFunc1. Bbb.", - key.offset: 4064, + key.offset: 4069, key.length: 58, key.fully_annotated_decl: "func redeclaredInMultipleModulesFunc1(_ a: Int32) -> Int32", key.entities: [ @@ -6142,7 +6127,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", - key.offset: 4107, + key.offset: 4112, key.length: 5 } ] @@ -6152,7 +6137,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "FooProtocolBase", key.usr: "c:objc(pl)FooProtocolBase", key.doc.full_as_xml: "FooProtocolBasec:objc(pl)FooProtocolBaseprotocol FooProtocolBase Aaa. FooProtocolBase. Bbb.", - key.offset: 4123, + key.offset: 4128, key.length: 301, key.fully_annotated_decl: "protocol FooProtocolBase", key.entities: [ @@ -6161,7 +6146,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooProtoFunc()", key.usr: "c:objc(pl)FooProtocolBase(im)fooProtoFunc", key.doc.full_as_xml: "fooProtoFuncc:objc(pl)FooProtocolBase(im)fooProtoFuncfunc fooProtoFunc() Aaa. fooProtoFunc. Bbb. Ccc.", - key.offset: 4155, + key.offset: 4160, key.length: 19, key.fully_annotated_decl: "func fooProtoFunc()" }, @@ -6170,7 +6155,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooProtoFuncWithExtraIndentation1()", key.usr: "c:objc(pl)FooProtocolBase(im)fooProtoFuncWithExtraIndentation1", key.doc.full_as_xml: "fooProtoFuncWithExtraIndentation1c:objc(pl)FooProtocolBase(im)fooProtoFuncWithExtraIndentation1func fooProtoFuncWithExtraIndentation1() Aaa. fooProtoFuncWithExtraIndentation1. Bbb. Ccc.", - key.offset: 4180, + key.offset: 4185, key.length: 40, key.fully_annotated_decl: "func fooProtoFuncWithExtraIndentation1()" }, @@ -6179,7 +6164,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooProtoFuncWithExtraIndentation2()", key.usr: "c:objc(pl)FooProtocolBase(im)fooProtoFuncWithExtraIndentation2", key.doc.full_as_xml: "fooProtoFuncWithExtraIndentation2c:objc(pl)FooProtocolBase(im)fooProtoFuncWithExtraIndentation2func fooProtoFuncWithExtraIndentation2() Aaa. fooProtoFuncWithExtraIndentation2. Bbb. Ccc.", - key.offset: 4226, + key.offset: 4231, key.length: 40, key.fully_annotated_decl: "func fooProtoFuncWithExtraIndentation2()" }, @@ -6187,7 +6172,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.static, key.name: "fooProtoClassFunc()", key.usr: "c:objc(pl)FooProtocolBase(cm)fooProtoClassFunc", - key.offset: 4272, + key.offset: 4277, key.length: 31, key.fully_annotated_decl: "static func fooProtoClassFunc()" }, @@ -6195,7 +6180,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "fooProperty1", key.usr: "c:objc(pl)FooProtocolBase(py)fooProperty1", - key.offset: 4309, + key.offset: 4314, key.length: 35, key.fully_annotated_decl: "var fooProperty1: Int32 { get set }" }, @@ -6203,7 +6188,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "fooProperty2", key.usr: "c:objc(pl)FooProtocolBase(py)fooProperty2", - key.offset: 4350, + key.offset: 4355, key.length: 35, key.fully_annotated_decl: "var fooProperty2: Int32 { get set }" }, @@ -6211,7 +6196,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "fooProperty3", key.usr: "c:objc(pl)FooProtocolBase(py)fooProperty3", - key.offset: 4391, + key.offset: 4396, key.length: 31, key.fully_annotated_decl: "var fooProperty3: Int32 { get }" } @@ -6221,7 +6206,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.protocol, key.name: "FooProtocolDerived", key.usr: "c:objc(pl)FooProtocolDerived", - key.offset: 4425, + key.offset: 4430, key.length: 49, key.fully_annotated_decl: "protocol FooProtocolDerived : FooProtocolBase", key.conforms: [ @@ -6236,7 +6221,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 4475, + key.offset: 4480, key.length: 392, key.fully_annotated_decl: "class FooClassBase", key.entities: [ @@ -6244,7 +6229,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooBaseInstanceFunc0()", key.usr: "c:objc(cs)FooClassBase(im)fooBaseInstanceFunc0", - key.offset: 4501, + key.offset: 4506, key.length: 27, key.fully_annotated_decl: "func fooBaseInstanceFunc0()" }, @@ -6252,7 +6237,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooBaseInstanceFunc1(_:)", key.usr: "c:objc(cs)FooClassBase(im)fooBaseInstanceFunc1:", - key.offset: 4534, + key.offset: 4539, key.length: 60, key.fully_annotated_decl: "func fooBaseInstanceFunc1(_ anObject: Any!) -> FooClassBase!", key.entities: [ @@ -6260,7 +6245,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "anObject", - key.offset: 4572, + key.offset: 4577, key.length: 4 } ] @@ -6269,7 +6254,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init()", key.usr: "c:objc(cs)FooClassBase(im)init", - key.offset: 4600, + key.offset: 4605, key.length: 7, key.fully_annotated_decl: "init!()" }, @@ -6277,7 +6262,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(float:)", key.usr: "c:objc(cs)FooClassBase(im)initWithFloat:", - key.offset: 4613, + key.offset: 4618, key.length: 33, key.fully_annotated_decl: "convenience init!(float f: Float)", key.entities: [ @@ -6285,7 +6270,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "float", key.name: "f", - key.offset: 4640, + key.offset: 4645, key.length: 5 } ] @@ -6294,7 +6279,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooBaseInstanceFuncOverridden()", key.usr: "c:objc(cs)FooClassBase(im)fooBaseInstanceFuncOverridden", - key.offset: 4652, + key.offset: 4657, key.length: 36, key.fully_annotated_decl: "func fooBaseInstanceFuncOverridden()" }, @@ -6302,7 +6287,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.class, key.name: "fooBaseClassFunc0()", key.usr: "c:objc(cs)FooClassBase(cm)fooBaseClassFunc0", - key.offset: 4694, + key.offset: 4699, key.length: 30, key.fully_annotated_decl: "class func fooBaseClassFunc0()" }, @@ -6310,7 +6295,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "_internalMeth1()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth1", - key.offset: 4730, + key.offset: 4735, key.length: 29, key.fully_annotated_decl: "func _internalMeth1() -> Any!" }, @@ -6318,7 +6303,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "_internalMeth2()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth2", - key.offset: 4765, + key.offset: 4770, key.length: 29, key.fully_annotated_decl: "func _internalMeth2() -> Any!" }, @@ -6326,7 +6311,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "nonInternalMeth()", key.usr: "c:objc(cs)FooClassBase(im)nonInternalMeth", - key.offset: 4800, + key.offset: 4805, key.length: 30, key.fully_annotated_decl: "func nonInternalMeth() -> Any!" }, @@ -6334,7 +6319,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "_internalMeth3()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth3", - key.offset: 4836, + key.offset: 4841, key.length: 29, key.fully_annotated_decl: "func _internalMeth3() -> Any!" } @@ -6345,7 +6330,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "FooClassDerived", key.usr: "c:objc(cs)FooClassDerived", key.doc.full_as_xml: "FooClassDerivedc:objc(cs)FooClassDerivedclass FooClassDerived : FooClassBase, FooProtocolDerived Aaa. FooClassDerived. Bbb.", - key.offset: 4868, + key.offset: 4873, key.length: 493, key.fully_annotated_decl: "class FooClassDerived : FooClassBase, FooProtocolDerived", key.inherits: [ @@ -6367,7 +6352,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "fooProperty1", key.usr: "c:objc(cs)FooClassDerived(py)fooProperty1", - key.offset: 4932, + key.offset: 4937, key.length: 23, key.fully_annotated_decl: "var fooProperty1: Int32 { get set }" }, @@ -6375,7 +6360,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "fooProperty2", key.usr: "c:objc(cs)FooClassDerived(py)fooProperty2", - key.offset: 4961, + key.offset: 4966, key.length: 23, key.fully_annotated_decl: "var fooProperty2: Int32 { get set }" }, @@ -6383,7 +6368,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "fooProperty3", key.usr: "c:objc(cs)FooClassDerived(py)fooProperty3", - key.offset: 4990, + key.offset: 4995, key.length: 31, key.fully_annotated_decl: "var fooProperty3: Int32 { get }" }, @@ -6391,7 +6376,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooInstanceFunc0()", key.usr: "c:objc(cs)FooClassDerived(im)fooInstanceFunc0", - key.offset: 5027, + key.offset: 5032, key.length: 23, key.fully_annotated_decl: "func fooInstanceFunc0()" }, @@ -6399,7 +6384,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooInstanceFunc1(_:)", key.usr: "c:objc(cs)FooClassDerived(im)fooInstanceFunc1:", - key.offset: 5056, + key.offset: 5061, key.length: 33, key.fully_annotated_decl: "func fooInstanceFunc1(_ a: Int32)", key.entities: [ @@ -6407,7 +6392,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", - key.offset: 5083, + key.offset: 5088, key.length: 5 } ] @@ -6416,7 +6401,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooInstanceFunc2(_:withB:)", key.usr: "c:objc(cs)FooClassDerived(im)fooInstanceFunc2:withB:", - key.offset: 5095, + key.offset: 5100, key.length: 49, key.fully_annotated_decl: "func fooInstanceFunc2(_ a: Int32, withB b: Int32)", key.entities: [ @@ -6424,14 +6409,14 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", - key.offset: 5122, + key.offset: 5127, key.length: 5 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "withB", key.name: "b", - key.offset: 5138, + key.offset: 5143, key.length: 5 } ] @@ -6440,7 +6425,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooBaseInstanceFuncOverridden()", key.usr: "c:objc(cs)FooClassDerived(im)fooBaseInstanceFuncOverridden", - key.offset: 5150, + key.offset: 5155, key.length: 36, key.fully_annotated_decl: "func fooBaseInstanceFuncOverridden()", key.inherits: [ @@ -6455,7 +6440,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.class, key.name: "fooClassFunc0()", key.usr: "c:objc(cs)FooClassDerived(cm)fooClassFunc0", - key.offset: 5192, + key.offset: 5197, key.length: 26, key.fully_annotated_decl: "class func fooClassFunc0()" }, @@ -6464,7 +6449,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth1()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth1::SYNTHESIZED::c:objc(cs)FooClassDerived", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth1", - key.offset: 5224, + key.offset: 5229, key.length: 29, key.fully_annotated_decl: "func _internalMeth1() -> Any!" }, @@ -6473,7 +6458,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth2()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth2::SYNTHESIZED::c:objc(cs)FooClassDerived", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth2", - key.offset: 5259, + key.offset: 5264, key.length: 29, key.fully_annotated_decl: "func _internalMeth2() -> Any!" }, @@ -6482,7 +6467,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "nonInternalMeth()", key.usr: "c:objc(cs)FooClassBase(im)nonInternalMeth::SYNTHESIZED::c:objc(cs)FooClassDerived", key.original_usr: "c:objc(cs)FooClassBase(im)nonInternalMeth", - key.offset: 5294, + key.offset: 5299, key.length: 30, key.fully_annotated_decl: "func nonInternalMeth() -> Any!" }, @@ -6491,7 +6476,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth3()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth3::SYNTHESIZED::c:objc(cs)FooClassDerived", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth3", - key.offset: 5330, + key.offset: 5335, key.length: 29, key.fully_annotated_decl: "func _internalMeth3() -> Any!" } @@ -6501,7 +6486,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.typealias, key.name: "typedef_int_t", key.usr: "c:Foo.h@T@typedef_int_t", - key.offset: 5362, + key.offset: 5367, key.length: 31, key.fully_annotated_decl: "typealias typedef_int_t = Int32", key.conforms: [ @@ -6526,7 +6511,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_1", key.usr: "c:Foo.h@3836@macro@FOO_MACRO_1", - key.offset: 5394, + key.offset: 5399, key.length: 30, key.fully_annotated_decl: "var FOO_MACRO_1: Int32 { get }" }, @@ -6534,7 +6519,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_2", key.usr: "c:Foo.h@3858@macro@FOO_MACRO_2", - key.offset: 5425, + key.offset: 5430, key.length: 30, key.fully_annotated_decl: "var FOO_MACRO_2: Int32 { get }" }, @@ -6542,7 +6527,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_3", key.usr: "c:Foo.h@3880@macro@FOO_MACRO_3", - key.offset: 5456, + key.offset: 5461, key.length: 30, key.fully_annotated_decl: "var FOO_MACRO_3: Int32 { get }" }, @@ -6550,7 +6535,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_4", key.usr: "c:Foo.h@3944@macro@FOO_MACRO_4", - key.offset: 5487, + key.offset: 5492, key.length: 31, key.fully_annotated_decl: "var FOO_MACRO_4: UInt32 { get }" }, @@ -6558,7 +6543,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_5", key.usr: "c:Foo.h@3976@macro@FOO_MACRO_5", - key.offset: 5519, + key.offset: 5524, key.length: 31, key.fully_annotated_decl: "var FOO_MACRO_5: UInt64 { get }" }, @@ -6566,7 +6551,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_6", key.usr: "c:Foo.h@4018@macro@FOO_MACRO_6", - key.offset: 5551, + key.offset: 5556, key.length: 38, key.fully_annotated_decl: "var FOO_MACRO_6: typedef_int_t { get }" }, @@ -6574,7 +6559,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_7", key.usr: "c:Foo.h@4059@macro@FOO_MACRO_7", - key.offset: 5590, + key.offset: 5595, key.length: 38, key.fully_annotated_decl: "var FOO_MACRO_7: typedef_int_t { get }" }, @@ -6582,7 +6567,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_8", key.usr: "c:Foo.h@4100@macro@FOO_MACRO_8", - key.offset: 5629, + key.offset: 5634, key.length: 29, key.fully_annotated_decl: "var FOO_MACRO_8: Int8 { get }" }, @@ -6590,7 +6575,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_9", key.usr: "c:Foo.h@4131@macro@FOO_MACRO_9", - key.offset: 5659, + key.offset: 5664, key.length: 30, key.fully_annotated_decl: "var FOO_MACRO_9: Int32 { get }" }, @@ -6598,7 +6583,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_10", key.usr: "c:Foo.h@4161@macro@FOO_MACRO_10", - key.offset: 5690, + key.offset: 5695, key.length: 31, key.fully_annotated_decl: "var FOO_MACRO_10: Int16 { get }" }, @@ -6606,7 +6591,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_11", key.usr: "c:Foo.h@4195@macro@FOO_MACRO_11", - key.offset: 5722, + key.offset: 5727, key.length: 29, key.fully_annotated_decl: "var FOO_MACRO_11: Int { get }" }, @@ -6614,7 +6599,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_OR", key.usr: "c:Foo.h@4228@macro@FOO_MACRO_OR", - key.offset: 5752, + key.offset: 5757, key.length: 31, key.fully_annotated_decl: "var FOO_MACRO_OR: Int32 { get }" }, @@ -6622,7 +6607,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_AND", key.usr: "c:Foo.h@4277@macro@FOO_MACRO_AND", - key.offset: 5784, + key.offset: 5789, key.length: 32, key.fully_annotated_decl: "var FOO_MACRO_AND: Int32 { get }" }, @@ -6630,7 +6615,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_BITWIDTH", key.usr: "c:Foo.h@4327@macro@FOO_MACRO_BITWIDTH", - key.offset: 5817, + key.offset: 5822, key.length: 38, key.fully_annotated_decl: "var FOO_MACRO_BITWIDTH: UInt64 { get }" }, @@ -6638,7 +6623,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_SIGNED", key.usr: "c:Foo.h@4382@macro@FOO_MACRO_SIGNED", - key.offset: 5856, + key.offset: 5861, key.length: 36, key.fully_annotated_decl: "var FOO_MACRO_SIGNED: UInt32 { get }" }, @@ -6646,7 +6631,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_REDEF_1", key.usr: "c:Foo.h@4593@macro@FOO_MACRO_REDEF_1", - key.offset: 5893, + key.offset: 5898, key.length: 36, key.fully_annotated_decl: "var FOO_MACRO_REDEF_1: Int32 { get }" }, @@ -6654,7 +6639,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_REDEF_2", key.usr: "c:Foo.h@4650@macro@FOO_MACRO_REDEF_2", - key.offset: 5930, + key.offset: 5935, key.length: 36, key.fully_annotated_decl: "var FOO_MACRO_REDEF_2: Int32 { get }" }, @@ -6662,7 +6647,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "theLastDeclInFoo()", key.usr: "c:@F@theLastDeclInFoo", - key.offset: 5967, + key.offset: 5972, key.length: 23, key.fully_annotated_decl: "func theLastDeclInFoo()" }, @@ -6670,7 +6655,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "_internalTopLevelFunc()", key.usr: "c:@F@_internalTopLevelFunc", - key.offset: 5991, + key.offset: 5996, key.length: 28, key.fully_annotated_decl: "func _internalTopLevelFunc()" }, @@ -6678,7 +6663,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.struct, key.name: "_InternalStruct", key.usr: "c:@S@_InternalStruct", - key.offset: 6020, + key.offset: 6025, key.length: 78, key.fully_annotated_decl: "struct _InternalStruct", key.entities: [ @@ -6686,7 +6671,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "x", key.usr: "c:@S@_InternalStruct@FI@x", - key.offset: 6050, + key.offset: 6055, key.length: 12, key.fully_annotated_decl: "var x: Int32" }, @@ -6694,7 +6679,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init()", key.usr: "s:So15_InternalStructVABycfc", - key.offset: 6068, + key.offset: 6073, key.length: 6, key.fully_annotated_decl: "init()" }, @@ -6702,7 +6687,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(x:)", key.usr: "s:So15_InternalStructV1xABs5Int32V_tcfc", - key.offset: 6080, + key.offset: 6085, key.length: 16, key.fully_annotated_decl: "init(x: Int32)", key.entities: [ @@ -6710,7 +6695,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", - key.offset: 6090, + key.offset: 6095, key.length: 5 } ] @@ -6719,8 +6704,9 @@ var FooSubUnnamedEnumeratorA1: Int { get } }, { key.kind: source.lang.swift.decl.extension.class, - key.offset: 6099, + key.offset: 6104, key.length: 61, + key.fully_annotated_decl: "extension FooClassBase", key.extends: { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", @@ -6731,7 +6717,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "_internalMeth1()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth1", - key.offset: 6129, + key.offset: 6134, key.length: 29, key.fully_annotated_decl: "func _internalMeth1() -> Any!" } @@ -6739,8 +6725,9 @@ var FooSubUnnamedEnumeratorA1: Int { get } }, { key.kind: source.lang.swift.decl.extension.class, - key.offset: 6161, + key.offset: 6166, key.length: 97, + key.fully_annotated_decl: "extension FooClassBase", key.extends: { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", @@ -6751,7 +6738,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "_internalMeth2()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth2", - key.offset: 6191, + key.offset: 6196, key.length: 29, key.fully_annotated_decl: "func _internalMeth2() -> Any!" }, @@ -6759,7 +6746,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "nonInternalMeth()", key.usr: "c:objc(cs)FooClassBase(im)nonInternalMeth", - key.offset: 6226, + key.offset: 6231, key.length: 30, key.fully_annotated_decl: "func nonInternalMeth() -> Any!" } @@ -6767,8 +6754,9 @@ var FooSubUnnamedEnumeratorA1: Int { get } }, { key.kind: source.lang.swift.decl.extension.class, - key.offset: 6259, + key.offset: 6264, key.length: 61, + key.fully_annotated_decl: "extension FooClassBase", key.extends: { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", @@ -6779,7 +6767,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "_internalMeth3()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth3", - key.offset: 6289, + key.offset: 6294, key.length: 29, key.fully_annotated_decl: "func _internalMeth3() -> Any!" } @@ -6789,7 +6777,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.protocol, key.name: "_InternalProt", key.usr: "c:objc(pl)_InternalProt", - key.offset: 6321, + key.offset: 6326, key.length: 26, key.fully_annotated_decl: "protocol _InternalProt" }, @@ -6797,7 +6785,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.class, key.name: "ClassWithInternalProt", key.usr: "c:objc(cs)ClassWithInternalProt", - key.offset: 6348, + key.offset: 6353, key.length: 47, key.fully_annotated_decl: "class ClassWithInternalProt : _InternalProt", key.conforms: [ @@ -6812,7 +6800,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.class, key.name: "FooClassPropertyOwnership", key.usr: "c:objc(cs)FooClassPropertyOwnership", - key.offset: 6396, + key.offset: 6401, key.length: 425, key.fully_annotated_decl: "class FooClassPropertyOwnership : FooClassBase", key.inherits: [ @@ -6827,7 +6815,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "assignable", key.usr: "c:objc(cs)FooClassPropertyOwnership(py)assignable", - key.offset: 6450, + key.offset: 6455, key.length: 42, key.fully_annotated_decl: "unowned(unsafe) var assignable: AnyObject! { get set }" }, @@ -6835,7 +6823,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "unsafeAssignable", key.usr: "c:objc(cs)FooClassPropertyOwnership(py)unsafeAssignable", - key.offset: 6498, + key.offset: 6503, key.length: 48, key.fully_annotated_decl: "unowned(unsafe) var unsafeAssignable: AnyObject! { get set }" }, @@ -6843,7 +6831,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "retainable", key.usr: "c:objc(cs)FooClassPropertyOwnership(py)retainable", - key.offset: 6552, + key.offset: 6557, key.length: 20, key.fully_annotated_decl: "var retainable: Any! { get set }" }, @@ -6851,7 +6839,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "strongRef", key.usr: "c:objc(cs)FooClassPropertyOwnership(py)strongRef", - key.offset: 6578, + key.offset: 6583, key.length: 19, key.fully_annotated_decl: "var strongRef: Any! { get set }" }, @@ -6859,7 +6847,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "copyable", key.usr: "c:objc(cs)FooClassPropertyOwnership(py)copyable", - key.offset: 6603, + key.offset: 6608, key.length: 18, key.fully_annotated_decl: "var copyable: Any! { get set }" }, @@ -6867,7 +6855,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "weakRef", key.usr: "c:objc(cs)FooClassPropertyOwnership(py)weakRef", - key.offset: 6627, + key.offset: 6632, key.length: 28, key.fully_annotated_decl: "weak var weakRef: AnyObject! { get set }" }, @@ -6875,7 +6863,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "scalar", key.usr: "c:objc(cs)FooClassPropertyOwnership(py)scalar", - key.offset: 6661, + key.offset: 6666, key.length: 17, key.fully_annotated_decl: "var scalar: Int32 { get set }" }, @@ -6884,7 +6872,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth1()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth1::SYNTHESIZED::c:objc(cs)FooClassPropertyOwnership", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth1", - key.offset: 6684, + key.offset: 6689, key.length: 29, key.fully_annotated_decl: "func _internalMeth1() -> Any!" }, @@ -6893,7 +6881,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth2()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth2::SYNTHESIZED::c:objc(cs)FooClassPropertyOwnership", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth2", - key.offset: 6719, + key.offset: 6724, key.length: 29, key.fully_annotated_decl: "func _internalMeth2() -> Any!" }, @@ -6902,7 +6890,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "nonInternalMeth()", key.usr: "c:objc(cs)FooClassBase(im)nonInternalMeth::SYNTHESIZED::c:objc(cs)FooClassPropertyOwnership", key.original_usr: "c:objc(cs)FooClassBase(im)nonInternalMeth", - key.offset: 6754, + key.offset: 6759, key.length: 30, key.fully_annotated_decl: "func nonInternalMeth() -> Any!" }, @@ -6911,7 +6899,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth3()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth3::SYNTHESIZED::c:objc(cs)FooClassPropertyOwnership", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth3", - key.offset: 6790, + key.offset: 6795, key.length: 29, key.fully_annotated_decl: "func _internalMeth3() -> Any!" } @@ -6921,7 +6909,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_NIL", key.usr: "c:Foo.h@5439@macro@FOO_NIL", - key.offset: 6822, + key.offset: 6827, key.length: 15, key.fully_annotated_decl: "var FOO_NIL: ()", key.attributes: [ @@ -6937,7 +6925,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.class, key.name: "FooUnavailableMembers", key.usr: "c:objc(cs)FooUnavailableMembers", - key.offset: 6838, + key.offset: 6843, key.length: 592, key.fully_annotated_decl: "class FooUnavailableMembers : FooClassBase", key.inherits: [ @@ -6952,7 +6940,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(int:)", key.usr: "c:objc(cs)FooUnavailableMembers(cm)unavailableMembersWithInt:", - key.offset: 6888, + key.offset: 6893, key.length: 31, key.fully_annotated_decl: "convenience init!(int i: Int32)", key.entities: [ @@ -6960,7 +6948,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "int", key.name: "i", - key.offset: 6913, + key.offset: 6918, key.length: 5 } ] @@ -6969,7 +6957,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "unavailable()", key.usr: "c:objc(cs)FooUnavailableMembers(im)unavailable", - key.offset: 6925, + key.offset: 6930, key.length: 18, key.fully_annotated_decl: "func unavailable()", key.attributes: [ @@ -6985,7 +6973,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "swiftUnavailable()", key.usr: "c:objc(cs)FooUnavailableMembers(im)swiftUnavailable", - key.offset: 6949, + key.offset: 6954, key.length: 23, key.fully_annotated_decl: "func swiftUnavailable()", key.attributes: [ @@ -7000,7 +6988,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "deprecated()", key.usr: "c:objc(cs)FooUnavailableMembers(im)deprecated", - key.offset: 6978, + key.offset: 6983, key.length: 17, key.fully_annotated_decl: "func deprecated()", key.attributes: [ @@ -7016,7 +7004,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityIntroduced()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityIntroduced", - key.offset: 7001, + key.offset: 7006, key.length: 29, key.fully_annotated_decl: "func availabilityIntroduced()", key.attributes: [ @@ -7031,7 +7019,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityDeprecated()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityDeprecated", - key.offset: 7036, + key.offset: 7041, key.length: 29, key.fully_annotated_decl: "func availabilityDeprecated()", key.attributes: [ @@ -7050,7 +7038,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityObsoleted()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityObsoleted", - key.offset: 7071, + key.offset: 7076, key.length: 28, key.fully_annotated_decl: "func availabilityObsoleted()", key.attributes: [ @@ -7066,7 +7054,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityUnavailable()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityUnavailable", - key.offset: 7105, + key.offset: 7110, key.length: 30, key.fully_annotated_decl: "func availabilityUnavailable()", key.attributes: [ @@ -7082,7 +7070,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityIntroducedMsg()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityIntroducedMsg", - key.offset: 7141, + key.offset: 7146, key.length: 32, key.fully_annotated_decl: "func availabilityIntroducedMsg()", key.attributes: [ @@ -7098,7 +7086,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityDeprecatedMsg()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityDeprecatedMsg", - key.offset: 7179, + key.offset: 7184, key.length: 32, key.fully_annotated_decl: "func availabilityDeprecatedMsg()", key.attributes: [ @@ -7117,7 +7105,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityObsoletedMsg()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityObsoletedMsg", - key.offset: 7217, + key.offset: 7222, key.length: 31, key.fully_annotated_decl: "func availabilityObsoletedMsg()", key.attributes: [ @@ -7134,7 +7122,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityUnavailableMsg()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityUnavailableMsg", - key.offset: 7254, + key.offset: 7259, key.length: 33, key.fully_annotated_decl: "func availabilityUnavailableMsg()", key.attributes: [ @@ -7152,7 +7140,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth1()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth1::SYNTHESIZED::c:objc(cs)FooUnavailableMembers", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth1", - key.offset: 7293, + key.offset: 7298, key.length: 29, key.fully_annotated_decl: "func _internalMeth1() -> Any!" }, @@ -7161,7 +7149,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth2()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth2::SYNTHESIZED::c:objc(cs)FooUnavailableMembers", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth2", - key.offset: 7328, + key.offset: 7333, key.length: 29, key.fully_annotated_decl: "func _internalMeth2() -> Any!" }, @@ -7170,7 +7158,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "nonInternalMeth()", key.usr: "c:objc(cs)FooClassBase(im)nonInternalMeth::SYNTHESIZED::c:objc(cs)FooUnavailableMembers", key.original_usr: "c:objc(cs)FooClassBase(im)nonInternalMeth", - key.offset: 7363, + key.offset: 7368, key.length: 30, key.fully_annotated_decl: "func nonInternalMeth() -> Any!" }, @@ -7179,7 +7167,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth3()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth3::SYNTHESIZED::c:objc(cs)FooUnavailableMembers", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth3", - key.offset: 7399, + key.offset: 7404, key.length: 29, key.fully_annotated_decl: "func _internalMeth3() -> Any!" } @@ -7189,7 +7177,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.class, key.name: "FooCFType", key.usr: "c:Foo.h@T@FooCFTypeRef", - key.offset: 7431, + key.offset: 7436, key.length: 19, key.fully_annotated_decl: "class FooCFType" }, @@ -7197,14 +7185,14 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "FooCFTypeRelease(_:)", key.usr: "c:@F@FooCFTypeRelease", - key.offset: 7451, + key.offset: 7456, key.length: 38, key.fully_annotated_decl: "func FooCFTypeRelease(_: FooCFType!)", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", - key.offset: 7478, + key.offset: 7483, key.length: 10 } ], @@ -7221,7 +7209,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.enum, key.name: "ABAuthorizationStatus", key.usr: "c:@E@ABAuthorizationStatus", - key.offset: 7490, + key.offset: 7495, key.length: 274, key.fully_annotated_decl: "enum ABAuthorizationStatus : Int", key.inherits: [ @@ -7236,7 +7224,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.enumelement, key.name: "notDetermined", key.usr: "c:@E@ABAuthorizationStatus@kABAuthorizationStatusNotDetermined", - key.offset: 7530, + key.offset: 7535, key.length: 22, key.fully_annotated_decl: "case notDetermined = 0", key.attributes: [ @@ -7251,7 +7239,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.enumelement, key.name: "restricted", key.usr: "c:@E@ABAuthorizationStatus@kABAuthorizationStatusRestricted", - key.offset: 7558, + key.offset: 7563, key.length: 19, key.fully_annotated_decl: "case restricted = 1", key.attributes: [ @@ -7267,7 +7255,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "hashValue", key.usr: "s:SYsSHRzSH8RawValueSYRpzrlE04hashB0Sivp::SYNTHESIZED::c:@E@ABAuthorizationStatus", key.original_usr: "s:SYsSHRzSH8RawValueSYRpzrlE04hashB0Sivp", - key.offset: 7583, + key.offset: 7588, key.length: 37, key.fully_annotated_decl: "@inlinable var hashValue: Int { get }" }, @@ -7276,7 +7264,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "hash(into:)", key.usr: "s:SYsSHRzSH8RawValueSYRpzrlE4hash4intoys6HasherVz_tF::SYNTHESIZED::c:@E@ABAuthorizationStatus", key.original_usr: "s:SYsSHRzSH8RawValueSYRpzrlE4hash4intoys6HasherVz_tF", - key.offset: 7626, + key.offset: 7631, key.length: 47, key.fully_annotated_decl: "@inlinable func hash(into hasher: inout Hasher)", key.entities: [ @@ -7284,7 +7272,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "into", key.name: "hasher", - key.offset: 7666, + key.offset: 7671, key.length: 6 } ] @@ -7294,7 +7282,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "!=(_:_:)", key.usr: "s:SQsE2neoiySbx_xtFZ::SYNTHESIZED::c:@E@ABAuthorizationStatus", key.original_usr: "s:SQsE2neoiySbx_xtFZ", - key.offset: 7679, + key.offset: 7684, key.length: 83, key.fully_annotated_decl: "static func != (lhs: ABAuthorizationStatus, rhs: ABAuthorizationStatus) -> Bool", key.entities: [ @@ -7302,14 +7290,14 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "lhs", - key.offset: 7702, + key.offset: 7707, key.length: 21 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "rhs", - key.offset: 7732, + key.offset: 7737, key.length: 21 } ] @@ -7328,7 +7316,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "fooSubFunc1(_:)", key.usr: "c:@F@fooSubFunc1", - key.offset: 7765, + key.offset: 7770, key.length: 37, key.fully_annotated_decl: "func fooSubFunc1(_ a: Int32) -> Int32", key.entities: [ @@ -7336,7 +7324,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", - key.offset: 7787, + key.offset: 7792, key.length: 5 } ], @@ -7346,7 +7334,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.struct, key.name: "FooSubEnum1", key.usr: "c:@E@FooSubEnum1", - key.offset: 7803, + key.offset: 7808, key.length: 214, key.fully_annotated_decl: "struct FooSubEnum1 : Equatable, RawRepresentable", key.conforms: [ @@ -7366,7 +7354,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(_:)", key.usr: "s:So11FooSubEnum1VyABs6UInt32Vcfc", - key.offset: 7859, + key.offset: 7864, key.length: 24, key.fully_annotated_decl: "init(_ rawValue: UInt32)", key.entities: [ @@ -7374,7 +7362,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "rawValue", - key.offset: 7876, + key.offset: 7881, key.length: 6 } ] @@ -7383,7 +7371,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(rawValue:)", key.usr: "s:So11FooSubEnum1V8rawValueABs6UInt32V_tcfc", - key.offset: 7889, + key.offset: 7894, key.length: 31, key.fully_annotated_decl: "init(rawValue: UInt32)", key.entities: [ @@ -7391,7 +7379,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "rawValue", key.name: "rawValue", - key.offset: 7913, + key.offset: 7918, key.length: 6 } ] @@ -7400,7 +7388,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "rawValue", key.usr: "s:So11FooSubEnum1V8rawValues6UInt32Vvp", - key.offset: 7926, + key.offset: 7931, key.length: 20, key.fully_annotated_decl: "var rawValue: UInt32" }, @@ -7409,7 +7397,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "!=(_:_:)", key.usr: "s:SQsE2neoiySbx_xtFZ::SYNTHESIZED::c:@E@FooSubEnum1", key.original_usr: "s:SQsE2neoiySbx_xtFZ", - key.offset: 7952, + key.offset: 7957, key.length: 63, key.fully_annotated_decl: "static func != (lhs: FooSubEnum1, rhs: FooSubEnum1) -> Bool", key.entities: [ @@ -7417,14 +7405,14 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "lhs", - key.offset: 7975, + key.offset: 7980, key.length: 11 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "rhs", - key.offset: 7995, + key.offset: 8000, key.length: 11 } ] @@ -7436,7 +7424,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FooSubEnum1X", key.usr: "c:@E@FooSubEnum1@FooSubEnum1X", - key.offset: 8018, + key.offset: 8023, key.length: 37, key.fully_annotated_decl: "var FooSubEnum1X: FooSubEnum1 { get }", key.modulename: "Foo.FooSub" @@ -7445,7 +7433,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FooSubEnum1Y", key.usr: "c:@E@FooSubEnum1@FooSubEnum1Y", - key.offset: 8056, + key.offset: 8061, key.length: 37, key.fully_annotated_decl: "var FooSubEnum1Y: FooSubEnum1 { get }", key.modulename: "Foo.FooSub" @@ -7454,7 +7442,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FooSubUnnamedEnumeratorA1", key.usr: "c:@Ea@FooSubUnnamedEnumeratorA1@FooSubUnnamedEnumeratorA1", - key.offset: 8094, + key.offset: 8099, key.length: 42, key.fully_annotated_decl: "var FooSubUnnamedEnumeratorA1: Int { get }", key.modulename: "Foo.FooSub" diff --git a/test/SourceKit/DocSupport/doc_source_file.swift.response b/test/SourceKit/DocSupport/doc_source_file.swift.response index 59e8f3a02ed77..145cd58017620 100644 --- a/test/SourceKit/DocSupport/doc_source_file.swift.response +++ b/test/SourceKit/DocSupport/doc_source_file.swift.response @@ -1960,6 +1960,7 @@ key.kind: source.lang.swift.decl.extension.class, key.offset: 649, key.length: 112, + key.fully_annotated_decl: "extension CC : Prot", key.conforms: [ { key.kind: source.lang.swift.ref.protocol, diff --git a/test/SourceKit/DocSupport/doc_swift_module.swift.response b/test/SourceKit/DocSupport/doc_swift_module.swift.response index 7e67bda8e3a59..c35a607481291 100644 --- a/test/SourceKit/DocSupport/doc_swift_module.swift.response +++ b/test/SourceKit/DocSupport/doc_swift_module.swift.response @@ -190,7 +190,7 @@ struct S3 : cake.P5 where Wrapped : cake.P5 { typealias Element = Wrapped.Element } -extension S3 { +extension S3 where Wrapped : P6 { var null: Wrapped.Element? { get } } @@ -1792,158 +1792,175 @@ func shouldPrintAnyAsKeyword(x x: Any) }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2280, + key.offset: 2273, + key.length: 5 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 2279, + key.length: 7 + }, + { + key.kind: source.lang.swift.ref.protocol, + key.name: "P6", + key.usr: "s:4cake2P6P", + key.offset: 2289, + key.length: 2 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 2299, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2284, + key.offset: 2303, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2290, + key.offset: 2309, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2298, + key.offset: 2317, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2309, + key.offset: 2328, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2318, + key.offset: 2337, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2323, + key.offset: 2342, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2330, + key.offset: 2349, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2334, + key.offset: 2353, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2338, + key.offset: 2357, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2340, + key.offset: 2359, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2344, + key.offset: 2363, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2348, + key.offset: 2367, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2350, + key.offset: 2369, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2354, + key.offset: 2373, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2358, + key.offset: 2377, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2364, + key.offset: 2383, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2369, + key.offset: 2388, key.length: 4 }, { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", key.usr: "s:4cake4ProtP", - key.offset: 2374, + key.offset: 2393, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2380, + key.offset: 2399, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2385, + key.offset: 2404, key.length: 4 }, { key.kind: source.lang.swift.ref.class, key.name: "C1", key.usr: "s:4cake2C1C", - key.offset: 2390, + key.offset: 2409, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2394, + key.offset: 2413, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2397, + key.offset: 2416, key.length: 7 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 2408, + key.offset: 2427, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2413, + key.offset: 2432, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2418, + key.offset: 2437, key.length: 23 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2442, + key.offset: 2461, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2444, + key.offset: 2463, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2447, + key.offset: 2466, key.length: 3 } ] @@ -2172,6 +2189,7 @@ func shouldPrintAnyAsKeyword(x x: Any) key.doc.full_as_xml: "@available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)\nextension C1some comments", key.offset: 473, key.length: 37, + key.fully_annotated_decl: "extension C1", key.extends: { key.kind: source.lang.swift.ref.class, key.name: "C1", @@ -2214,6 +2232,7 @@ func shouldPrintAnyAsKeyword(x x: Any) key.kind: source.lang.swift.decl.extension.class, key.offset: 512, key.length: 105, + key.fully_annotated_decl: "extension C1 : P4", key.conforms: [ { key.kind: source.lang.swift.ref.protocol, @@ -2266,17 +2285,9 @@ func shouldPrintAnyAsKeyword(x x: Any) }, { key.kind: source.lang.swift.decl.extension.enum, - key.generic_requirements: [ - { - key.description: "Self : Hashable" - }, - { - key.description: "Self.RawValue : Hashable" - } - ], key.offset: 619, key.length: 187, - key.fully_annotated_generic_signature: "<Self where Self : Hashable, Self : RawRepresentable, Self.RawValue : Hashable>", + key.fully_annotated_decl: "extension C1.C1Cases", key.extends: { key.kind: source.lang.swift.ref.enum, key.name: "C1Cases", @@ -2429,6 +2440,7 @@ func shouldPrintAnyAsKeyword(x x: Any) key.doc.full_as_xml: "@available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)\nextension C2some comments", key.offset: 982, key.length: 37, + key.fully_annotated_decl: "extension C2", key.extends: { key.kind: source.lang.swift.ref.class, key.name: "C2", @@ -2472,6 +2484,7 @@ func shouldPrintAnyAsKeyword(x x: Any) key.kind: source.lang.swift.decl.extension.class, key.offset: 1021, key.length: 95, + key.fully_annotated_decl: "extension C2 : P4", key.conforms: [ { key.kind: source.lang.swift.ref.protocol, @@ -2623,7 +2636,7 @@ func shouldPrintAnyAsKeyword(x x: Any) key.kind: source.lang.swift.decl.extension.protocol, key.offset: 1343, key.length: 54, - key.fully_annotated_generic_signature: "<Self where Self : P>", + key.fully_annotated_decl: "extension P", key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "P", @@ -2727,7 +2740,7 @@ func shouldPrintAnyAsKeyword(x x: Any) key.kind: source.lang.swift.decl.extension.protocol, key.offset: 1582, key.length: 53, - key.fully_annotated_generic_signature: "<Self where Self : P6>", + key.fully_annotated_decl: "extension P6", key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "P6", @@ -2790,7 +2803,7 @@ func shouldPrintAnyAsKeyword(x x: Any) key.kind: source.lang.swift.decl.extension.protocol, key.offset: 1741, key.length: 79, - key.fully_annotated_generic_signature: "<Self where Self : Prot>", + key.fully_annotated_decl: "extension Prot", key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", @@ -2834,7 +2847,7 @@ func shouldPrintAnyAsKeyword(x x: Any) ], key.offset: 1822, key.length: 63, - key.fully_annotated_generic_signature: "<Self where Self : Prot, Self.Element == Int>", + key.fully_annotated_decl: "extension Prot where Self.Element == Int", key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", @@ -2925,7 +2938,7 @@ func shouldPrintAnyAsKeyword(x x: Any) key.kind: source.lang.swift.decl.extension.enum, key.offset: 2031, key.length: 76, - key.fully_annotated_generic_signature: "<Self where Self : Equatable>", + key.fully_annotated_decl: "extension S1.SE", key.extends: { key.kind: source.lang.swift.ref.enum, key.name: "SE", @@ -3035,9 +3048,14 @@ func shouldPrintAnyAsKeyword(x x: Any) }, { key.kind: source.lang.swift.decl.extension.struct, + key.generic_requirements: [ + { + key.description: "Wrapped : P6" + } + ], key.offset: 2260, - key.length: 56, - key.fully_annotated_generic_signature: "<Self where Self : P6>", + key.length: 75, + key.fully_annotated_decl: "extension S3 where Wrapped : P6", key.extends: { key.kind: source.lang.swift.ref.struct, key.name: "S3", @@ -3049,7 +3067,7 @@ func shouldPrintAnyAsKeyword(x x: Any) key.name: "null", key.usr: "s:4cake2P6PAAE4null7ElementQzSgvp::SYNTHESIZED::s:4cake2S3V", key.original_usr: "s:4cake2P6PAAE4null7ElementQzSgvp", - key.offset: 2280, + key.offset: 2299, key.length: 34, key.fully_annotated_decl: "var null: Wrapped.Element? { get }" } @@ -3078,7 +3096,7 @@ func shouldPrintAnyAsKeyword(x x: Any) key.description: "T1.Element == Int" } ], - key.offset: 2318, + key.offset: 2337, key.length: 93, key.fully_annotated_decl: "func genfoo<T1, T2>(x ix: T1, y iy: T2) where T1 : Prot, T2 : C1, T1.Element == Int", key.entities: [ @@ -3086,14 +3104,14 @@ func shouldPrintAnyAsKeyword(x x: Any) key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "ix", - key.offset: 2344, + key.offset: 2363, key.length: 2 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "y", key.name: "iy", - key.offset: 2354, + key.offset: 2373, key.length: 2 } ] @@ -3102,7 +3120,7 @@ func shouldPrintAnyAsKeyword(x x: Any) key.kind: source.lang.swift.decl.function.free, key.name: "shouldPrintAnyAsKeyword(x:)", key.usr: "s:4cake23shouldPrintAnyAsKeyword1xyyp_tF", - key.offset: 2413, + key.offset: 2432, key.length: 38, key.fully_annotated_decl: "func shouldPrintAnyAsKeyword(x: Any)", key.entities: [ @@ -3110,7 +3128,7 @@ func shouldPrintAnyAsKeyword(x x: Any) key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", - key.offset: 2447, + key.offset: 2466, key.length: 3 } ] diff --git a/test/SourceKit/DocSupport/doc_swift_module1.swift.response b/test/SourceKit/DocSupport/doc_swift_module1.swift.response index 1c310d0e35a8b..9b28e4596672a 100644 --- a/test/SourceKit/DocSupport/doc_swift_module1.swift.response +++ b/test/SourceKit/DocSupport/doc_swift_module1.swift.response @@ -767,7 +767,7 @@ extension Dictionary.Keys where Key : cake1.P1 { key.kind: source.lang.swift.decl.extension.protocol, key.offset: 166, key.length: 35, - key.fully_annotated_generic_signature: "<Self where Self : InitProto>", + key.fully_annotated_decl: "extension InitProto", key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "InitProto", @@ -946,7 +946,7 @@ extension Dictionary.Keys where Key : cake1.P1 { key.kind: source.lang.swift.decl.extension.protocol, key.offset: 511, key.length: 118, - key.fully_annotated_generic_signature: "<Self where Self : P2>", + key.fully_annotated_decl: "extension P2", key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "P2", @@ -1025,7 +1025,7 @@ extension Dictionary.Keys where Key : cake1.P1 { ], key.offset: 631, key.length: 64, - key.fully_annotated_generic_signature: "<Self where Self : P2, Self : P3>", + key.fully_annotated_decl: "extension P2 where Self : P3", key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "P2", @@ -1078,7 +1078,7 @@ extension Dictionary.Keys where Key : cake1.P1 { ], key.offset: 737, key.length: 45, - key.fully_annotated_generic_signature: "<Key, Value where Key : Hashable>", + key.fully_annotated_decl: "extension Dictionary.Keys", key.extends: { key.kind: source.lang.swift.ref.struct, key.name: "Keys", @@ -1107,7 +1107,7 @@ extension Dictionary.Keys where Key : cake1.P1 { ], key.offset: 784, key.length: 66, - key.fully_annotated_generic_signature: "<Key, Value where Key : Hashable, Key : P1>", + key.fully_annotated_decl: "extension Dictionary.Keys where Key : P1", key.extends: { key.kind: source.lang.swift.ref.struct, key.name: "Keys", diff --git a/test/SourceKit/DocSupport/doc_system_module_underscored.swift b/test/SourceKit/DocSupport/doc_system_module_underscored.swift new file mode 100644 index 0000000000000..66c5264820b75 --- /dev/null +++ b/test/SourceKit/DocSupport/doc_system_module_underscored.swift @@ -0,0 +1,8 @@ + +// RUN: %empty-directory(%t) +// RUN: %empty-directory(%t/mcp) +// RUN: %empty-directory(%t/UnderscoredProto.framework/Modules/UnderscoredProto.swiftmodule) +// RUN: cp %S/../Inputs/UnderscoredProto.swiftinterface %t/UnderscoredProto.framework/Modules/UnderscoredProto.swiftmodule/%module-target-triple.swiftinterface + +// RUN: %sourcekitd-test -req=doc-info -synthesized-extension -module UnderscoredProto -- -target %target-triple -Fsystem %t -module-cache-path %t/mcp > %t.response +// RUN: %diff -u %s.response %t.response diff --git a/test/SourceKit/DocSupport/doc_system_module_underscored.swift.response b/test/SourceKit/DocSupport/doc_system_module_underscored.swift.response new file mode 100644 index 0000000000000..9a6cc0b30316d --- /dev/null +++ b/test/SourceKit/DocSupport/doc_system_module_underscored.swift.response @@ -0,0 +1,1763 @@ +import SwiftOnoneSupport + +struct A { + + func fromA(takesT takesT: T) + + func fromAExtension(takesT takesT: T) + + func fromProtoExtension() +} + +extension A { + + func fromDeprecatedProtoExtension() +} + +extension A where T == String { + + typealias Elem = Int + + func fromAConditionalExtension(takesTIfString takesTIfString: T) + + func fromProto2Extension(takesElem takesElem: Int) +} + +extension A { + + func fromDeprecatedConditionalProto2Extension(takesElemInt takesElemInt: Int) +} + +class B { + + func fromB(takesT takesT: T) + + typealias Elem = String + + func fromProtoExtension() + + func fromProto2Extension(takesElem takesElem: String) + + func fromConditionalProto2Extension(takesElemIfString takesElemIfString: String) +} + +extension B { + + func fromDeprecatedProtoExtension() +} + +class C : B where U : Equatable { + + func fromC(takesUIfEquatable takesUIfEquatable: U) + + typealias Elem1 = V + + typealias Elem2 = U + + func fromCConditionlExtension(takesU takesU: U) + + typealias Elem = String + + func fromProtoExtension() + + func fromProto2Extension(takesElem takesElem: String) + + func fromConditionalProto2Extension(takesElemIfString takesElemIfString: String) + + func fromProto4Extension(takesElem2IfEquatable takesElem2IfEquatable: U) + + func fromProto3Extension(takesElem1 takesElem1: V) + + func fromProto3Extension(takesElem2 takesElem2: U) +} + +extension C { + + func fromDeprecatedProtoExtension() +} + +extension C where U : Hashable { + + func fromProto4Extension(takesElem2IfHashable takesElem2IfHashable: U) +} + +struct D { + + func fromD(takesT takesT: T, takesU takesU: U) +} + +extension D where T : Equatable { + + typealias Item = T +} + +extension D where T : Other1, T : Equatable { + + func fromSomeProtoExtensionSplitConditions(takesItemIfOther1 takesItemIfOther1: T) +} + +protocol Other1 { +} + + +[ + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 0, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 7, + key.length: 17 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 26, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 33, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 35, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 45, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 50, + key.length: 5 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 56, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 63, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 71, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 79, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 84, + key.length: 14 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 99, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 106, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 114, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 122, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 127, + key.length: 18 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 151, + key.length: 9 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "A", + key.usr: "s:16UnderscoredProto1AV", + key.offset: 161, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 170, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 175, + key.length: 28 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 209, + key.length: 9 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "A", + key.usr: "s:16UnderscoredProto1AV", + key.offset: 219, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 221, + key.length: 5 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 227, + key.length: 1 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "String", + key.usr: "s:SS", + key.offset: 232, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 246, + key.length: 9 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 256, + key.length: 4 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "Int", + key.usr: "s:Si", + key.offset: 263, + key.length: 3 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 272, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 277, + key.length: 25 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 303, + key.length: 14 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 318, + key.length: 14 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 334, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 342, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 347, + key.length: 19 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 367, + key.length: 9 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 377, + key.length: 9 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "Int", + key.usr: "s:Si", + key.offset: 388, + key.length: 3 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 396, + key.length: 9 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "A", + key.usr: "s:16UnderscoredProto1AV", + key.offset: 406, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 415, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 420, + key.length: 40 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 461, + key.length: 12 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 474, + key.length: 12 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "Int", + key.usr: "s:Si", + key.offset: 488, + key.length: 3 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 496, + key.length: 5 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 502, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 504, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 514, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 519, + key.length: 5 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 525, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 532, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 540, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 548, + key.length: 9 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 558, + key.length: 4 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "String", + key.usr: "s:SS", + key.offset: 565, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 577, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 582, + key.length: 18 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 608, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 613, + key.length: 19 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 633, + key.length: 9 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 643, + key.length: 9 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "String", + key.usr: "s:SS", + key.offset: 654, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 667, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 672, + key.length: 30 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 703, + key.length: 17 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 721, + key.length: 17 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "String", + key.usr: "s:SS", + key.offset: 740, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 751, + key.length: 9 + }, + { + key.kind: source.lang.swift.ref.class, + key.name: "B", + key.usr: "s:16UnderscoredProto1BC", + key.offset: 761, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 770, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 775, + key.length: 28 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 809, + key.length: 5 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 815, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 817, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 820, + key.length: 1 + }, + { + key.kind: source.lang.swift.ref.class, + key.name: "B", + key.usr: "s:16UnderscoredProto1BC", + key.offset: 825, + key.length: 1 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "String", + key.usr: "s:SS", + key.offset: 827, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 835, + key.length: 5 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 841, + key.length: 1 + }, + { + key.kind: source.lang.swift.ref.protocol, + key.name: "Equatable", + key.usr: "s:SQ", + key.offset: 845, + key.length: 9 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 862, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 867, + key.length: 5 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 873, + key.length: 17 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 891, + key.length: 17 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 910, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 918, + key.length: 9 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 928, + key.length: 5 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 936, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 943, + key.length: 9 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 953, + key.length: 5 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 961, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 968, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 973, + key.length: 24 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 998, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 1005, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1013, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1021, + key.length: 9 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1031, + key.length: 4 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "String", + key.usr: "s:SS", + key.offset: 1038, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1050, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1055, + key.length: 18 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1081, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1086, + key.length: 19 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 1106, + key.length: 9 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 1116, + key.length: 9 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "String", + key.usr: "s:SS", + key.offset: 1127, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1140, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1145, + key.length: 30 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 1176, + key.length: 17 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 1194, + key.length: 17 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "String", + key.usr: "s:SS", + key.offset: 1213, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1226, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1231, + key.length: 19 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 1251, + key.length: 21 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 1273, + key.length: 21 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1296, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1304, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1309, + key.length: 19 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 1329, + key.length: 10 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 1340, + key.length: 10 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1352, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1360, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1365, + key.length: 19 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 1385, + key.length: 10 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 1396, + key.length: 10 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1408, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1414, + key.length: 9 + }, + { + key.kind: source.lang.swift.ref.class, + key.name: "C", + key.usr: "s:16UnderscoredProto1CC", + key.offset: 1424, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1433, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1438, + key.length: 28 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1472, + key.length: 9 + }, + { + key.kind: source.lang.swift.ref.class, + key.name: "C", + key.usr: "s:16UnderscoredProto1CC", + key.offset: 1482, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1484, + key.length: 5 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1490, + key.length: 1 + }, + { + key.kind: source.lang.swift.ref.protocol, + key.name: "Hashable", + key.usr: "s:SH", + key.offset: 1494, + key.length: 8 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1510, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1515, + key.length: 19 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 1535, + key.length: 20 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 1556, + key.length: 20 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1578, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1584, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1591, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1593, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1596, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1606, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1611, + key.length: 5 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 1617, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 1624, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1632, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 1635, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 1642, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1650, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1656, + key.length: 9 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "D", + key.usr: "s:16UnderscoredProto1DV", + key.offset: 1666, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1668, + key.length: 5 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1674, + key.length: 1 + }, + { + key.kind: source.lang.swift.ref.protocol, + key.name: "Equatable", + key.usr: "s:SQ", + key.offset: 1678, + key.length: 9 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1695, + key.length: 9 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1705, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1712, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1717, + key.length: 9 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "D", + key.usr: "s:16UnderscoredProto1DV", + key.offset: 1727, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1729, + key.length: 5 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1735, + key.length: 1 + }, + { + key.kind: source.lang.swift.ref.protocol, + key.name: "Other1", + key.usr: "s:16UnderscoredProto6Other1P", + key.offset: 1739, + key.length: 6 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1747, + key.length: 1 + }, + { + key.kind: source.lang.swift.ref.protocol, + key.name: "Equatable", + key.usr: "s:SQ", + key.offset: 1751, + key.length: 9 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1768, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1773, + key.length: 37 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 1811, + key.length: 17 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 1829, + key.length: 17 + }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1848, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 1854, + key.length: 8 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 1863, + key.length: 6 + } +] +[ + { + key.kind: source.lang.swift.decl.struct, + key.name: "A", + key.usr: "s:16UnderscoredProto1AV", + key.generic_params: [ + { + key.name: "T" + } + ], + key.offset: 26, + key.length: 123, + key.fully_annotated_decl: "struct A<T>", + key.entities: [ + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromA(takesT:)", + key.usr: "s:16UnderscoredProto1AV5fromA6takesTyx_tF", + key.offset: 45, + key.length: 28, + key.fully_annotated_decl: "func fromA(takesT: T)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesT", + key.name: "takesT", + key.offset: 71, + key.length: 1 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromAExtension(takesT:)", + key.usr: "s:16UnderscoredProto1AV14fromAExtension6takesTyx_tF", + key.offset: 79, + key.length: 37, + key.fully_annotated_decl: "func fromAExtension(takesT: T)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesT", + key.name: "takesT", + key.offset: 114, + key.length: 1 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromProtoExtension()", + key.usr: "s:16UnderscoredProto01_aB0PAAE04fromB9ExtensionyyF::SYNTHESIZED::s:16UnderscoredProto1AV", + key.original_usr: "s:16UnderscoredProto01_aB0PAAE04fromB9ExtensionyyF", + key.offset: 122, + key.length: 25, + key.fully_annotated_decl: "func fromProtoExtension()" + } + ] + }, + { + key.kind: source.lang.swift.decl.extension.struct, + key.offset: 151, + key.length: 56, + key.fully_annotated_decl: "extension A", + key.extends: { + key.kind: source.lang.swift.ref.struct, + key.name: "A", + key.usr: "s:16UnderscoredProto1AV" + }, + key.entities: [ + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromDeprecatedProtoExtension()", + key.usr: "s:16UnderscoredProto01_aB0PAAE014fromDeprecatedB9ExtensionyyF::SYNTHESIZED::s:16UnderscoredProto1AV", + key.original_usr: "s:16UnderscoredProto01_aB0PAAE014fromDeprecatedB9ExtensionyyF", + key.offset: 170, + key.length: 35, + key.fully_annotated_decl: "func fromDeprecatedProtoExtension()" + } + ], + key.attributes: [ + { + key.kind: source.lang.swift.attribute.availability, + key.is_deprecated: 1 + } + ], + key.is_deprecated: 1 + }, + { + key.kind: source.lang.swift.decl.extension.struct, + key.generic_requirements: [ + { + key.description: "T == String" + } + ], + key.offset: 209, + key.length: 185, + key.fully_annotated_decl: "extension A : _UnderscoredProto2 where T == String", + key.conforms: [ + { + key.kind: source.lang.swift.ref.protocol, + key.name: "_UnderscoredProto2", + key.usr: "s:16UnderscoredProto01_A6Proto2P" + } + ], + key.extends: { + key.kind: source.lang.swift.ref.struct, + key.name: "A", + key.usr: "s:16UnderscoredProto1AV" + }, + key.entities: [ + { + key.kind: source.lang.swift.decl.typealias, + key.name: "Elem", + key.usr: "s:16UnderscoredProto1AVAASSRszlE4Elema", + key.offset: 246, + key.length: 20, + key.fully_annotated_decl: "typealias Elem = Int", + key.conforms: [ + { + key.kind: source.lang.swift.ref.protocol, + key.name: "FixedWidthInteger", + key.usr: "s:s17FixedWidthIntegerP" + }, + { + key.kind: source.lang.swift.ref.protocol, + key.name: "SignedInteger", + key.usr: "s:SZ" + }, + { + key.kind: source.lang.swift.ref.protocol, + key.name: "_ExpressibleByBuiltinIntegerLiteral", + key.usr: "s:s35_ExpressibleByBuiltinIntegerLiteralP" + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromAConditionalExtension(takesTIfString:)", + key.usr: "s:16UnderscoredProto1AVAASSRszlE25fromAConditionalExtension14takesTIfStringySS_tF", + key.offset: 272, + key.length: 64, + key.fully_annotated_decl: "func fromAConditionalExtension(takesTIfString: T)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesTIfString", + key.name: "takesTIfString", + key.offset: 334, + key.length: 1 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromProto2Extension(takesElem:)", + key.usr: "s:16UnderscoredProto01_A6Proto2PAAE04fromC9Extension9takesElemy0G0Qz_tF::SYNTHESIZED::s:16UnderscoredProto1AV", + key.original_usr: "s:16UnderscoredProto01_A6Proto2PAAE04fromC9Extension9takesElemy0G0Qz_tF", + key.offset: 342, + key.length: 50, + key.fully_annotated_decl: "func fromProto2Extension(takesElem: Int)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesElem", + key.name: "takesElem", + key.offset: 388, + key.length: 3 + } + ] + } + ] + }, + { + key.kind: source.lang.swift.decl.extension.struct, + key.offset: 396, + key.length: 98, + key.fully_annotated_decl: "extension A", + key.extends: { + key.kind: source.lang.swift.ref.struct, + key.name: "A", + key.usr: "s:16UnderscoredProto1AV" + }, + key.entities: [ + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromDeprecatedConditionalProto2Extension(takesElemInt:)", + key.usr: "s:16UnderscoredProto01_A6Proto2PAASi4ElemRtzrlE025fromDeprecatedConditionalC9Extension05takesD3IntySi_tF::SYNTHESIZED::s:16UnderscoredProto1AV", + key.original_usr: "s:16UnderscoredProto01_A6Proto2PAASi4ElemRtzrlE025fromDeprecatedConditionalC9Extension05takesD3IntySi_tF", + key.offset: 415, + key.length: 77, + key.fully_annotated_decl: "func fromDeprecatedConditionalProto2Extension(takesElemInt: Int)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesElemInt", + key.name: "takesElemInt", + key.offset: 488, + key.length: 3 + } + ] + } + ], + key.attributes: [ + { + key.kind: source.lang.swift.attribute.availability, + key.is_deprecated: 1 + } + ], + key.is_deprecated: 1 + }, + { + key.kind: source.lang.swift.decl.class, + key.name: "B", + key.usr: "s:16UnderscoredProto1BC", + key.generic_params: [ + { + key.name: "T" + } + ], + key.offset: 496, + key.length: 253, + key.fully_annotated_decl: "class B<T> : _UnderscoredProto", + key.conforms: [ + { + key.kind: source.lang.swift.ref.protocol, + key.name: "_UnderscoredProto", + key.usr: "s:16UnderscoredProto01_aB0P" + } + ], + key.entities: [ + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromB(takesT:)", + key.usr: "s:16UnderscoredProto1BC5fromB6takesTyx_tF", + key.offset: 514, + key.length: 28, + key.fully_annotated_decl: "func fromB(takesT: T)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesT", + key.name: "takesT", + key.offset: 540, + key.length: 1 + } + ] + }, + { + key.kind: source.lang.swift.decl.typealias, + key.name: "Elem", + key.usr: "s:16UnderscoredProto1BC4Elema", + key.offset: 548, + key.length: 23, + key.fully_annotated_decl: "typealias Elem = String" + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromProtoExtension()", + key.usr: "s:16UnderscoredProto01_aB0PAAE04fromB9ExtensionyyF::SYNTHESIZED::s:16UnderscoredProto1BC", + key.original_usr: "s:16UnderscoredProto01_aB0PAAE04fromB9ExtensionyyF", + key.offset: 577, + key.length: 25, + key.fully_annotated_decl: "func fromProtoExtension()" + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromProto2Extension(takesElem:)", + key.usr: "s:16UnderscoredProto01_A6Proto2PAAE04fromC9Extension9takesElemy0G0Qz_tF::SYNTHESIZED::s:16UnderscoredProto1BC", + key.original_usr: "s:16UnderscoredProto01_A6Proto2PAAE04fromC9Extension9takesElemy0G0Qz_tF", + key.offset: 608, + key.length: 53, + key.fully_annotated_decl: "func fromProto2Extension(takesElem: String)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesElem", + key.name: "takesElem", + key.offset: 654, + key.length: 6 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromConditionalProto2Extension(takesElemIfString:)", + key.usr: "s:16UnderscoredProto01_A6Proto2PAASS4ElemRtzrlE015fromConditionalC9Extension05takesD8IfStringySS_tF::SYNTHESIZED::s:16UnderscoredProto1BC", + key.original_usr: "s:16UnderscoredProto01_A6Proto2PAASS4ElemRtzrlE015fromConditionalC9Extension05takesD8IfStringySS_tF", + key.offset: 667, + key.length: 80, + key.fully_annotated_decl: "func fromConditionalProto2Extension(takesElemIfString: String)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesElemIfString", + key.name: "takesElemIfString", + key.offset: 740, + key.length: 6 + } + ] + } + ] + }, + { + key.kind: source.lang.swift.decl.extension.class, + key.offset: 751, + key.length: 56, + key.fully_annotated_decl: "extension B", + key.extends: { + key.kind: source.lang.swift.ref.class, + key.name: "B", + key.usr: "s:16UnderscoredProto1BC" + }, + key.entities: [ + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromDeprecatedProtoExtension()", + key.usr: "s:16UnderscoredProto01_aB0PAAE014fromDeprecatedB9ExtensionyyF::SYNTHESIZED::s:16UnderscoredProto1BC", + key.original_usr: "s:16UnderscoredProto01_aB0PAAE014fromDeprecatedB9ExtensionyyF", + key.offset: 770, + key.length: 35, + key.fully_annotated_decl: "func fromDeprecatedProtoExtension()" + } + ], + key.attributes: [ + { + key.kind: source.lang.swift.attribute.availability, + key.is_deprecated: 1 + } + ], + key.is_deprecated: 1 + }, + { + key.kind: source.lang.swift.decl.class, + key.name: "C", + key.usr: "s:16UnderscoredProto1CC", + key.generic_params: [ + { + key.name: "U" + }, + { + key.name: "V" + } + ], + key.generic_requirements: [ + { + key.description: "U : Equatable" + } + ], + key.offset: 809, + key.length: 603, + key.fully_annotated_decl: "class C<U, V> : B<String> where U : Equatable", + key.inherits: [ + { + key.kind: source.lang.swift.ref.class, + key.name: "B", + key.usr: "s:16UnderscoredProto1BC" + } + ], + key.entities: [ + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromC(takesUIfEquatable:)", + key.usr: "s:16UnderscoredProto1CC5fromC17takesUIfEquatableyx_tF", + key.offset: 862, + key.length: 50, + key.fully_annotated_decl: "func fromC(takesUIfEquatable: U)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesUIfEquatable", + key.name: "takesUIfEquatable", + key.offset: 910, + key.length: 1 + } + ] + }, + { + key.kind: source.lang.swift.decl.typealias, + key.name: "Elem1", + key.usr: "s:16UnderscoredProto1CC5Elem1a", + key.offset: 918, + key.length: 19, + key.fully_annotated_decl: "typealias Elem1 = V", + key.conforms: [ + { + key.kind: source.lang.swift.ref.associatedtype, + key.name: "Elem1", + key.usr: "s:16UnderscoredProto01_A6Proto3P5Elem1Qa" + } + ] + }, + { + key.kind: source.lang.swift.decl.typealias, + key.name: "Elem2", + key.usr: "s:16UnderscoredProto1CC5Elem2a", + key.offset: 943, + key.length: 19, + key.fully_annotated_decl: "typealias Elem2 = U", + key.conforms: [ + { + key.kind: source.lang.swift.ref.associatedtype, + key.name: "Elem2", + key.usr: "s:16UnderscoredProto01_A6Proto3P5Elem2Qa" + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromCConditionlExtension(takesU:)", + key.usr: "s:16UnderscoredProto1CC24fromCConditionlExtension6takesUyx_tF", + key.offset: 968, + key.length: 47, + key.fully_annotated_decl: "func fromCConditionlExtension(takesU: U)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesU", + key.name: "takesU", + key.offset: 1013, + key.length: 1 + } + ] + }, + { + key.kind: source.lang.swift.decl.typealias, + key.name: "Elem", + key.usr: "s:16UnderscoredProto1BC4Elema::SYNTHESIZED::s:16UnderscoredProto1CC", + key.original_usr: "s:16UnderscoredProto1BC4Elema", + key.offset: 1021, + key.length: 23, + key.fully_annotated_decl: "typealias Elem = String" + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromProtoExtension()", + key.usr: "s:16UnderscoredProto01_aB0PAAE04fromB9ExtensionyyF::SYNTHESIZED::s:16UnderscoredProto1CC", + key.original_usr: "s:16UnderscoredProto01_aB0PAAE04fromB9ExtensionyyF", + key.offset: 1050, + key.length: 25, + key.fully_annotated_decl: "func fromProtoExtension()" + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromProto2Extension(takesElem:)", + key.usr: "s:16UnderscoredProto01_A6Proto2PAAE04fromC9Extension9takesElemy0G0Qz_tF::SYNTHESIZED::s:16UnderscoredProto1CC", + key.original_usr: "s:16UnderscoredProto01_A6Proto2PAAE04fromC9Extension9takesElemy0G0Qz_tF", + key.offset: 1081, + key.length: 53, + key.fully_annotated_decl: "func fromProto2Extension(takesElem: String)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesElem", + key.name: "takesElem", + key.offset: 1127, + key.length: 6 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromConditionalProto2Extension(takesElemIfString:)", + key.usr: "s:16UnderscoredProto01_A6Proto2PAASS4ElemRtzrlE015fromConditionalC9Extension05takesD8IfStringySS_tF::SYNTHESIZED::s:16UnderscoredProto1CC", + key.original_usr: "s:16UnderscoredProto01_A6Proto2PAASS4ElemRtzrlE015fromConditionalC9Extension05takesD8IfStringySS_tF", + key.offset: 1140, + key.length: 80, + key.fully_annotated_decl: "func fromConditionalProto2Extension(takesElemIfString: String)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesElemIfString", + key.name: "takesElemIfString", + key.offset: 1213, + key.length: 6 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromProto4Extension(takesElem2IfEquatable:)", + key.usr: "s:16UnderscoredProto01_A6Proto4PAAE04fromC9Extension21takesElem2IfEquatabley0G0Qz_tF::SYNTHESIZED::s:16UnderscoredProto1CC", + key.original_usr: "s:16UnderscoredProto01_A6Proto4PAAE04fromC9Extension21takesElem2IfEquatabley0G0Qz_tF", + key.offset: 1226, + key.length: 72, + key.fully_annotated_decl: "func fromProto4Extension(takesElem2IfEquatable: U)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesElem2IfEquatable", + key.name: "takesElem2IfEquatable", + key.offset: 1296, + key.length: 1 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromProto3Extension(takesElem1:)", + key.usr: "s:16UnderscoredProto01_A6Proto3PAAE04fromC9Extension10takesElem1y0G0Qz_tF::SYNTHESIZED::s:16UnderscoredProto1CC", + key.original_usr: "s:16UnderscoredProto01_A6Proto3PAAE04fromC9Extension10takesElem1y0G0Qz_tF", + key.offset: 1304, + key.length: 50, + key.fully_annotated_decl: "func fromProto3Extension(takesElem1: V)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesElem1", + key.name: "takesElem1", + key.offset: 1352, + key.length: 1 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromProto3Extension(takesElem2:)", + key.usr: "s:16UnderscoredProto01_A6Proto3PAAE04fromC9Extension10takesElem2y0G0Qz_tF::SYNTHESIZED::s:16UnderscoredProto1CC", + key.original_usr: "s:16UnderscoredProto01_A6Proto3PAAE04fromC9Extension10takesElem2y0G0Qz_tF", + key.offset: 1360, + key.length: 50, + key.fully_annotated_decl: "func fromProto3Extension(takesElem2: U)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesElem2", + key.name: "takesElem2", + key.offset: 1408, + key.length: 1 + } + ] + } + ] + }, + { + key.kind: source.lang.swift.decl.extension.class, + key.offset: 1414, + key.length: 56, + key.fully_annotated_decl: "extension C", + key.extends: { + key.kind: source.lang.swift.ref.class, + key.name: "C", + key.usr: "s:16UnderscoredProto1CC" + }, + key.entities: [ + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromDeprecatedProtoExtension()", + key.usr: "s:16UnderscoredProto01_aB0PAAE014fromDeprecatedB9ExtensionyyF::SYNTHESIZED::s:16UnderscoredProto1CC", + key.original_usr: "s:16UnderscoredProto01_aB0PAAE014fromDeprecatedB9ExtensionyyF", + key.offset: 1433, + key.length: 35, + key.fully_annotated_decl: "func fromDeprecatedProtoExtension()" + } + ], + key.attributes: [ + { + key.kind: source.lang.swift.attribute.availability, + key.is_deprecated: 1 + } + ], + key.is_deprecated: 1 + }, + { + key.kind: source.lang.swift.decl.extension.class, + key.generic_requirements: [ + { + key.description: "U : Hashable" + } + ], + key.offset: 1472, + key.length: 110, + key.fully_annotated_decl: "extension C where U : Hashable", + key.extends: { + key.kind: source.lang.swift.ref.class, + key.name: "C", + key.usr: "s:16UnderscoredProto1CC" + }, + key.entities: [ + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromProto4Extension(takesElem2IfHashable:)", + key.usr: "s:16UnderscoredProto01_A6Proto4PAASH5Elem2RpzrlE04fromC9Extension05takesD10IfHashableyAE_tF::SYNTHESIZED::s:16UnderscoredProto1CC", + key.original_usr: "s:16UnderscoredProto01_A6Proto4PAASH5Elem2RpzrlE04fromC9Extension05takesD10IfHashableyAE_tF", + key.offset: 1510, + key.length: 70, + key.fully_annotated_decl: "func fromProto4Extension(takesElem2IfHashable: U)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesElem2IfHashable", + key.name: "takesElem2IfHashable", + key.offset: 1578, + key.length: 1 + } + ] + } + ] + }, + { + key.kind: source.lang.swift.decl.struct, + key.name: "D", + key.usr: "s:16UnderscoredProto1DV", + key.generic_params: [ + { + key.name: "T" + }, + { + key.name: "U" + } + ], + key.offset: 1584, + key.length: 70, + key.fully_annotated_decl: "struct D<T, U>", + key.entities: [ + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromD(takesT:takesU:)", + key.usr: "s:16UnderscoredProto1DV5fromD6takesT0D1Uyx_q_tF", + key.offset: 1606, + key.length: 46, + key.fully_annotated_decl: "func fromD(takesT: T, takesU: U)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesT", + key.name: "takesT", + key.offset: 1632, + key.length: 1 + }, + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesU", + key.name: "takesU", + key.offset: 1650, + key.length: 1 + } + ] + } + ] + }, + { + key.kind: source.lang.swift.decl.extension.struct, + key.generic_requirements: [ + { + key.description: "T : Equatable" + } + ], + key.offset: 1656, + key.length: 59, + key.fully_annotated_decl: "extension D : _SomeProto where T : Equatable", + key.conforms: [ + { + key.kind: source.lang.swift.ref.protocol, + key.name: "_SomeProto", + key.usr: "s:16UnderscoredProto05_SomeB0P" + } + ], + key.extends: { + key.kind: source.lang.swift.ref.struct, + key.name: "D", + key.usr: "s:16UnderscoredProto1DV" + }, + key.entities: [ + { + key.kind: source.lang.swift.decl.typealias, + key.name: "Item", + key.usr: "s:16UnderscoredProto1DVAASQRzrlE4Itema", + key.offset: 1695, + key.length: 18, + key.fully_annotated_decl: "typealias Item = T", + key.conforms: [ + { + key.kind: source.lang.swift.ref.associatedtype, + key.name: "Item", + key.usr: "s:16UnderscoredProto05_SomeB0P4ItemQa" + } + ] + } + ] + }, + { + key.kind: source.lang.swift.decl.extension.struct, + key.generic_requirements: [ + { + key.description: "T : Other1" + }, + { + key.description: "T : Equatable" + } + ], + key.offset: 1717, + key.length: 135, + key.fully_annotated_decl: "extension D where T : Other1, T : Equatable", + key.extends: { + key.kind: source.lang.swift.ref.struct, + key.name: "D", + key.usr: "s:16UnderscoredProto1DV" + }, + key.entities: [ + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "fromSomeProtoExtensionSplitConditions(takesItemIfOther1:)", + key.usr: "s:16UnderscoredProto05_SomeB0PA2A6Other14ItemRpzrlE04fromcB24ExtensionSplitConditions05takese2IfD0yAF_tF::SYNTHESIZED::s:16UnderscoredProto1DV", + key.original_usr: "s:16UnderscoredProto05_SomeB0PA2A6Other14ItemRpzrlE04fromcB24ExtensionSplitConditions05takese2IfD0yAF_tF", + key.offset: 1768, + key.length: 82, + key.fully_annotated_decl: "func fromSomeProtoExtensionSplitConditions(takesItemIfOther1: T)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "takesItemIfOther1", + key.name: "takesItemIfOther1", + key.offset: 1848, + key.length: 1 + } + ] + } + ] + }, + { + key.kind: source.lang.swift.decl.protocol, + key.name: "Other1", + key.usr: "s:16UnderscoredProto6Other1P", + key.offset: 1854, + key.length: 19, + key.fully_annotated_decl: "protocol Other1" + } +] diff --git a/test/SourceKit/Inputs/UnderscoredProto.swiftinterface b/test/SourceKit/Inputs/UnderscoredProto.swiftinterface new file mode 100644 index 0000000000000..ba812ee128cba --- /dev/null +++ b/test/SourceKit/Inputs/UnderscoredProto.swiftinterface @@ -0,0 +1,101 @@ +// swift-interface-format-version: 1.0 +// swift-module-flags: -swift-version 5 -enable-library-evolution -module-name UnderscoredProto + +public protocol _UnderscoredProto {} +public protocol _UnderscoredProto2 { + associatedtype Elem +} + +public extension _UnderscoredProto { + func fromProtoExtension() +} + +public extension _UnderscoredProto2 { + func fromProto2Extension(takesElem: Elem) +} + +@available(*, deprecated, message: "") +public extension _UnderscoredProto { + func fromDeprecatedProtoExtension(){} +} + +public extension _UnderscoredProto2 where Elem == String { + func fromConditionalProto2Extension(takesElemIfString: Elem) +} + +@available(*, deprecated, message: "") +public extension _UnderscoredProto2 where Elem == Int { + func fromDeprecatedConditionalProto2Extension(takesElemInt: Elem) +} + +public struct A { + public func fromA(takesT: T) +} + +extension A { + public func fromAExtension(takesT: T) +} + +extension A : _UnderscoredProto {} + +extension A : _UnderscoredProto2 where T == String { + public typealias Elem = Int + public func fromAConditionalExtension(takesTIfString: T) +} + +public class B: _UnderscoredProto { + public func fromB(takesT: T) +} + +extension B: _UnderscoredProto2 { + public typealias Elem = String +} + +public class C: B where U: Equatable { + public func fromC(takesUIfEquatable: U) +} + +public protocol _UnderscoredProto3 { + associatedtype Elem1 + associatedtype Elem2 +} +extension _UnderscoredProto3 { + public func fromProto3Extension(takesElem1: Elem1) + public func fromProto3Extension(takesElem2: Elem2) +} + +public protocol _UnderscoredProto4: _UnderscoredProto3 where Elem2: Equatable {} +extension _UnderscoredProto4 { + public func fromProto4Extension(takesElem2IfEquatable: Elem2) +} + +extension _UnderscoredProto4 where Elem2: Hashable { + public func fromProto4Extension(takesElem2IfHashable: Elem2) +} + +extension C: _UnderscoredProto4 { + public typealias Elem1 = V + public typealias Elem2 = U + public func fromCConditionlExtension(takesU: U) +} + + +public struct D { + public func fromD(takesT: T, takesU: U) +} + +public protocol Other1 {} +public protocol _SomeProto { + associatedtype Item +} + +extension _SomeProto where Item: Other1 { + public func fromSomeProtoExtensionSplitConditions(takesItemIfOther1: Item) +} + +extension D: _SomeProto where T: Equatable { + public typealias Item = T + +} + + diff --git a/tools/SourceKit/lib/SwiftLang/SwiftDocSupport.cpp b/tools/SourceKit/lib/SwiftLang/SwiftDocSupport.cpp index e9749ad813e70..13dd679595455 100644 --- a/tools/SourceKit/lib/SwiftLang/SwiftDocSupport.cpp +++ b/tools/SourceKit/lib/SwiftLang/SwiftDocSupport.cpp @@ -260,7 +260,9 @@ struct SourceTextInfo { } // end anonymous namespace -static void initDocGenericParams(const Decl *D, DocEntityInfo &Info) { +static void initDocGenericParams(const Decl *D, DocEntityInfo &Info, + TypeOrExtensionDecl SynthesizedTarget, + bool IsSynthesizedExt) { auto *GC = D->getAsGenericContext(); if (!GC) return; @@ -276,36 +278,107 @@ static void initDocGenericParams(const Decl *D, DocEntityInfo &Info) { if (ParentSig && ParentSig->isEqual(GenericSig)) return; + + // If we have a synthesized target, map from its base type into the this + // declaration's innermost type context, or if we're dealing with the + // synthesized extention itself rather than a member, into its extended + // nominal (the extension's own requirements shouldn't be considered in the + // substitution). + SubstitutionMap SubMap; + Type BaseType; + if (SynthesizedTarget) { + BaseType = SynthesizedTarget.getBaseNominal()->getDeclaredInterfaceType(); + if (!BaseType->isExistentialType()) { + DeclContext *DC; + if (IsSynthesizedExt) + DC = cast(D)->getExtendedNominal(); + else + DC = D->getInnermostDeclContext()->getInnermostTypeContext(); + auto *M = DC->getParentModule(); + SubMap = BaseType->getContextSubstitutionMap(M, DC); + } + } + + auto SubstTypes = [&](Type Ty) { + return Ty.subst(SubMap, SubstFlags::DesugarMemberTypes); + }; + // FIXME: Not right for extensions of nested generic types if (GC->isGeneric()) { for (auto *GP : GenericSig->getInnermostGenericParams()) { if (GP->getDecl()->isImplicit()) continue; + Type TypeToPrint = GP; + if (!SubMap.empty()) { + if (auto ArgTy = SubstTypes(GP)) { + if (!ArgTy->hasError()) { + // Ignore parameter that aren't generic after substitution + if (!ArgTy->is() && !ArgTy->isTypeParameter()) + continue; + TypeToPrint = ArgTy; + } + } + } DocGenericParam Param; - Param.Name = std::string(GP->getName()); + Param.Name = TypeToPrint->getString(); Info.GenericParams.push_back(Param); } } - ProtocolDecl *proto = nullptr; + ProtocolDecl *Proto = nullptr; if (auto *typeDC = GC->getInnermostTypeContext()) - proto = typeDC->getSelfProtocolDecl(); + Proto = typeDC->getSelfProtocolDecl(); - for (auto &Req : GenericSig->getRequirements()) { - // Skip protocol Self requirement. - if (proto && + for (auto Req: GenericSig->getRequirements()) { + if (Proto && Req.getKind() == RequirementKind::Conformance && - Req.getFirstType()->isEqual(proto->getSelfInterfaceType()) && - Req.getSecondType()->getAnyNominal() == proto) + Req.getFirstType()->isEqual(Proto->getSelfInterfaceType()) && + Req.getSecondType()->getAnyNominal() == Proto) continue; + auto First = Req.getFirstType(); + Type Second; + if (Req.getKind() != RequirementKind::Layout) + Second = Req.getSecondType(); + + if (!SubMap.empty()) { + Type SubFirst = SubstTypes(First); + if (!SubFirst->hasError()) + First = SubFirst; + if (Second) { + Type SubSecond = SubstTypes(Second); + if (!SubSecond->hasError()) + Second = SubSecond; + // Ignore requirements that don't involve a generic after substitution. + if (!(First->is() || First->isTypeParameter()) && + !(Second->is() || Second->isTypeParameter())) + continue; + } + } + std::string ReqStr; - PrintOptions Opts; llvm::raw_string_ostream OS(ReqStr); - Req.print(OS, Opts); + PrintOptions Opts; + if (Req.getKind() != RequirementKind::Layout) { + Requirement(Req.getKind(), First, Second).print(OS, Opts); + } else { + Requirement(Req.getKind(), First, Req.getLayoutConstraint()).print(OS, Opts); + } OS.flush(); Info.GenericRequirements.push_back(std::move(ReqStr)); } + + if (IsSynthesizedExt) { + // If there's a conditional conformance on the base type that 'enabled' this + // extension, we need to print its requirements too. + if (auto *EnablingExt = dyn_cast(SynthesizedTarget.getAsDecl())) { + if (EnablingExt->isConstrainedExtension()) { + initDocGenericParams(EnablingExt, Info, + /*Target=*/EnablingExt->getExtendedNominal(), + /*IsSynthesizedExtension*/false); + } + } + } } static bool initDocEntityInfo(const Decl *D, @@ -376,29 +449,12 @@ static bool initDocEntityInfo(const Decl *D, llvm::SmallString<128> DocBuffer; { llvm::raw_svector_ostream OSS(DocBuffer); - ide::getDocumentationCommentAsXML(D, OSS); + ide::getDocumentationCommentAsXML(D, OSS, SynthesizedTarget); } - StringRef DocRef = (StringRef)DocBuffer; - if (IsSynthesizedExtension && - DocRef.find("") != StringRef::npos) { - StringRef Open = "extension "; - assert(DocRef.find(Open) != StringRef::npos); - auto FirstPart = DocRef.substr(0, DocRef.find(Open) + (Open).size()); - auto SecondPart = DocRef.substr(FirstPart.size()); - auto ExtendedName = ((const ExtensionDecl*)D)->getExtendedNominal() - ->getName().str(); - assert(SecondPart.startswith(ExtendedName)); - SecondPart = SecondPart.substr(ExtendedName.size()); - llvm::SmallString<128> UpdatedDocBuffer; - UpdatedDocBuffer.append(FirstPart); - UpdatedDocBuffer.append(SynthesizedTargetNTD->getName().str()); - UpdatedDocBuffer.append(SecondPart); - OS << UpdatedDocBuffer; - } else - OS << DocBuffer; + OS << DocBuffer; } - initDocGenericParams(D, Info); + initDocGenericParams(D, Info, SynthesizedTarget, IsSynthesizedExtension); llvm::raw_svector_ostream LocalizationKeyOS(Info.LocalizationKey); ide::getLocalizationKey(D, LocalizationKeyOS); @@ -410,14 +466,13 @@ static bool initDocEntityInfo(const Decl *D, VD, SynthesizedTarget, OS); else SwiftLangSupport::printFullyAnnotatedDeclaration(VD, Type(), OS); - } else if (auto *E = dyn_cast(D)) { - if (auto Sig = E->getGenericSignature()) { - // The extension under printing is potentially part of a synthesized - // extension. Thus it's hard to print the fully annotated decl. We - // need to at least print the generic signature here. - llvm::raw_svector_ostream OS(Info.FullyAnnotatedGenericSig); - SwiftLangSupport::printFullyAnnotatedGenericReq(Sig, OS); - } + } else if (auto *ED = dyn_cast(D)) { + llvm::raw_svector_ostream OS(Info.FullyAnnotatedDecl); + if (SynthesizedTarget) + SwiftLangSupport::printFullyAnnotatedSynthesizedDeclaration( + ED, SynthesizedTarget, OS); + else + SwiftLangSupport::printFullyAnnotatedDeclaration(ED, OS); } if (DeclaringModForCrossImport) { diff --git a/tools/SourceKit/lib/SwiftLang/SwiftLangSupport.h b/tools/SourceKit/lib/SwiftLang/SwiftLangSupport.h index ed616892598fb..54ec93e8cc149 100644 --- a/tools/SourceKit/lib/SwiftLang/SwiftLangSupport.h +++ b/tools/SourceKit/lib/SwiftLang/SwiftLangSupport.h @@ -420,14 +420,18 @@ class SwiftLangSupport : public LangSupport { swift::Type BaseTy, llvm::raw_ostream &OS); + static void printFullyAnnotatedDeclaration(const swift::ExtensionDecl *VD, + llvm::raw_ostream &OS); + static void printFullyAnnotatedSynthesizedDeclaration(const swift::ValueDecl *VD, swift::TypeOrExtensionDecl Target, llvm::raw_ostream &OS); static void - printFullyAnnotatedGenericReq(const swift::GenericSignature Sig, - llvm::raw_ostream &OS); + printFullyAnnotatedSynthesizedDeclaration(const swift::ExtensionDecl *ED, + swift::TypeOrExtensionDecl Target, + llvm::raw_ostream &OS); /// Print 'description' or 'sourcetext' the given \p VD to \p OS. If /// \p usePlaceholder is \c true, call argument positions are substituted with diff --git a/tools/SourceKit/lib/SwiftLang/SwiftSourceDocInfo.cpp b/tools/SourceKit/lib/SwiftLang/SwiftSourceDocInfo.cpp index af7daf2e74257..0b24a343de4ec 100644 --- a/tools/SourceKit/lib/SwiftLang/SwiftSourceDocInfo.cpp +++ b/tools/SourceKit/lib/SwiftLang/SwiftSourceDocInfo.cpp @@ -457,12 +457,11 @@ void SwiftLangSupport::printFullyAnnotatedDeclaration(const ValueDecl *VD, VD->print(Printer, PO); } -void SwiftLangSupport::printFullyAnnotatedGenericReq( - const swift::GenericSignature Sig, llvm::raw_ostream &OS) { - assert(Sig); +void SwiftLangSupport::printFullyAnnotatedDeclaration(const ExtensionDecl *ED, + raw_ostream &OS) { FullyAnnotatedDeclarationPrinter Printer(OS); PrintOptions PO = PrintOptions::printQuickHelpDeclaration(); - Sig->print(Printer, PO); + ED->print(Printer, PO); } void SwiftLangSupport::printFullyAnnotatedSynthesizedDeclaration( @@ -475,6 +474,15 @@ void SwiftLangSupport::printFullyAnnotatedSynthesizedDeclaration( VD->print(Printer, PO); } +void SwiftLangSupport::printFullyAnnotatedSynthesizedDeclaration( + const swift::ExtensionDecl *ED, TypeOrExtensionDecl Target, + llvm::raw_ostream &OS) { + FullyAnnotatedDeclarationPrinter Printer(OS); + PrintOptions PO = PrintOptions::printQuickHelpDeclaration(); + PO.initForSynthesizedExtension(Target); + ED->print(Printer, PO); +} + template void walkRelatedDecls(const ValueDecl *VD, const FnTy &Fn) { llvm::SmallDenseMap NamesSeen;