diff --git a/lib/AST/ASTPrinter.cpp b/lib/AST/ASTPrinter.cpp index 00227137febec..61c9007309540 100644 --- a/lib/AST/ASTPrinter.cpp +++ b/lib/AST/ASTPrinter.cpp @@ -2777,8 +2777,13 @@ void PrintAST::printEnumElement(EnumElementDecl *elt) { ->castTo() ->getParams(); } + + // @escaping is not valid in enum element position, even though the + // attribute is implicitly added. Ignore it when printing the parameters. + Options.ExcludeAttrList.push_back(TAK_escaping); printParameterList(PL, params, /*isAPINameByDefault*/true); + Options.ExcludeAttrList.pop_back(); } auto *raw = elt->getRawValueExpr(); @@ -3371,7 +3376,11 @@ class TypePrinter : public TypeVisitor { if (!Options.FullyQualifiedTypesIfAmbiguous) return false; - Decl *D = T->getAnyGeneric(); + Decl *D; + if (auto *TAT = dyn_cast(T)) + D = TAT->getDecl(); + else + D = T->getAnyGeneric(); // If we cannot find the declaration, be extra careful and print // the type qualified. @@ -3503,6 +3512,8 @@ class TypePrinter : public TypeVisitor { if (auto parent = T->getParent()) { visit(parent); Printer << "."; + } else if (shouldPrintFullyQualified(T)) { + printModuleContext(T); } printTypeDeclName(T); @@ -4020,6 +4031,10 @@ class TypePrinter : public TypeVisitor { } void visitProtocolType(ProtocolType *T) { + if (shouldPrintFullyQualified(T)) { + printModuleContext(T); + } + printTypeDeclName(T); } diff --git a/test/IDE/print_swift_module.swift b/test/IDE/print_swift_module.swift index 94d15ca777c87..5be55e3f1b3d8 100644 --- a/test/IDE/print_swift_module.swift +++ b/test/IDE/print_swift_module.swift @@ -28,7 +28,7 @@ public func returnsAlias() -> Alias { // CHECK1: /// Alias comment // CHECK1-NEXT: typealias Alias = (T, T) -// CHECK1: public class C1 : P1 { +// CHECK1: public class C1 : print_swift_module.P1 { // CHECK1-NEXT: /// foo1 comment from P1 // CHECK1-NEXT: public func foo1() // CHECK1-NEXT: /// foo2 comment from C1 @@ -43,4 +43,4 @@ public func returnsAlias() -> Alias { // CHECK1-NEXT: } // CHECK1: /// returnsAlias() comment -// CHECK1-NEXT: func returnsAlias() -> Alias +// CHECK1-NEXT: func returnsAlias() -> print_swift_module.Alias diff --git a/test/IDE/print_synthesized_extensions.swift b/test/IDE/print_synthesized_extensions.swift index 2cfc0335f2a69..55a42676c393e 100644 --- a/test/IDE/print_synthesized_extensions.swift +++ b/test/IDE/print_synthesized_extensions.swift @@ -255,7 +255,7 @@ extension S13 : P5 { // CHECK4-NEXT: public func S9IntFunc() // CHECK4-NEXT: } -// CHECK5: public struct S10 : P1 { +// CHECK5: public struct S10 : print_synthesized_extensions.P1 { // CHECK5-NEXT: public typealias T1 = print_synthesized_extensions.S9<Int> // CHECK5-NEXT: public typealias T2 = print_synthesized_extensions.S9<Int> // CHECK5-NEXT: public func f1(t: print_synthesized_extensions.S10.T1) -> print_synthesized_extensions.S10.T1 @@ -275,7 +275,7 @@ extension S13 : P5 { // CHECK7-NEXT: public func P4Func2() // CHECK7-NEXT: } -// CHECK8: public struct S4<T> : P1 { +// CHECK8: public struct S4<T> : print_synthesized_extensions.P1 { // CHECK8-NEXT: public typealias T1 = Int // CHECK8-NEXT: public typealias T2 = Int // CHECK8-NEXT: public func f1(t: print_synthesized_extensions.S4.T1) -> print_synthesized_extensions.S4.T1 @@ -283,7 +283,7 @@ extension S13 : P5 { // CHECK8-NEXT: public func p1IntFunc(i: Int) -> Int // CHECK8-NEXT: } -// CHECK9: public struct S6<T> : P1 { +// CHECK9: public struct S6<T> : print_synthesized_extensions.P1 { // CHECK9-NEXT: public typealias T1 = print_synthesized_extensions.S5 // CHECK9-NEXT: public typealias T2 = print_synthesized_extensions.S5 // CHECK9-NEXT: public func f1(t: print_synthesized_extensions.S6.T1) -> print_synthesized_extensions.S6.T1 @@ -300,7 +300,7 @@ extension S13 : P5 { // CHECK10-NEXT: public func ef5(t: S5) // CHECK10-NEXT: } -// CHECK11: public struct S12 : P5 { +// CHECK11: public struct S12 : print_synthesized_extensions.P5 { // CHECK11-NEXT: public typealias T1 = Int // CHECK11-NEXT: /// This is picked // CHECK11-NEXT: public func foo1() diff --git a/test/IDE/print_types.swift b/test/IDE/print_types.swift index cbcf290a49c84..b54b9a1fb0db8 100644 --- a/test/IDE/print_types.swift +++ b/test/IDE/print_types.swift @@ -6,7 +6,7 @@ typealias MyInt = Int // CHECK: TypeAliasDecl '''MyInt''' MyInt.Type{{$}} -// FULL: TypeAliasDecl '''MyInt''' MyInt.Type{{$}} +// FULL: TypeAliasDecl '''MyInt''' swift_ide_test.MyInt.Type{{$}} func testVariableTypes(_ param: Int, param2: inout Double) { // CHECK: FuncDecl '''testVariableTypes''' (Int, inout Double) -> (){{$}} @@ -52,7 +52,7 @@ func testVariableTypes(_ param: Int, param2: inout Double) { var typealias1 : MyInt = 42 // CHECK: VarDecl '''typealias1''' MyInt{{$}} // CHECK: IntegerLiteralExpr:[[@LINE-2]] '''42''' Builtin.IntLiteral{{$}} -// FULL: VarDecl '''typealias1''' MyInt{{$}} +// FULL: VarDecl '''typealias1''' swift_ide_test.MyInt{{$}} // FULL: IntegerLiteralExpr:[[@LINE-4]] '''42''' Builtin.IntLiteral{{$}} _ = typealias1 ; typealias1 = 1 @@ -77,11 +77,11 @@ func testFuncType2() -> () {} func testFuncType3() -> Void {} // CHECK: FuncDecl '''testFuncType3''' () -> Void{{$}} -// FULL: FuncDecl '''testFuncType3''' () -> Void{{$}} +// FULL: FuncDecl '''testFuncType3''' () -> Swift.Void{{$}} func testFuncType4() -> MyInt {} // CHECK: FuncDecl '''testFuncType4''' () -> MyInt{{$}} -// FULL: FuncDecl '''testFuncType4''' () -> MyInt{{$}} +// FULL: FuncDecl '''testFuncType4''' () -> swift_ide_test.MyInt{{$}} func testFuncType5() -> (Int) {} // CHECK: FuncDecl '''testFuncType5''' () -> (Int){{$}} @@ -111,7 +111,7 @@ struct GenericStruct {} func testInGenericFunc1(_ a: A, b: B, c: C) { // CHECK: FuncDecl '''testInGenericFunc1''' (A, b: B, c: C) -> (){{$}} -// FULL: FuncDecl '''testInGenericFunc1''' (A, b: B, c: C) -> (){{$}} +// FULL: FuncDecl '''testInGenericFunc1''' (A, b: B, c: C) -> (){{$}} var a1 = a _ = a1; a1 = a @@ -136,5 +136,5 @@ func testInGenericFunc1(_ a: func testInGenericFunc2(_: T, _: U) where T.Qux == U.Qux {} // CHECK: FuncDecl '''testInGenericFunc2''' (T, U) -> (){{$}} -// FULL: FuncDecl '''testInGenericFunc2''' (T, U) -> (){{$}} +// FULL: FuncDecl '''testInGenericFunc2''' (T, U) -> (){{$}} diff --git a/test/ParseableInterface/ParseStdlib.swiftinterface b/test/ParseableInterface/ParseStdlib.swiftinterface index 9072c2dfce0b9..ba16186a50dca 100644 --- a/test/ParseableInterface/ParseStdlib.swiftinterface +++ b/test/ParseableInterface/ParseStdlib.swiftinterface @@ -8,5 +8,5 @@ // RUN: %target-swift-frontend -build-module-from-parseable-interface -o %t/ParseStdlib.swiftmodule %s // RUN: %target-swift-ide-test -print-module -module-to-print ParseStdlib -I %t -source-filename x -print-interface | %FileCheck %s -// CHECK: func test(_: Int42) +// CHECK: func test(_: Builtin.Int42) public func test(_: Builtin.Int42) {} diff --git a/test/ParseableInterface/access-filter.swift b/test/ParseableInterface/access-filter.swift index b499ddaab098a..5b5649018ffe9 100644 --- a/test/ParseableInterface/access-filter.swift +++ b/test/ParseableInterface/access-filter.swift @@ -197,12 +197,12 @@ extension GenericStruct where InternalStruct_BAD == T { @usableFromInline internal func constrainedToInternalStruct2_BAD() {} } -// CHECK: extension GenericStruct where T : PublicProto {{[{]$}} +// CHECK: extension GenericStruct where T : main.PublicProto {{[{]$}} extension GenericStruct where T: PublicProto { // CHECK-NEXT: public func constrainedToPublicProto(){{$}} public func constrainedToPublicProto() {} } // CHECK-NEXT: {{^[}]$}} -// CHECK: extension GenericStruct where T : UFIProto {{[{]$}} +// CHECK: extension GenericStruct where T : main.UFIProto {{[{]$}} extension GenericStruct where T: UFIProto { // CHECK-NEXT: @usableFromInline{{$}} // CHECK-NEXT: internal func constrainedToUFIProto(){{$}} @@ -245,12 +245,12 @@ internal typealias InternalAlias_BAD = PublicAliasBase internal typealias ReallyInternalAlias_BAD = ReallyInternalAliasBase_BAD -// CHECK: extension GenericStruct where T == PublicAlias {{[{]$}} +// CHECK: extension GenericStruct where T == main.PublicAlias {{[{]$}} extension GenericStruct where T == PublicAlias { // CHECK-NEXT: public func constrainedToPublicAlias(){{$}} public func constrainedToPublicAlias() {} } // CHECK-NEXT: {{^[}]$}} -// CHECK: extension GenericStruct where T == UFIAlias {{[{]$}} +// CHECK: extension GenericStruct where T == main.UFIAlias {{[{]$}} extension GenericStruct where T == UFIAlias { // CHECK-NEXT: @usableFromInline{{$}} // CHECK-NEXT: internal func constrainedToUFIAlias(){{$}} diff --git a/test/ParseableInterface/conformances.swift b/test/ParseableInterface/conformances.swift index 566cf6d083ddd..f006bf9fbc726 100644 --- a/test/ParseableInterface/conformances.swift +++ b/test/ParseableInterface/conformances.swift @@ -33,23 +33,23 @@ public struct A1: PublicProto, PrivateProto {} // NEGATIVE-NOT: extension conformances.A2 public struct A2: PrivateProto, PublicProto {} // CHECK: public struct A3 { -// CHECK-END: extension conformances.A3 : PublicProto {} +// CHECK-END: extension conformances.A3 : conformances.PublicProto {} public struct A3: PublicProto & PrivateProto {} // CHECK: public struct A4 { -// CHECK-END: extension conformances.A4 : PublicProto {} +// CHECK-END: extension conformances.A4 : conformances.PublicProto {} public struct A4: PrivateProto & PublicProto {} public protocol PublicBaseProto {} private protocol PrivateSubProto: PublicBaseProto {} // CHECK: public struct B1 { -// CHECK-END: extension conformances.B1 : PublicBaseProto {} +// CHECK-END: extension conformances.B1 : conformances.PublicBaseProto {} public struct B1: PrivateSubProto {} // CHECK: public struct B2 : PublicBaseProto { // NEGATIVE-NOT: extension conformances.B2 public struct B2: PublicBaseProto, PrivateSubProto {} // CHECK: public struct B3 { -// CHECK-END: extension conformances.B3 : PublicBaseProto {} +// CHECK-END: extension conformances.B3 : conformances.PublicBaseProto {} public struct B3: PublicBaseProto & PrivateSubProto {} // CHECK: public struct B4 : PublicBaseProto { // CHECK: extension B4 { @@ -87,26 +87,26 @@ public struct OuterGeneric { public protocol ConditionallyConformed {} public protocol ConditionallyConformedAgain {} -// CHECK-END: extension conformances.OuterGeneric : ConditionallyConformed, ConditionallyConformedAgain where T : _ConstraintThatIsNotPartOfTheAPIOfThisLibrary {} +// CHECK-END: extension conformances.OuterGeneric : conformances.ConditionallyConformed, conformances.ConditionallyConformedAgain where T : _ConstraintThatIsNotPartOfTheAPIOfThisLibrary {} extension OuterGeneric: ConditionallyConformed where T: PrivateProto {} extension OuterGeneric: ConditionallyConformedAgain where T == PrivateProto {} -// CHECK-END: extension conformances.OuterGeneric.Inner : PublicBaseProto {} -// CHECK-END: extension conformances.OuterGeneric.Inner : ConditionallyConformed, ConditionallyConformedAgain where T : _ConstraintThatIsNotPartOfTheAPIOfThisLibrary {} +// CHECK-END: extension conformances.OuterGeneric.Inner : conformances.PublicBaseProto {} +// CHECK-END: extension conformances.OuterGeneric.Inner : conformances.ConditionallyConformed, conformances.ConditionallyConformedAgain where T : _ConstraintThatIsNotPartOfTheAPIOfThisLibrary {} extension OuterGeneric.Inner: ConditionallyConformed where T: PrivateProto {} extension OuterGeneric.Inner: ConditionallyConformedAgain where T == PrivateProto {} private protocol AnotherPrivateSubProto: PublicBaseProto {} // CHECK: public struct C1 { -// CHECK-END: extension conformances.C1 : PublicBaseProto {} +// CHECK-END: extension conformances.C1 : conformances.PublicBaseProto {} public struct C1: PrivateSubProto, AnotherPrivateSubProto {} // CHECK: public struct C2 { -// CHECK-END: extension conformances.C2 : PublicBaseProto {} +// CHECK-END: extension conformances.C2 : conformances.PublicBaseProto {} public struct C2: PrivateSubProto & AnotherPrivateSubProto {} // CHECK: public struct C3 { // CHECK: extension C3 { -// CHECK-END: extension conformances.C3 : PublicBaseProto {} +// CHECK-END: extension conformances.C3 : conformances.PublicBaseProto {} public struct C3: PrivateSubProto {} extension C3: AnotherPrivateSubProto {} @@ -120,10 +120,10 @@ public struct D1: PublicSubProto, PrivateSubProto {} // NEGATIVE-NOT: extension conformances.D2 public struct D2: PrivateSubProto, PublicSubProto {} // CHECK: public struct D3 { -// CHECK-END: extension conformances.D3 : PublicBaseProto, PublicSubProto {} +// CHECK-END: extension conformances.D3 : conformances.PublicBaseProto, conformances.PublicSubProto {} public struct D3: PrivateSubProto & PublicSubProto {} // CHECK: public struct D4 { -// CHECK-END: extension conformances.D4 : APublicSubProto, PublicBaseProto {} +// CHECK-END: extension conformances.D4 : conformances.APublicSubProto, conformances.PublicBaseProto {} public struct D4: APublicSubProto & PrivateSubProto {} // CHECK: public struct D5 { // CHECK: extension D5 : PublicSubProto { @@ -139,33 +139,33 @@ extension D6: PrivateSubProto {} private typealias PrivateProtoAlias = PublicProto // CHECK: public struct E1 { -// CHECK-END: extension conformances.E1 : PublicProto {} +// CHECK-END: extension conformances.E1 : conformances.PublicProto {} public struct E1: PrivateProtoAlias {} private typealias PrivateSubProtoAlias = PrivateSubProto // CHECK: public struct F1 { -// CHECK-END: extension conformances.F1 : PublicBaseProto {} +// CHECK-END: extension conformances.F1 : conformances.PublicBaseProto {} public struct F1: PrivateSubProtoAlias {} private protocol ClassConstrainedProto: PublicProto, AnyObject {} public class G1: ClassConstrainedProto {} // CHECK: public class G1 { -// CHECK-END: extension conformances.G1 : PublicProto {} +// CHECK-END: extension conformances.G1 : conformances.PublicProto {} public class Base {} private protocol BaseConstrainedProto: Base, PublicProto {} public class H1: Base, ClassConstrainedProto {} // CHECK: public class H1 : Base { -// CHECK-END: extension conformances.H1 : PublicProto {} +// CHECK-END: extension conformances.H1 : conformances.PublicProto {} public struct MultiGeneric {} extension MultiGeneric: PublicProto where U: PrivateProto {} // CHECK: public struct MultiGeneric { -// CHECK-END: extension conformances.MultiGeneric : PublicProto where T : _ConstraintThatIsNotPartOfTheAPIOfThisLibrary {} +// CHECK-END: extension conformances.MultiGeneric : conformances.PublicProto where T : _ConstraintThatIsNotPartOfTheAPIOfThisLibrary {} internal struct InternalImpl_BAD: PrivateSubProto {} diff --git a/test/ParseableInterface/inlinable-function.swift b/test/ParseableInterface/inlinable-function.swift index f22e63d2e1581..b6b7cedafa02f 100644 --- a/test/ParseableInterface/inlinable-function.swift +++ b/test/ParseableInterface/inlinable-function.swift @@ -4,7 +4,10 @@ // RUN: %target-swift-frontend -emit-module -o /dev/null -merge-modules %t/Test.swiftmodule -disable-objc-attr-requires-foundation-module -emit-parseable-module-interface-path %t/TestFromModule.swiftinterface -module-name Test // RUN: %FileCheck %s --check-prefix FROMMODULE --check-prefix CHECK < %t/TestFromModule.swiftinterface -// CHECK: public struct Foo : Hashable { +// FIXME: These shouldn't be different, or we'll get different output from +// WMO and non-WMO builds. +// FROMSOURCE-LABEL: public struct Foo : Hashable { +// FROMMODULE-LABEL: public struct Foo : Swift.Hashable { public struct Foo: Hashable { // CHECK: public var inlinableGetPublicSet: [[INT:(Swift.)?Int]] { public var inlinableGetPublicSet: Int { diff --git a/test/SILGen/witness_accessibility_multi.swift b/test/SILGen/witness_accessibility_multi.swift index 8f0c8beb80323..90b7899323c23 100644 --- a/test/SILGen/witness_accessibility_multi.swift +++ b/test/SILGen/witness_accessibility_multi.swift @@ -15,7 +15,7 @@ import witness_accessibility_other // CHECK-LABEL: sil [ossa] @$s27witness_accessibility_multi22callsPublicRequirement1sy0a1_B6_other1SV_tF : $@convention(thin) (S) -> () public func callsPublicRequirement(s: S) { - // CHECK: witness_method $S, #P.publicRequirement!1 : (Self) -> () -> () : $@convention(witness_method: P) <τ_0_0 where τ_0_0 : P> (@in_guaranteed τ_0_0) -> () + // CHECK: witness_method $S, #P.publicRequirement!1 : (Self) -> () -> () : $@convention(witness_method: P) <τ_0_0 where τ_0_0 : P> (@in_guaranteed τ_0_0) -> () s.publicRequirement() // CHECK: function_ref @$s27witness_accessibility_other1QPAAE19internalRequirementyyF : $@convention(method) <τ_0_0 where τ_0_0 : Q> (@in_guaranteed τ_0_0) -> () diff --git a/test/SourceKit/DocSupport/doc_swift_module.swift.response b/test/SourceKit/DocSupport/doc_swift_module.swift.response index 221f283a98588..6c2a4f5e32ad5 100644 --- a/test/SourceKit/DocSupport/doc_swift_module.swift.response +++ b/test/SourceKit/DocSupport/doc_swift_module.swift.response @@ -1,6 +1,6 @@ import SwiftOnoneSupport -class C1 : Prot { +class C1 : cake.Prot { typealias Element = Int @@ -26,13 +26,13 @@ class C1 : Prot { subscript(_ index: Int) -> Int { get } } -extension C1 : P4 { +extension C1 : cake.P4 { func C1foo() struct C1S1 { - func C1S1foo(a a: P4) + func C1S1foo(a a: cake.P4) } } @@ -100,7 +100,7 @@ protocol P5 { associatedtype Element } -protocol P6 : P5 { +protocol P6 : cake.P5 { } extension P6 { @@ -155,12 +155,12 @@ extension S1.SE { static func != (_ lhs: S1.SE, _ rhs: S1.SE) -> Bool } -struct S2 : P3 { +struct S2 : cake.P3 { typealias T = cake.S2 } -struct S3 : P5 where Wrapped : P5 { +struct S3 : cake.P5 where Wrapped : cake.P5 { typealias Element = Wrapped.Element } @@ -170,7 +170,7 @@ extension S3 { var null: Wrapped.Element? { get } } -func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Element == Int +func genfoo(x ix: T1, y iy: T2) where T1 : cake.Prot, T2 : cake.C1, T1.Element == Int [ @@ -194,1495 +194,1535 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.offset: 32, key.length: 2 }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 37, + key.length: 4 + }, { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", key.usr: "s:4cake4ProtP", - key.offset: 37, + key.offset: 42, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 49, + key.offset: 54, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 59, + key.offset: 64, key.length: 7 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 69, + key.offset: 74, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 78, + key.offset: 83, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 82, + key.offset: 87, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 85, + key.offset: 90, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 94, + key.offset: 99, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 99, + key.offset: 104, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 110, + key.offset: 115, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 115, + key.offset: 120, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 120, + key.offset: 125, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 123, + key.offset: 128, key.length: 2 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 127, + key.offset: 132, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 132, + key.offset: 137, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 135, + key.offset: 140, key.length: 2 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 139, + key.offset: 144, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 149, + key.offset: 154, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 159, + key.offset: 164, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 161, + key.offset: 166, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 168, + key.offset: 173, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 176, + key.offset: 181, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 182, + key.offset: 187, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 193, + key.offset: 198, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 203, + key.offset: 208, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 209, + key.offset: 214, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Float", key.usr: "s:Sf", - key.offset: 212, + key.offset: 217, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 222, + key.offset: 227, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 228, + key.offset: 233, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 239, + key.offset: 244, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 244, + key.offset: 249, key.length: 7 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 254, + key.offset: 259, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 269, + key.offset: 274, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 274, + key.offset: 279, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 291, + key.offset: 296, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 296, + key.offset: 301, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 310, + key.offset: 315, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 315, + key.offset: 320, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 327, + key.offset: 332, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 337, + key.offset: 342, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 339, + key.offset: 344, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 346, + key.offset: 351, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 354, + key.offset: 359, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 360, + key.offset: 365, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 369, + key.offset: 374, key.length: 9 }, { key.kind: source.lang.swift.ref.class, key.name: "C1", key.usr: "s:4cake2C1C", - key.offset: 379, + key.offset: 384, key.length: 2 }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 389, + key.length: 4 + }, { key.kind: source.lang.swift.ref.protocol, key.name: "P4", key.usr: "s:4cake2P4P", - key.offset: 384, + key.offset: 394, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 394, + key.offset: 404, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 399, + key.offset: 409, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 412, + key.offset: 422, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 419, + key.offset: 429, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 435, + key.offset: 445, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 440, + key.offset: 450, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 448, + key.offset: 458, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 450, + key.offset: 460, key.length: 1 }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 463, + key.length: 4 + }, { key.kind: source.lang.swift.ref.protocol, key.name: "P4", key.usr: "s:4cake2P4P", - key.offset: 453, + key.offset: 468, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 466, + key.offset: 481, key.length: 9 }, { key.kind: source.lang.swift.ref.class, key.name: "C1", key.usr: "s:4cake2C1C", - key.offset: 476, + key.offset: 491, key.length: 2 }, { key.kind: source.lang.swift.ref.enum, key.name: "C1Cases", key.usr: "s:4cake2C1C0B5CasesO", - key.offset: 479, + key.offset: 494, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 494, + key.offset: 509, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 505, + key.offset: 520, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 509, + key.offset: 524, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 520, + key.offset: 535, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 526, + key.offset: 541, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 537, + key.offset: 552, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 548, + key.offset: 563, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 553, + key.offset: 568, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 558, + key.offset: 573, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 563, + key.offset: 578, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 571, + key.offset: 586, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Hasher", key.usr: "s:s6HasherV", - key.offset: 577, + key.offset: 592, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 590, + key.offset: 605, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 597, + key.offset: 612, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 606, + key.offset: 621, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 608, + key.offset: 623, key.length: 3 }, { key.kind: source.lang.swift.ref.class, key.name: "C1", key.usr: "s:4cake2C1C", - key.offset: 613, + key.offset: 628, key.length: 2 }, { key.kind: source.lang.swift.ref.enum, key.name: "C1Cases", key.usr: "s:4cake2C1C0B5CasesO", - key.offset: 616, + key.offset: 631, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 625, + key.offset: 640, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 627, + key.offset: 642, key.length: 3 }, { key.kind: source.lang.swift.ref.class, key.name: "C1", key.usr: "s:4cake2C1C", - key.offset: 632, + key.offset: 647, key.length: 2 }, { key.kind: source.lang.swift.ref.enum, key.name: "C1Cases", key.usr: "s:4cake2C1C0B5CasesO", - key.offset: 635, + key.offset: 650, key.length: 7 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 647, + key.offset: 662, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 655, + key.offset: 670, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 661, + key.offset: 676, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 666, + key.offset: 681, key.length: 4 }, { key.kind: source.lang.swift.ref.class, key.name: "C1", key.usr: "s:4cake2C1C", - key.offset: 671, + key.offset: 686, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 681, + key.offset: 696, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 686, + key.offset: 701, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 699, + key.offset: 714, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 704, + key.offset: 719, key.length: 7 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 714, + key.offset: 729, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 729, + key.offset: 744, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 734, + key.offset: 749, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 751, + key.offset: 766, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 756, + key.offset: 771, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 770, + key.offset: 785, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 775, + key.offset: 790, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 787, + key.offset: 802, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 797, + key.offset: 812, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 799, + key.offset: 814, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 806, + key.offset: 821, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 814, + key.offset: 829, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 820, + key.offset: 835, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 829, + key.offset: 844, key.length: 9 }, { key.kind: source.lang.swift.ref.class, key.name: "C2", key.usr: "s:4cake2C2C", - key.offset: 839, + key.offset: 854, key.length: 2 }, { key.kind: source.lang.swift.ref.protocol, key.name: "P4", key.usr: "s:4cake2P4P", - key.offset: 844, + key.offset: 859, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 854, + key.offset: 869, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 859, + key.offset: 874, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 872, + key.offset: 887, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 879, + key.offset: 894, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 895, + key.offset: 910, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 900, + key.offset: 915, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 908, + key.offset: 923, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 910, + key.offset: 925, key.length: 1 }, { key.kind: source.lang.swift.ref.protocol, key.name: "P4", key.usr: "s:4cake2P4P", - key.offset: 913, + key.offset: 928, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 926, + key.offset: 941, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 931, + key.offset: 946, key.length: 6 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 940, + key.offset: 955, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 951, + key.offset: 966, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 956, + key.offset: 971, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 966, + key.offset: 981, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 977, + key.offset: 992, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 981, + key.offset: 996, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 992, + key.offset: 1007, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 998, + key.offset: 1013, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1009, + key.offset: 1024, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1020, + key.offset: 1035, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1025, + key.offset: 1040, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 1030, + key.offset: 1045, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 1035, + key.offset: 1050, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1043, + key.offset: 1058, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Hasher", key.usr: "s:s6HasherV", - key.offset: 1049, + key.offset: 1064, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1062, + key.offset: 1077, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1069, + key.offset: 1084, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 1078, + key.offset: 1093, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 1080, + key.offset: 1095, key.length: 3 }, { key.kind: source.lang.swift.ref.enum, key.name: "MyEnum", key.usr: "s:4cake6MyEnumO", - key.offset: 1085, + key.offset: 1100, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 1093, + key.offset: 1108, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 1095, + key.offset: 1110, key.length: 3 }, { key.kind: source.lang.swift.ref.enum, key.name: "MyEnum", key.usr: "s:4cake6MyEnumO", - key.offset: 1100, + key.offset: 1115, key.length: 6 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 1111, + key.offset: 1126, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1119, + key.offset: 1134, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1125, + key.offset: 1140, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1134, + key.offset: 1149, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1144, + key.offset: 1159, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1150, + key.offset: 1165, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1159, + key.offset: 1174, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1164, + key.offset: 1179, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1174, + key.offset: 1189, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1183, + key.offset: 1198, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1193, + key.offset: 1208, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1208, + key.offset: 1223, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1213, + key.offset: 1228, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1222, + key.offset: 1237, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1230, + key.offset: 1245, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1239, + key.offset: 1254, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1249, + key.offset: 1264, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1264, + key.offset: 1279, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1275, + key.offset: 1290, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1284, + key.offset: 1299, key.length: 2 }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1304, + key.length: 4 + }, { key.kind: source.lang.swift.ref.protocol, key.name: "P5", key.usr: "s:4cake2P5P", - key.offset: 1289, + key.offset: 1309, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1297, + key.offset: 1317, key.length: 9 }, { key.kind: source.lang.swift.ref.protocol, key.name: "P6", key.usr: "s:4cake2P6P", - key.offset: 1307, + key.offset: 1327, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1317, + key.offset: 1337, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1321, + key.offset: 1341, key.length: 4 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:4cake2P6P4Selfxmfp", - key.offset: 1327, + key.offset: 1347, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 1332, + key.offset: 1352, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1343, + key.offset: 1363, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1352, + key.offset: 1372, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1361, + key.offset: 1381, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1373, + key.offset: 1393, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1388, + key.offset: 1408, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1401, + key.offset: 1421, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1405, + key.offset: 1425, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 1408, + key.offset: 1428, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1414, + key.offset: 1434, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1425, + key.offset: 1445, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1430, + key.offset: 1450, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1441, + key.offset: 1461, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1446, + key.offset: 1466, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1456, + key.offset: 1476, key.length: 9 }, { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", key.usr: "s:4cake4ProtP", - key.offset: 1466, + key.offset: 1486, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1478, + key.offset: 1498, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1483, + key.offset: 1503, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1495, + key.offset: 1515, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 1505, + key.offset: 1525, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 1507, + key.offset: 1527, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 1514, + key.offset: 1534, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 1522, + key.offset: 1542, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1528, + key.offset: 1548, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1537, + key.offset: 1557, key.length: 9 }, { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", key.usr: "s:4cake4ProtP", - key.offset: 1547, + key.offset: 1567, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1552, + key.offset: 1572, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:4cake4ProtPAASi7ElementRtzrlE4Selfxmfp", - key.offset: 1558, + key.offset: 1578, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 1563, + key.offset: 1583, key.length: 7 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 1574, + key.offset: 1594, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1585, + key.offset: 1605, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1590, + key.offset: 1610, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1602, + key.offset: 1622, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1609, + key.offset: 1629, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1619, + key.offset: 1639, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1624, + key.offset: 1644, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1638, + key.offset: 1658, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1643, + key.offset: 1663, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1654, + key.offset: 1674, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1659, + key.offset: 1679, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1670, + key.offset: 1690, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1675, + key.offset: 1695, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1688, + key.offset: 1708, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1693, + key.offset: 1713, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1705, + key.offset: 1725, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1712, + key.offset: 1732, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1726, + key.offset: 1746, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1730, + key.offset: 1750, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 1733, + key.offset: 1753, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1746, + key.offset: 1766, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "S1", key.usr: "s:4cake2S1V", - key.offset: 1756, + key.offset: 1776, key.length: 2 }, { key.kind: source.lang.swift.ref.enum, key.name: "SE", key.usr: "s:4cake2S1V2SEO", - key.offset: 1759, + key.offset: 1779, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1769, + key.offset: 1789, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1776, + key.offset: 1796, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 1785, + key.offset: 1805, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 1787, + key.offset: 1807, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "S1", key.usr: "s:4cake2S1V", - key.offset: 1792, + key.offset: 1812, key.length: 2 }, { key.kind: source.lang.swift.ref.enum, key.name: "SE", key.usr: "s:4cake2S1V2SEO", - key.offset: 1795, + key.offset: 1815, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 1799, + key.offset: 1819, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 1801, + key.offset: 1821, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "S1", key.usr: "s:4cake2S1V", - key.offset: 1806, + key.offset: 1826, key.length: 2 }, { key.kind: source.lang.swift.ref.enum, key.name: "SE", key.usr: "s:4cake2S1V2SEO", - key.offset: 1809, + key.offset: 1829, key.length: 2 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 1816, + key.offset: 1836, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1824, + key.offset: 1844, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1831, + key.offset: 1851, key.length: 2 }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1856, + key.length: 4 + }, { key.kind: source.lang.swift.ref.protocol, key.name: "P3", key.usr: "s:4cake2P3P", - key.offset: 1836, + key.offset: 1861, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1846, + key.offset: 1871, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1856, + key.offset: 1881, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 1860, + key.offset: 1885, key.length: 4 }, { key.kind: source.lang.swift.ref.struct, key.name: "S2", key.usr: "s:4cake2S2V", - key.offset: 1865, + key.offset: 1890, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1871, + key.offset: 1896, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1878, + key.offset: 1903, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1881, + key.offset: 1906, key.length: 7 }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1917, + key.length: 4 + }, { key.kind: source.lang.swift.ref.protocol, key.name: "P5", key.usr: "s:4cake2P5P", - key.offset: 1892, + key.offset: 1922, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1895, + key.offset: 1925, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 1901, + key.offset: 1931, key.length: 7 }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 1941, + key.length: 4 + }, { key.kind: source.lang.swift.ref.protocol, key.name: "P5", key.usr: "s:4cake2P5P", - key.offset: 1911, + key.offset: 1946, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1921, + key.offset: 1956, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1931, + key.offset: 1966, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 1941, + key.offset: 1976, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 1949, + key.offset: 1984, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1960, + key.offset: 1995, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "S3", key.usr: "s:4cake2S3V", - key.offset: 1970, + key.offset: 2005, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1980, + key.offset: 2015, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1984, + key.offset: 2019, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 1990, + key.offset: 2025, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 1998, + key.offset: 2033, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2009, + key.offset: 2044, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2018, + key.offset: 2053, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2023, + key.offset: 2058, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2030, + key.offset: 2065, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2034, + key.offset: 2069, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2038, + key.offset: 2073, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2040, + key.offset: 2075, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2044, + key.offset: 2079, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2048, + key.offset: 2083, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2050, + key.offset: 2085, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2054, + key.offset: 2089, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2058, + key.offset: 2093, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2064, + key.offset: 2099, key.length: 2 }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 2104, + key.length: 4 + }, { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", key.usr: "s:4cake4ProtP", - key.offset: 2069, + key.offset: 2109, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2075, + key.offset: 2115, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2080, + key.offset: 2120, key.length: 4 }, { key.kind: source.lang.swift.ref.class, key.name: "C1", key.usr: "s:4cake2C1C", - key.offset: 2085, + key.offset: 2125, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2089, + key.offset: 2129, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 2092, + key.offset: 2132, key.length: 7 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 2103, + key.offset: 2143, key.length: 3 } ] @@ -1692,7 +1732,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "C1", key.usr: "s:4cake2C1C", key.offset: 26, - key.length: 341, + key.length: 346, key.fully_annotated_decl: "class C1 : Prot", key.conforms: [ { @@ -1706,7 +1746,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.typealias, key.name: "Element", key.usr: "s:4cake2C1C7Elementa", - key.offset: 49, + key.offset: 54, key.length: 23, key.fully_annotated_decl: "typealias C1.Element = Int", key.conforms: [ @@ -1731,7 +1771,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.instance, key.name: "p", key.usr: "s:4cake2C1C1pSivp", - key.offset: 78, + key.offset: 83, key.length: 10, key.fully_annotated_decl: "var p: Int", key.conforms: [ @@ -1746,7 +1786,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo()", key.usr: "s:4cake2C1C3fooyyF", - key.offset: 94, + key.offset: 99, key.length: 10, key.fully_annotated_decl: "func foo()", key.conforms: [ @@ -1761,7 +1801,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo1(i0:i1:)", key.usr: "s:4cake2C1C4foo12i02i1ySin_SihtF", - key.offset: 110, + key.offset: 115, key.length: 33, key.fully_annotated_decl: "func foo1(i0: Int, i1: Int)", key.entities: [ @@ -1769,14 +1809,14 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.local, key.keyword: "i0", key.name: "i0", - key.offset: 127, + key.offset: 132, key.length: 3 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "i1", key.name: "i1", - key.offset: 139, + key.offset: 144, key.length: 3 } ] @@ -1785,7 +1825,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.function.subscript, key.name: "subscript(_:)", key.usr: "s:4cake2C1CyS2icip", - key.offset: 149, + key.offset: 154, key.length: 38, key.fully_annotated_decl: "subscript(index: Int) -> Int { get }", key.entities: [ @@ -1793,7 +1833,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "index", - key.offset: 168, + key.offset: 173, key.length: 3 } ] @@ -1802,7 +1842,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.function.subscript, key.name: "subscript(index:)", key.usr: "s:4cake2C1C5indexSiSf_tcip", - key.offset: 193, + key.offset: 198, key.length: 40, key.fully_annotated_decl: "subscript(index i: Float) -> Int { get }", key.entities: [ @@ -1810,7 +1850,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.local, key.keyword: "index", key.name: "i", - key.offset: 212, + key.offset: 217, key.length: 5 } ] @@ -1819,7 +1859,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.enum, key.name: "C1Cases", key.usr: "s:4cake2C1C0B5CasesO", - key.offset: 239, + key.offset: 244, key.length: 46, key.fully_annotated_decl: "enum C1Cases : Int", key.inherits: [ @@ -1834,7 +1874,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.enumelement, key.name: "case1", key.usr: "s:4cake2C1C0B5CasesO5case1yA2EmF", - key.offset: 269, + key.offset: 274, key.length: 10, key.fully_annotated_decl: "case case1" } @@ -1845,7 +1885,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "extfoo()", key.usr: "s:4cake4ProtPAASi7ElementRtzrlE6extfooyyF::SYNTHESIZED::s:4cake2C1C", key.original_usr: "s:4cake4ProtPAASi7ElementRtzrlE6extfooyyF", - key.offset: 291, + key.offset: 296, key.length: 13, key.fully_annotated_decl: "func extfoo()" }, @@ -1854,7 +1894,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "foo1()", key.usr: "s:4cake4ProtPAAE4foo1yyF::SYNTHESIZED::s:4cake2C1C", key.original_usr: "s:4cake4ProtPAAE4foo1yyF", - key.offset: 310, + key.offset: 315, key.length: 11, key.fully_annotated_decl: "func foo1()" }, @@ -1863,7 +1903,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "subscript(_:)", key.usr: "s:4cake4ProtPAAEyS2icip::SYNTHESIZED::s:4cake2C1C", key.original_usr: "s:4cake4ProtPAAEyS2icip", - key.offset: 327, + key.offset: 332, key.length: 38, key.fully_annotated_decl: "subscript(index: Int) -> Int { get }", key.entities: [ @@ -1871,7 +1911,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "index", - key.offset: 346, + key.offset: 351, key.length: 3 } ] @@ -1880,8 +1920,8 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen }, { key.kind: source.lang.swift.decl.extension.class, - key.offset: 369, - key.length: 95, + key.offset: 374, + key.length: 105, key.conforms: [ { key.kind: source.lang.swift.ref.protocol, @@ -1899,7 +1939,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.function.method.instance, key.name: "C1foo()", key.usr: "s:4cake2C1C5C1fooyyF", - key.offset: 394, + key.offset: 404, key.length: 12, key.fully_annotated_decl: "func C1foo()" }, @@ -1907,24 +1947,24 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.struct, key.name: "C1S1", key.usr: "s:4cake2C1C0B2S1V", - key.offset: 412, - key.length: 50, + key.offset: 422, + key.length: 55, key.fully_annotated_decl: "struct C1S1", key.entities: [ { key.kind: source.lang.swift.decl.function.method.instance, key.name: "C1S1foo(a:)", key.usr: "s:4cake2C1C0B2S1V0B5S1foo1ayAA2P4_p_tF", - key.offset: 435, - key.length: 21, + key.offset: 445, + key.length: 26, key.fully_annotated_decl: "func C1S1foo(a: P4)", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "a", key.name: "a", - key.offset: 453, - key.length: 2 + key.offset: 463, + key.length: 7 } ] } @@ -1942,7 +1982,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.description: "Self.RawValue : Hashable" } ], - key.offset: 466, + key.offset: 481, key.length: 187, key.fully_annotated_generic_signature: "<Self where Self : Hashable, Self : RawRepresentable, Self.RawValue : Hashable>", key.extends: { @@ -1956,7 +1996,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "hashValue", key.usr: "s:SYsSHRzSH8RawValueSYRpzrlE04hashB0Sivp::SYNTHESIZED::s:4cake2C1C0B5CasesO", key.original_usr: "s:SYsSHRzSH8RawValueSYRpzrlE04hashB0Sivp", - key.offset: 494, + key.offset: 509, key.length: 37, key.fully_annotated_decl: "@inlinable var hashValue: Int { get }" }, @@ -1965,7 +2005,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "hash(into:)", key.usr: "s:SYsSHRzSH8RawValueSYRpzrlE4hash4intoys6HasherVz_tF::SYNTHESIZED::s:4cake2C1C0B5CasesO", key.original_usr: "s:SYsSHRzSH8RawValueSYRpzrlE4hash4intoys6HasherVz_tF", - key.offset: 537, + key.offset: 552, key.length: 47, key.fully_annotated_decl: "@inlinable func hash(into hasher: inout Hasher)", key.entities: [ @@ -1973,7 +2013,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.local, key.keyword: "into", key.name: "hasher", - key.offset: 577, + key.offset: 592, key.length: 6 } ] @@ -1983,7 +2023,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "!=(_:_:)", key.usr: "s:SQsE2neoiySbx_xtFZ::SYNTHESIZED::s:4cake2C1C0B5CasesO", key.original_usr: "s:SQsE2neoiySbx_xtFZ", - key.offset: 590, + key.offset: 605, key.length: 61, key.fully_annotated_decl: "static func != (lhs: C1.C1Cases, rhs: C1.C1Cases) -> Bool", key.entities: [ @@ -1991,14 +2031,14 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "lhs", - key.offset: 613, + key.offset: 628, key.length: 10 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "rhs", - key.offset: 632, + key.offset: 647, key.length: 10 } ] @@ -2009,7 +2049,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.class, key.name: "C2", key.usr: "s:4cake2C2C", - key.offset: 655, + key.offset: 670, key.length: 172, key.fully_annotated_decl: "class C2 : C1", key.inherits: [ @@ -2024,7 +2064,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.function.method.instance, key.name: "C2foo()", key.usr: "s:4cake2C2C5C2fooyyF", - key.offset: 681, + key.offset: 696, key.length: 12, key.fully_annotated_decl: "func C2foo()" }, @@ -2033,7 +2073,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "C1Cases", key.usr: "s:4cake2C1C0B5CasesO::SYNTHESIZED::s:4cake2C2C", key.original_usr: "s:4cake2C1C0B5CasesO", - key.offset: 699, + key.offset: 714, key.length: 46, key.fully_annotated_decl: "enum C1Cases : Int", key.inherits: [ @@ -2048,7 +2088,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.enumelement, key.name: "case1", key.usr: "s:4cake2C1C0B5CasesO5case1yA2EmF", - key.offset: 729, + key.offset: 744, key.length: 10, key.fully_annotated_decl: "case case1" } @@ -2059,7 +2099,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "extfoo()", key.usr: "s:4cake4ProtPAASi7ElementRtzrlE6extfooyyF::SYNTHESIZED::s:4cake2C2C", key.original_usr: "s:4cake4ProtPAASi7ElementRtzrlE6extfooyyF", - key.offset: 751, + key.offset: 766, key.length: 13, key.fully_annotated_decl: "func extfoo()" }, @@ -2068,7 +2108,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "foo1()", key.usr: "s:4cake4ProtPAAE4foo1yyF::SYNTHESIZED::s:4cake2C2C", key.original_usr: "s:4cake4ProtPAAE4foo1yyF", - key.offset: 770, + key.offset: 785, key.length: 11, key.fully_annotated_decl: "func foo1()" }, @@ -2077,7 +2117,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "subscript(_:)", key.usr: "s:4cake4ProtPAAEyS2icip::SYNTHESIZED::s:4cake2C2C", key.original_usr: "s:4cake4ProtPAAEyS2icip", - key.offset: 787, + key.offset: 802, key.length: 38, key.fully_annotated_decl: "subscript(index: Int) -> Int { get }", key.entities: [ @@ -2085,7 +2125,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "index", - key.offset: 806, + key.offset: 821, key.length: 3 } ] @@ -2094,7 +2134,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen }, { key.kind: source.lang.swift.decl.extension.class, - key.offset: 829, + key.offset: 844, key.length: 95, key.conforms: [ { @@ -2114,7 +2154,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "C1foo()", key.usr: "s:4cake2C1C5C1fooyyF::SYNTHESIZED::s:4cake2C2C", key.original_usr: "s:4cake2C1C5C1fooyyF", - key.offset: 854, + key.offset: 869, key.length: 12, key.fully_annotated_decl: "func C1foo()" }, @@ -2123,7 +2163,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "C1S1", key.usr: "s:4cake2C1C0B2S1V::SYNTHESIZED::s:4cake2C2C", key.original_usr: "s:4cake2C1C0B2S1V", - key.offset: 872, + key.offset: 887, key.length: 50, key.fully_annotated_decl: "struct C1S1", key.entities: [ @@ -2131,7 +2171,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.function.method.instance, key.name: "C1S1foo(a:)", key.usr: "s:4cake2C1C0B2S1V0B5S1foo1ayAA2P4_p_tF", - key.offset: 895, + key.offset: 910, key.length: 21, key.fully_annotated_decl: "func C1S1foo(a: P4)", key.entities: [ @@ -2139,7 +2179,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.local, key.keyword: "a", key.name: "a", - key.offset: 913, + key.offset: 928, key.length: 2 } ] @@ -2152,7 +2192,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.enum, key.name: "MyEnum", key.usr: "s:4cake6MyEnumO", - key.offset: 926, + key.offset: 941, key.length: 191, key.fully_annotated_decl: "enum MyEnum : Int", key.inherits: [ @@ -2167,7 +2207,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.enumelement, key.name: "Blah", key.usr: "s:4cake6MyEnumO4BlahyA2CmF", - key.offset: 951, + key.offset: 966, key.length: 9, key.fully_annotated_decl: "case Blah" }, @@ -2176,7 +2216,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "hashValue", key.usr: "s:SYsSHRzSH8RawValueSYRpzrlE04hashB0Sivp::SYNTHESIZED::s:4cake6MyEnumO", key.original_usr: "s:SYsSHRzSH8RawValueSYRpzrlE04hashB0Sivp", - key.offset: 966, + key.offset: 981, key.length: 37, key.fully_annotated_decl: "@inlinable var hashValue: Int { get }" }, @@ -2185,7 +2225,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "hash(into:)", key.usr: "s:SYsSHRzSH8RawValueSYRpzrlE4hash4intoys6HasherVz_tF::SYNTHESIZED::s:4cake6MyEnumO", key.original_usr: "s:SYsSHRzSH8RawValueSYRpzrlE4hash4intoys6HasherVz_tF", - key.offset: 1009, + key.offset: 1024, key.length: 47, key.fully_annotated_decl: "@inlinable func hash(into hasher: inout Hasher)", key.entities: [ @@ -2193,7 +2233,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.local, key.keyword: "into", key.name: "hasher", - key.offset: 1049, + key.offset: 1064, key.length: 6 } ] @@ -2203,7 +2243,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "!=(_:_:)", key.usr: "s:SQsE2neoiySbx_xtFZ::SYNTHESIZED::s:4cake6MyEnumO", key.original_usr: "s:SQsE2neoiySbx_xtFZ", - key.offset: 1062, + key.offset: 1077, key.length: 53, key.fully_annotated_decl: "static func != (lhs: MyEnum, rhs: MyEnum) -> Bool", key.entities: [ @@ -2211,14 +2251,14 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "lhs", - key.offset: 1085, + key.offset: 1100, key.length: 6 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "rhs", - key.offset: 1100, + key.offset: 1115, key.length: 6 } ] @@ -2229,7 +2269,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.protocol, key.name: "P2", key.usr: "c:@M@cake@objc(pl)P2", - key.offset: 1119, + key.offset: 1134, key.length: 53, key.fully_annotated_decl: "@objc protocol P2", key.entities: [ @@ -2237,7 +2277,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo1()", key.usr: "c:@M@cake@objc(pl)P2(im)foo1", - key.offset: 1144, + key.offset: 1159, key.length: 26, key.fully_annotated_decl: "@objc optional func foo1()", key.is_optional: 1 @@ -2248,7 +2288,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.protocol, key.name: "P3", key.usr: "s:4cake2P3P", - key.offset: 1174, + key.offset: 1189, key.length: 37, key.fully_annotated_decl: "protocol P3", key.entities: [ @@ -2256,7 +2296,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.associatedtype, key.name: "T", key.usr: "s:4cake2P3P1TQa", - key.offset: 1193, + key.offset: 1208, key.length: 16, key.fully_annotated_decl: "associatedtype T" } @@ -2266,7 +2306,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.protocol, key.name: "P4", key.usr: "s:4cake2P4P", - key.offset: 1213, + key.offset: 1228, key.length: 15, key.fully_annotated_decl: "protocol P4" }, @@ -2274,7 +2314,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.protocol, key.name: "P5", key.usr: "s:4cake2P5P", - key.offset: 1230, + key.offset: 1245, key.length: 43, key.fully_annotated_decl: "protocol P5", key.entities: [ @@ -2282,7 +2322,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.associatedtype, key.name: "Element", key.usr: "s:4cake2P5P7ElementQa", - key.offset: 1249, + key.offset: 1264, key.length: 22, key.fully_annotated_decl: "associatedtype Element" } @@ -2292,8 +2332,8 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.protocol, key.name: "P6", key.usr: "s:4cake2P6P", - key.offset: 1275, - key.length: 20, + key.offset: 1290, + key.length: 25, key.fully_annotated_decl: "protocol P6 : P5", key.conforms: [ { @@ -2305,7 +2345,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen }, { key.kind: source.lang.swift.decl.extension.protocol, - key.offset: 1297, + key.offset: 1317, key.length: 53, key.fully_annotated_generic_signature: "<Self where Self : P6>", key.extends: { @@ -2318,7 +2358,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.instance, key.name: "null", key.usr: "s:4cake2P6PAAE4null7ElementQzSgvp", - key.offset: 1317, + key.offset: 1337, key.length: 31, key.fully_annotated_decl: "var null: Self.Element? { get }" } @@ -2328,7 +2368,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.protocol, key.name: "Prot", key.usr: "s:4cake4ProtP", - key.offset: 1352, + key.offset: 1372, key.length: 102, key.fully_annotated_decl: "protocol Prot", key.entities: [ @@ -2336,7 +2376,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.associatedtype, key.name: "Element", key.usr: "s:4cake4ProtP7ElementQa", - key.offset: 1373, + key.offset: 1393, key.length: 22, key.fully_annotated_decl: "associatedtype Element" }, @@ -2344,7 +2384,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.instance, key.name: "p", key.usr: "s:4cake4ProtP1pSivp", - key.offset: 1401, + key.offset: 1421, key.length: 18, key.fully_annotated_decl: "var p: Int { get }" }, @@ -2352,7 +2392,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo()", key.usr: "s:4cake4ProtP3fooyyF", - key.offset: 1425, + key.offset: 1445, key.length: 10, key.fully_annotated_decl: "func foo()" }, @@ -2360,7 +2400,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo1()", key.usr: "s:4cake4ProtP4foo1yyF", - key.offset: 1441, + key.offset: 1461, key.length: 11, key.fully_annotated_decl: "func foo1()" } @@ -2368,7 +2408,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen }, { key.kind: source.lang.swift.decl.extension.protocol, - key.offset: 1456, + key.offset: 1476, key.length: 79, key.fully_annotated_generic_signature: "<Self where Self : Prot>", key.extends: { @@ -2382,7 +2422,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "foo1()", key.usr: "s:4cake4ProtPAAE4foo1yyF", key.default_implementation_of: "s:4cake4ProtP4foo1yyF", - key.offset: 1478, + key.offset: 1498, key.length: 11, key.fully_annotated_decl: "func foo1()" }, @@ -2390,7 +2430,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.function.subscript, key.name: "subscript(_:)", key.usr: "s:4cake4ProtPAAEyS2icip", - key.offset: 1495, + key.offset: 1515, key.length: 38, key.fully_annotated_decl: "subscript(index: Int) -> Int { get }", key.entities: [ @@ -2398,7 +2438,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "index", - key.offset: 1514, + key.offset: 1534, key.length: 3 } ] @@ -2412,7 +2452,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.description: "Self.Element == Int" } ], - key.offset: 1537, + key.offset: 1557, key.length: 63, key.fully_annotated_generic_signature: "<Self where Self : Prot, Self.Element == Int>", key.extends: { @@ -2425,7 +2465,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.function.method.instance, key.name: "extfoo()", key.usr: "s:4cake4ProtPAASi7ElementRtzrlE6extfooyyF", - key.offset: 1585, + key.offset: 1605, key.length: 13, key.fully_annotated_decl: "func extfoo()" } @@ -2435,7 +2475,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.struct, key.name: "S1", key.usr: "s:4cake2S1V", - key.offset: 1602, + key.offset: 1622, key.length: 142, key.fully_annotated_decl: "struct S1", key.entities: [ @@ -2443,7 +2483,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.enum, key.name: "SE", key.usr: "s:4cake2S1V2SEO", - key.offset: 1619, + key.offset: 1639, key.length: 63, key.fully_annotated_decl: "enum S1.SE", key.entities: [ @@ -2451,7 +2491,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.enumelement, key.name: "a", key.usr: "s:4cake2S1V2SEO1ayA2EmF", - key.offset: 1638, + key.offset: 1658, key.length: 6, key.fully_annotated_decl: "case a" }, @@ -2459,7 +2499,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.enumelement, key.name: "b", key.usr: "s:4cake2S1V2SEO1byA2EmF", - key.offset: 1654, + key.offset: 1674, key.length: 6, key.fully_annotated_decl: "case b" }, @@ -2467,7 +2507,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.enumelement, key.name: "c", key.usr: "s:4cake2S1V2SEO1cyA2EmF", - key.offset: 1670, + key.offset: 1690, key.length: 6, key.fully_annotated_decl: "case c" } @@ -2477,7 +2517,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo1()", key.usr: "s:4cake2S1V4foo1yyF", - key.offset: 1688, + key.offset: 1708, key.length: 11, key.fully_annotated_decl: "func foo1()" }, @@ -2485,7 +2525,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.struct, key.name: "S2", key.usr: "s:4cake2S1V2S2V", - key.offset: 1705, + key.offset: 1725, key.length: 37, key.fully_annotated_decl: "struct S2", key.entities: [ @@ -2493,7 +2533,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.instance, key.name: "b", key.usr: "s:4cake2S1V2S2V1bSivp", - key.offset: 1726, + key.offset: 1746, key.length: 10, key.fully_annotated_decl: "let b: Int" } @@ -2503,7 +2543,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen }, { key.kind: source.lang.swift.decl.extension.enum, - key.offset: 1746, + key.offset: 1766, key.length: 76, key.fully_annotated_generic_signature: "<Self where Self : Equatable>", key.extends: { @@ -2517,7 +2557,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "!=(_:_:)", key.usr: "s:SQsE2neoiySbx_xtFZ::SYNTHESIZED::s:4cake2S1V2SEO", key.original_usr: "s:SQsE2neoiySbx_xtFZ", - key.offset: 1769, + key.offset: 1789, key.length: 51, key.fully_annotated_decl: "static func != (lhs: S1.SE, rhs: S1.SE) -> Bool", key.entities: [ @@ -2525,14 +2565,14 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "lhs", - key.offset: 1792, + key.offset: 1812, key.length: 5 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "rhs", - key.offset: 1806, + key.offset: 1826, key.length: 5 } ] @@ -2543,8 +2583,8 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.struct, key.name: "S2", key.usr: "s:4cake2S2V", - key.offset: 1824, - key.length: 45, + key.offset: 1844, + key.length: 50, key.fully_annotated_decl: "struct S2 : P3", key.conforms: [ { @@ -2558,7 +2598,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.typealias, key.name: "T", key.usr: "s:4cake2S2V1Ta", - key.offset: 1846, + key.offset: 1871, key.length: 21, key.fully_annotated_decl: "typealias S2.T = S2", key.conforms: [ @@ -2585,8 +2625,8 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.description: "Wrapped : P5" } ], - key.offset: 1871, - key.length: 87, + key.offset: 1896, + key.length: 97, key.fully_annotated_decl: "struct S3<Wrapped> : P5 where Wrapped : P5", key.conforms: [ { @@ -2600,7 +2640,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.kind: source.lang.swift.decl.typealias, key.name: "Element", key.usr: "s:4cake2S3V7Elementa", - key.offset: 1921, + key.offset: 1956, key.length: 35, key.fully_annotated_decl: "typealias S3<Wrapped>.Element = Wrapped.Element", key.conforms: [ @@ -2615,7 +2655,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen }, { key.kind: source.lang.swift.decl.extension.struct, - key.offset: 1960, + key.offset: 1995, key.length: 56, key.fully_annotated_generic_signature: "<Self where Self : P6>", key.extends: { @@ -2629,7 +2669,7 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.name: "null", key.usr: "s:4cake2P6PAAE4null7ElementQzSgvp::SYNTHESIZED::s:4cake2S3V", key.original_usr: "s:4cake2P6PAAE4null7ElementQzSgvp", - key.offset: 1980, + key.offset: 2015, key.length: 34, key.fully_annotated_decl: "var null: Wrapped.Element? { get }" } @@ -2658,22 +2698,22 @@ func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Elemen key.description: "T1.Element == Int" } ], - key.offset: 2018, - key.length: 88, + key.offset: 2053, + 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: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "ix", - key.offset: 2044, + key.offset: 2079, key.length: 2 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "y", key.name: "iy", - key.offset: 2054, + key.offset: 2089, key.length: 2 } ] diff --git a/test/SourceKit/DocSupport/doc_swift_module1.swift.response b/test/SourceKit/DocSupport/doc_swift_module1.swift.response index a4f9d04a25cfc..1c310d0e35a8b 100644 --- a/test/SourceKit/DocSupport/doc_swift_module1.swift.response +++ b/test/SourceKit/DocSupport/doc_swift_module1.swift.response @@ -1,6 +1,6 @@ import SwiftOnoneSupport -class InitClassImpl : InitProto { +class InitClassImpl : cake1.InitProto { required init(x x: Int) @@ -17,7 +17,7 @@ extension InitProto { init() } -struct InitStructImpl : InitProto { +struct InitStructImpl : cake1.InitProto { init(x x: Int) @@ -37,7 +37,7 @@ protocol P1 { func fooConstraint() } -protocol P2 : P1 { +protocol P2 : cake1.P1 { func bar1() @@ -55,7 +55,7 @@ extension P2 { subscript(_ a: Int) -> Int } -extension P2 where Self : P3 { +extension P2 where Self : cake1.P3 { func fooConstraint() } @@ -70,7 +70,7 @@ extension Dictionary.Keys { func foo() } -extension Dictionary.Keys where Key : P1 { +extension Dictionary.Keys where Key : cake1.P1 { func bar() } @@ -97,566 +97,591 @@ extension Dictionary.Keys where Key : P1 { key.offset: 32, key.length: 13 }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 48, + key.length: 5 + }, { key.kind: source.lang.swift.ref.protocol, key.name: "InitProto", key.usr: "s:5cake19InitProtoP", - key.offset: 48, + key.offset: 54, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 65, + key.offset: 71, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 74, + key.offset: 80, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 79, + key.offset: 85, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 81, + key.offset: 87, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 84, + key.offset: 90, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 94, + key.offset: 100, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 106, + key.offset: 112, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 116, + key.offset: 122, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 125, + key.offset: 131, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 142, + key.offset: 148, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 147, + key.offset: 153, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 149, + key.offset: 155, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 152, + key.offset: 158, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 160, + key.offset: 166, key.length: 9 }, { key.kind: source.lang.swift.ref.protocol, key.name: "InitProto", key.usr: "s:5cake19InitProtoP", - key.offset: 170, + key.offset: 176, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 187, + key.offset: 193, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 197, + key.offset: 203, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 204, + key.offset: 210, key.length: 14 }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 227, + key.length: 5 + }, { key.kind: source.lang.swift.ref.protocol, key.name: "InitProto", key.usr: "s:5cake19InitProtoP", - key.offset: 221, + key.offset: 233, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 238, + key.offset: 250, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 243, + key.offset: 255, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 245, + key.offset: 257, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 248, + key.offset: 260, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 258, + key.offset: 270, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 268, + key.offset: 280, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 277, + key.offset: 289, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 287, + key.offset: 299, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 292, + key.offset: 304, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 304, + key.offset: 316, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 308, + key.offset: 320, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 313, + key.offset: 325, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 319, + key.offset: 331, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 323, + key.offset: 335, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 334, + key.offset: 346, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 339, + key.offset: 351, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 344, + key.offset: 356, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 346, + key.offset: 358, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 349, + key.offset: 361, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 354, + key.offset: 366, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 356, + key.offset: 368, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 359, + key.offset: 371, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 369, + key.offset: 381, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 379, + key.offset: 391, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 381, + key.offset: 393, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 384, + key.offset: 396, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 392, + key.offset: 404, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 398, + key.offset: 410, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 402, + key.offset: 414, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 413, + key.offset: 425, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 418, + key.offset: 430, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 437, + key.offset: 449, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 446, + key.offset: 458, key.length: 2 }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 463, + key.length: 5 + }, { key.kind: source.lang.swift.ref.protocol, key.name: "P1", key.usr: "s:5cake12P1P", - key.offset: 451, + key.offset: 469, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 461, + key.offset: 479, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 466, + key.offset: 484, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 478, + key.offset: 496, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 483, + key.offset: 501, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 493, + key.offset: 511, key.length: 9 }, { key.kind: source.lang.swift.ref.protocol, key.name: "P2", key.usr: "s:5cake12P2P", - key.offset: 503, + key.offset: 521, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 513, + key.offset: 531, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 518, + key.offset: 536, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 530, + key.offset: 548, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 534, + key.offset: 552, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 539, + key.offset: 557, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 548, + key.offset: 566, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 553, + key.offset: 571, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 558, + key.offset: 576, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 560, + key.offset: 578, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 563, + key.offset: 581, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 568, + key.offset: 586, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 570, + key.offset: 588, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 573, + key.offset: 591, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 583, + key.offset: 601, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 593, + key.offset: 611, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 595, + key.offset: 613, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 598, + key.offset: 616, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 606, + key.offset: 624, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 613, + key.offset: 631, key.length: 9 }, { key.kind: source.lang.swift.ref.protocol, key.name: "P2", key.usr: "s:5cake12P2P", - key.offset: 623, + key.offset: 641, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 626, + key.offset: 644, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:5cake12P2PA2A2P3RzrlE4Selfxmfp", - key.offset: 632, + key.offset: 650, key.length: 4 }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 657, + key.length: 5 + }, { key.kind: source.lang.swift.ref.protocol, key.name: "P3", key.usr: "s:5cake12P3P", - key.offset: 639, + key.offset: 663, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 649, + key.offset: 673, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 654, + key.offset: 678, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 673, + key.offset: 697, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 682, + key.offset: 706, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 692, + key.offset: 716, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 697, + key.offset: 721, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 713, + key.offset: 737, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "Dictionary", key.usr: "s:SD", - key.offset: 723, + key.offset: 747, key.length: 10 }, { key.kind: source.lang.swift.ref.struct, key.name: "Keys", key.usr: "s:SD4KeysV", - key.offset: 734, + key.offset: 758, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 746, + key.offset: 770, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 751, + key.offset: 775, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 760, + key.offset: 784, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "Dictionary", key.usr: "s:SD", - key.offset: 770, + key.offset: 794, key.length: 10 }, { key.kind: source.lang.swift.ref.struct, key.name: "Keys", key.usr: "s:SD4KeysV", - key.offset: 781, + key.offset: 805, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 786, + key.offset: 810, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 792, + key.offset: 816, key.length: 3 }, + { + key.kind: source.lang.swift.syntaxtype.typeidentifier, + key.offset: 822, + key.length: 5 + }, { key.kind: source.lang.swift.ref.protocol, key.name: "P1", key.usr: "s:5cake12P1P", - key.offset: 798, + key.offset: 828, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 808, + key.offset: 838, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 813, + key.offset: 843, key.length: 3 } ] @@ -666,7 +691,7 @@ extension Dictionary.Keys where Key : P1 { key.name: "InitClassImpl", key.usr: "s:5cake113InitClassImplC", key.offset: 26, - key.length: 88, + key.length: 94, key.fully_annotated_decl: "class InitClassImpl : InitProto", key.conforms: [ { @@ -680,7 +705,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.function.constructor, key.name: "init(x:)", key.usr: "s:5cake113InitClassImplC1xACSi_tcfc", - key.offset: 65, + key.offset: 71, key.length: 23, key.fully_annotated_decl: "required init(x: Int)", key.conforms: [ @@ -695,7 +720,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", - key.offset: 84, + key.offset: 90, key.length: 3 } ] @@ -705,7 +730,7 @@ extension Dictionary.Keys where Key : P1 { key.name: "init()", key.usr: "s:5cake19InitProtoPAAExycfc::SYNTHESIZED::s:5cake113InitClassImplC", key.original_usr: "s:5cake19InitProtoPAAExycfc", - key.offset: 94, + key.offset: 100, key.length: 18, key.fully_annotated_decl: "convenience init()" } @@ -715,7 +740,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.protocol, key.name: "InitProto", key.usr: "s:5cake19InitProtoP", - key.offset: 116, + key.offset: 122, key.length: 42, key.fully_annotated_decl: "protocol InitProto", key.entities: [ @@ -723,7 +748,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.function.constructor, key.name: "init(x:)", key.usr: "s:5cake19InitProtoP1xxSi_tcfc", - key.offset: 142, + key.offset: 148, key.length: 14, key.fully_annotated_decl: "init(x: Int)", key.entities: [ @@ -731,7 +756,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", - key.offset: 152, + key.offset: 158, key.length: 3 } ] @@ -740,7 +765,7 @@ extension Dictionary.Keys where Key : P1 { }, { key.kind: source.lang.swift.decl.extension.protocol, - key.offset: 160, + key.offset: 166, key.length: 35, key.fully_annotated_generic_signature: "<Self where Self : InitProto>", key.extends: { @@ -753,7 +778,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.function.constructor, key.name: "init()", key.usr: "s:5cake19InitProtoPAAExycfc", - key.offset: 187, + key.offset: 193, key.length: 6, key.fully_annotated_decl: "init()" } @@ -763,8 +788,8 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.struct, key.name: "InitStructImpl", key.usr: "s:5cake114InitStructImplV", - key.offset: 197, - key.length: 69, + key.offset: 203, + key.length: 75, key.fully_annotated_decl: "struct InitStructImpl : InitProto", key.conforms: [ { @@ -778,7 +803,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.function.constructor, key.name: "init(x:)", key.usr: "s:5cake114InitStructImplV1xACSi_tcfc", - key.offset: 238, + key.offset: 250, key.length: 14, key.fully_annotated_decl: "init(x: Int)", key.conforms: [ @@ -793,7 +818,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", - key.offset: 248, + key.offset: 260, key.length: 3 } ] @@ -803,7 +828,7 @@ extension Dictionary.Keys where Key : P1 { key.name: "init()", key.usr: "s:5cake19InitProtoPAAExycfc::SYNTHESIZED::s:5cake114InitStructImplV", key.original_usr: "s:5cake19InitProtoPAAExycfc", - key.offset: 258, + key.offset: 270, key.length: 6, key.fully_annotated_decl: "init()" } @@ -813,7 +838,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.protocol, key.name: "P1", key.usr: "s:5cake12P1P", - key.offset: 268, + key.offset: 280, key.length: 167, key.fully_annotated_decl: "protocol P1", key.entities: [ @@ -821,7 +846,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo1()", key.usr: "s:5cake12P1P4foo1yyF", - key.offset: 287, + key.offset: 299, key.length: 11, key.fully_annotated_decl: "func foo1()" }, @@ -829,7 +854,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.var.instance, key.name: "Ins", key.usr: "s:5cake12P1P3InsSivp", - key.offset: 304, + key.offset: 316, key.length: 24, key.fully_annotated_decl: "var Ins: Int { get set }" }, @@ -837,7 +862,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo2(a:b:)", key.usr: "s:5cake12P1P4foo21a1bySi_SitF", - key.offset: 334, + key.offset: 346, key.length: 29, key.fully_annotated_decl: "func foo2(a: Int, b: Int)", key.entities: [ @@ -845,14 +870,14 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.var.local, key.keyword: "a", key.name: "a", - key.offset: 349, + key.offset: 361, key.length: 3 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "b", key.name: "b", - key.offset: 359, + key.offset: 371, key.length: 3 } ] @@ -861,7 +886,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.function.subscript, key.name: "subscript(_:)", key.usr: "s:5cake12P1PyS2icip", - key.offset: 369, + key.offset: 381, key.length: 38, key.fully_annotated_decl: "subscript(a: Int) -> Int { get set }", key.entities: [ @@ -869,7 +894,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", - key.offset: 384, + key.offset: 396, key.length: 3 } ] @@ -878,7 +903,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooConstraint()", key.usr: "s:5cake12P1P13fooConstraintyyF", - key.offset: 413, + key.offset: 425, key.length: 20, key.fully_annotated_decl: "func fooConstraint()" } @@ -888,8 +913,8 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.protocol, key.name: "P2", key.usr: "s:5cake12P2P", - key.offset: 437, - key.length: 54, + key.offset: 449, + key.length: 60, key.fully_annotated_decl: "protocol P2 : P1", key.conforms: [ { @@ -903,7 +928,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.function.method.instance, key.name: "bar1()", key.usr: "s:5cake12P2P4bar1yyF", - key.offset: 461, + key.offset: 479, key.length: 11, key.fully_annotated_decl: "func bar1()" }, @@ -911,7 +936,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.function.method.instance, key.name: "bar2()", key.usr: "s:5cake12P2P4bar2yyF", - key.offset: 478, + key.offset: 496, key.length: 11, key.fully_annotated_decl: "func bar2()" } @@ -919,7 +944,7 @@ extension Dictionary.Keys where Key : P1 { }, { key.kind: source.lang.swift.decl.extension.protocol, - key.offset: 493, + key.offset: 511, key.length: 118, key.fully_annotated_generic_signature: "<Self where Self : P2>", key.extends: { @@ -933,7 +958,7 @@ extension Dictionary.Keys where Key : P1 { key.name: "foo1()", key.usr: "s:5cake12P2PAAE4foo1yyF", key.default_implementation_of: "s:5cake12P1P4foo1yyF", - key.offset: 513, + key.offset: 531, key.length: 11, key.fully_annotated_decl: "func foo1()" }, @@ -942,7 +967,7 @@ extension Dictionary.Keys where Key : P1 { key.name: "Ins", key.usr: "s:5cake12P2PAAE3InsSivp", key.default_implementation_of: "s:5cake12P1P3InsSivp", - key.offset: 530, + key.offset: 548, key.length: 12, key.fully_annotated_decl: "var Ins: Int { get set }" }, @@ -951,7 +976,7 @@ extension Dictionary.Keys where Key : P1 { key.name: "foo2(a:b:)", key.usr: "s:5cake12P2PAAE4foo21a1bySi_SitF", key.default_implementation_of: "s:5cake12P1P4foo21a1bySi_SitF", - key.offset: 548, + key.offset: 566, key.length: 29, key.fully_annotated_decl: "func foo2(a: Int, b: Int)", key.entities: [ @@ -959,14 +984,14 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.var.local, key.keyword: "a", key.name: "a", - key.offset: 563, + key.offset: 581, key.length: 3 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "b", key.name: "b", - key.offset: 573, + key.offset: 591, key.length: 3 } ] @@ -976,7 +1001,7 @@ extension Dictionary.Keys where Key : P1 { key.name: "subscript(_:)", key.usr: "s:5cake12P2PAAEyS2icip", key.default_implementation_of: "s:5cake12P1PyS2icip", - key.offset: 583, + key.offset: 601, key.length: 26, key.fully_annotated_decl: "subscript(a: Int) -> Int { get set }", key.entities: [ @@ -984,7 +1009,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", - key.offset: 598, + key.offset: 616, key.length: 3 } ] @@ -998,8 +1023,8 @@ extension Dictionary.Keys where Key : P1 { key.description: "Self : P3" } ], - key.offset: 613, - key.length: 58, + key.offset: 631, + key.length: 64, key.fully_annotated_generic_signature: "<Self where Self : P2, Self : P3>", key.extends: { key.kind: source.lang.swift.ref.protocol, @@ -1012,7 +1037,7 @@ extension Dictionary.Keys where Key : P1 { key.name: "fooConstraint()", key.usr: "s:5cake12P2PA2A2P3RzrlE13fooConstraintyyF", key.default_implementation_of: "s:5cake12P1P13fooConstraintyyF", - key.offset: 649, + key.offset: 673, key.length: 20, key.fully_annotated_decl: "func fooConstraint()" } @@ -1022,7 +1047,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.protocol, key.name: "P3", key.usr: "s:5cake12P3P", - key.offset: 673, + key.offset: 697, key.length: 38, key.fully_annotated_decl: "protocol P3", key.entities: [ @@ -1030,7 +1055,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.function.method.instance, key.name: "p3Required()", key.usr: "s:5cake12P3P10p3RequiredyyF", - key.offset: 692, + key.offset: 716, key.length: 17, key.fully_annotated_decl: "func p3Required()" } @@ -1051,7 +1076,7 @@ extension Dictionary.Keys where Key : P1 { key.description: "Key : Hashable" } ], - key.offset: 713, + key.offset: 737, key.length: 45, key.fully_annotated_generic_signature: "<Key, Value where Key : Hashable>", key.extends: { @@ -1064,7 +1089,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo()", key.usr: "s:SD4KeysV5cake1E3fooyyF", - key.offset: 746, + key.offset: 770, key.length: 10, key.fully_annotated_decl: "func foo()" } @@ -1080,8 +1105,8 @@ extension Dictionary.Keys where Key : P1 { key.description: "Key : P1" } ], - key.offset: 760, - key.length: 60, + key.offset: 784, + key.length: 66, key.fully_annotated_generic_signature: "<Key, Value where Key : Hashable, Key : P1>", key.extends: { key.kind: source.lang.swift.ref.struct, @@ -1093,7 +1118,7 @@ extension Dictionary.Keys where Key : P1 { key.kind: source.lang.swift.decl.function.method.instance, key.name: "bar()", key.usr: "s:SD4KeysV5cake1AC2P1RzrlE3baryyF", - key.offset: 808, + key.offset: 838, key.length: 10, key.fully_annotated_decl: "func bar()" } diff --git a/test/api-digester/Outputs/Cake-abi.txt b/test/api-digester/Outputs/Cake-abi.txt index 1aaa9f2ae00f5..0fb4f387b5468 100644 --- a/test/api-digester/Outputs/Cake-abi.txt +++ b/test/api-digester/Outputs/Cake-abi.txt @@ -1,7 +1,7 @@ /* Generic Signature Changes */ cake1: Func P1.P1Constraint() has generic signature change from <τ_0_0 where τ_0_0 : P1, τ_0_0 : P2> to <τ_0_0 where τ_0_0 : P1> -cake1: Protocol P3 has generic signature change from <τ_0_0 : P1, τ_0_0 : P2> to <τ_0_0 : P1, τ_0_0 : P4> +cake1: Protocol P3 has generic signature change from <τ_0_0 : cake.P1, τ_0_0 : cake.P2> to <τ_0_0 : cake.P1, τ_0_0 : cake.P4> /* RawRepresentable Changes */ diff --git a/test/api-digester/Outputs/Cake.txt b/test/api-digester/Outputs/Cake.txt index b415e2c87a9c1..222487ddd24d0 100644 --- a/test/api-digester/Outputs/Cake.txt +++ b/test/api-digester/Outputs/Cake.txt @@ -1,7 +1,7 @@ /* Generic Signature Changes */ cake1: Func P1.P1Constraint() has generic signature change from to -cake1: Protocol P3 has generic signature change from to +cake1: Protocol P3 has generic signature change from to /* RawRepresentable Changes */ diff --git a/test/api-digester/Outputs/cake-abi.json b/test/api-digester/Outputs/cake-abi.json index c728f983eeb08..460f4c0977fac 100644 --- a/test/api-digester/Outputs/cake-abi.json +++ b/test/api-digester/Outputs/cake-abi.json @@ -59,7 +59,7 @@ "declKind": "Protocol", "usr": "s:4cake2P3P", "moduleName": "cake", - "genericSig": "<τ_0_0 : P1, τ_0_0 : P2>", + "genericSig": "<τ_0_0 : cake.P1, τ_0_0 : cake.P2>", "conformances": [ { "kind": "Conformance", @@ -1057,7 +1057,7 @@ "declKind": "Protocol", "usr": "s:4cake4PSubP", "moduleName": "cake", - "genericSig": "<τ_0_0 : PSuper>", + "genericSig": "<τ_0_0 : cake.PSuper>", "conformances": [ { "kind": "Conformance", diff --git a/test/api-digester/Outputs/cake.json b/test/api-digester/Outputs/cake.json index 21cba9468742d..8b5df32a9521a 100644 --- a/test/api-digester/Outputs/cake.json +++ b/test/api-digester/Outputs/cake.json @@ -59,7 +59,7 @@ "declKind": "Protocol", "usr": "s:4cake2P3P", "moduleName": "cake", - "genericSig": "", + "genericSig": "", "conformances": [ { "kind": "Conformance", @@ -1004,7 +1004,7 @@ "declKind": "Protocol", "usr": "s:4cake4PSubP", "moduleName": "cake", - "genericSig": "", + "genericSig": "", "conformances": [ { "kind": "Conformance", diff --git a/test/api-digester/compare-dump.swift b/test/api-digester/compare-dump.swift index 9a2881e394844..1c7de438fc60f 100644 --- a/test/api-digester/compare-dump.swift +++ b/test/api-digester/compare-dump.swift @@ -1,18 +1,19 @@ -// RUN: %empty-directory(%t.mod) +// RUN: %empty-directory(%t.mod1) +// RUN: %empty-directory(%t.mod2) // RUN: %empty-directory(%t.sdk) // RUN: %empty-directory(%t.module-cache) -// RUN: %swift -emit-module -o %t.mod/cake1.swiftmodule %S/Inputs/cake1.swift -parse-as-library -enable-resilience -I %S/Inputs/APINotesLeft %clang-importer-sdk-nosource -// RUN: %swift -emit-module -o %t.mod/cake2.swiftmodule %S/Inputs/cake2.swift -parse-as-library -enable-resilience -I %S/Inputs/APINotesRight %clang-importer-sdk-nosource -// RUN: %api-digester -dump-sdk -module cake1 -o %t.dump1.json -module-cache-path %t.module-cache %clang-importer-sdk-nosource -I %t.mod -I %S/Inputs/APINotesLeft -// RUN: %api-digester -dump-sdk -module cake2 -o %t.dump2.json -module-cache-path %t.module-cache %clang-importer-sdk-nosource -I %t.mod -I %S/Inputs/APINotesRight +// RUN: %swift -emit-module -o %t.mod1/cake.swiftmodule %S/Inputs/cake1.swift -parse-as-library -enable-resilience -I %S/Inputs/APINotesLeft %clang-importer-sdk-nosource +// RUN: %swift -emit-module -o %t.mod2/cake.swiftmodule %S/Inputs/cake2.swift -parse-as-library -enable-resilience -I %S/Inputs/APINotesRight %clang-importer-sdk-nosource +// RUN: %api-digester -dump-sdk -module cake -o - -module-cache-path %t.module-cache %clang-importer-sdk-nosource -I %t.mod1 -I %S/Inputs/APINotesLeft | sed 's/"cake"/"cake1"/' > %t.dump1.json +// RUN: %api-digester -dump-sdk -module cake -o - -module-cache-path %t.module-cache %clang-importer-sdk-nosource -I %t.mod2 -I %S/Inputs/APINotesLeft | sed 's/"cake"/"cake2"/' > %t.dump2.json // RUN: %api-digester -diagnose-sdk -print-module --input-paths %t.dump1.json -input-paths %t.dump2.json -o %t.result // RUN: %clang -E -P -x c %S/Outputs/Cake.txt -o - | sed '/^\s*$/d' > %t.expected // RUN: %clang -E -P -x c %t.result -o - | sed '/^\s*$/d' > %t.result.tmp // RUN: diff -u %t.expected %t.result.tmp -// RUN: %api-digester -dump-sdk -module cake1 -o %t.dump1.json -module-cache-path %t.module-cache %clang-importer-sdk-nosource -I %t.mod -I %S/Inputs/APINotesLeft -abi -// RUN: %api-digester -dump-sdk -module cake2 -o %t.dump2.json -module-cache-path %t.module-cache %clang-importer-sdk-nosource -I %t.mod -I %S/Inputs/APINotesRight -abi +// RUN: %api-digester -dump-sdk -module cake -o - -module-cache-path %t.module-cache %clang-importer-sdk-nosource -I %t.mod1 -I %S/Inputs/APINotesLeft -abi | sed 's/"cake"/"cake1"/' > %t.dump1.json +// RUN: %api-digester -dump-sdk -module cake -o - -module-cache-path %t.module-cache %clang-importer-sdk-nosource -I %t.mod2 -I %S/Inputs/APINotesLeft -abi | sed 's/"cake"/"cake2"/' > %t.dump2.json // RUN: %api-digester -diagnose-sdk -print-module --input-paths %t.dump1.json -input-paths %t.dump2.json -abi -o %t.result // RUN: %clang -E -P -x c %S/Outputs/Cake-abi.txt -o - | sed '/^\s*$/d' > %t.abi.expected