class C1 : Prot { typealias Element = Int var p: Int func foo() subscript(_ index: Int) -> Int { get } subscript(index i: Float) -> Int { get } enum C1Cases : Int { case case1 } func extfoo() func foo1() subscript(_ index: Int) -> Int { get } } class C2 : cake.C1 { func C2foo() enum C1Cases : Int { case case1 } func extfoo() func foo1() subscript(_ index: Int) -> Int { get } } enum MyEnum : Int { case Blah } @objc protocol P2 { @objc optional func foo1() } protocol P3 { associatedtype T } protocol Prot { associatedtype Element var p: Int { get } func foo() func foo1() } extension Prot { func foo1() subscript(_ index: Int) -> Int { get } } extension Prot where Self.Element == Int { func extfoo() } struct S1 { enum SE { case a case b case c } func foo1() struct S2 { let b: Int } } struct S2 : P3 { typealias T = cake.S2 } func genfoo(x ix: T1, y iy: T2) where T1 : Prot, T2 : cake.C1, T1.Element == Int [ { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 1, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 7, key.length: 2 }, { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", key.usr: "s:P4cake4Prot", key.offset: 12, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 24, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 34, key.length: 7 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 44, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 53, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 57, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 60, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 69, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 74, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 85, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 95, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 97, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 97, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 104, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 112, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 118, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 129, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 139, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 145, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 139, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 145, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Float", key.usr: "s:Sf", key.offset: 148, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 158, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 164, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 175, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 180, key.length: 7 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 190, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 205, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 210, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 227, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 232, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 246, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 251, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 263, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 273, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 275, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 275, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 282, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 290, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 296, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 305, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 311, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 316, key.length: 4 }, { key.kind: source.lang.swift.ref.class, key.name: "C1", key.usr: "s:C4cake2C1", key.offset: 321, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 331, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 336, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 349, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 354, key.length: 7 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 364, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 379, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 384, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 401, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 406, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 420, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 425, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 437, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 447, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 449, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 449, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 456, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 464, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 470, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 479, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 484, key.length: 6 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 493, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 504, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 509, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, key.offset: 517, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 523, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 532, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, key.offset: 542, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, key.offset: 548, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 557, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 562, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 572, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 581, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 591, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 606, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 611, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 620, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 632, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 647, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 660, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 664, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 667, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 673, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 684, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 689, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 700, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 705, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 715, key.length: 9 }, { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", key.usr: "s:P4cake4Prot", key.offset: 725, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 737, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 742, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 754, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 764, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 766, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 766, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 773, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 781, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 787, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 796, key.length: 9 }, { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", key.usr: "s:P4cake4Prot", key.offset: 806, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 811, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:te4cakeRxS_4Protwx7ElementzSirS0_4SelfMx", key.offset: 817, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 822, key.length: 7 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 833, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 844, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 849, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 861, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 868, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 878, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 883, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 897, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 902, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 913, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 918, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 929, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 934, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 947, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 952, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 964, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 971, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 985, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 989, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 992, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 1005, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 1012, key.length: 2 }, { key.kind: source.lang.swift.ref.protocol, key.name: "P3", key.usr: "s:P4cake2P3", key.offset: 1017, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 1027, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 1037, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 1041, key.length: 4 }, { key.kind: source.lang.swift.ref.struct, key.name: "S2", key.usr: "s:V4cake2S2", key.offset: 1046, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 1052, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 1057, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 1064, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 1068, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 1072, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 1074, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 1078, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 1082, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 1084, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 1088, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 1092, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 1098, key.length: 2 }, { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", key.usr: "s:P4cake4Prot", key.offset: 1103, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 1109, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 1114, key.length: 4 }, { key.kind: source.lang.swift.ref.class, key.name: "C1", key.usr: "s:C4cake2C1", key.offset: 1119, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 1123, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 1126, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 1072, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 1074, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 1082, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 1084, key.length: 2 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 1137, key.length: 3 } ] [ { key.kind: source.lang.swift.decl.class, key.name: "C1", key.usr: "s:C4cake2C1", key.offset: 1, key.length: 302, key.fully_annotated_decl: "class C1 : Prot", key.conforms: [ { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", key.usr: "s:P4cake4Prot" } ], key.entities: [ { key.kind: source.lang.swift.decl.typealias, key.name: "Element", key.usr: "s:C4cake2C17Element", key.offset: 24, key.length: 23, key.fully_annotated_decl: "typealias Element = Int", key.conforms: [ { key.kind: source.lang.swift.ref.protocol, key.name: "SignedInteger", key.usr: "s:Ps13SignedInteger" }, { key.kind: source.lang.swift.ref.protocol, key.name: "Comparable", key.usr: "s:Ps10Comparable" }, { key.kind: source.lang.swift.ref.protocol, key.name: "Equatable", key.usr: "s:Ps9Equatable" } ] }, { key.kind: source.lang.swift.decl.var.instance, key.name: "p", key.usr: "s:vC4cake2C11pSi", key.offset: 53, key.length: 10, key.fully_annotated_decl: "var p: Int", key.conforms: [ { key.kind: source.lang.swift.ref.var.instance, key.name: "p", key.usr: "s:vP4cake4Prot1pSi" }, { key.kind: source.lang.swift.ref.var.instance, key.name: "p", key.usr: "s:vP4cake4Prot1pSi" } ] }, { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo()", key.usr: "s:FC4cake2C13fooFT_T_", key.offset: 69, key.length: 10, key.fully_annotated_decl: "func foo()", key.conforms: [ { key.kind: source.lang.swift.ref.function.method.instance, key.name: "foo()", key.usr: "s:FP4cake4Prot3fooFT_T_" }, { key.kind: source.lang.swift.ref.function.method.instance, key.name: "foo()", key.usr: "s:FP4cake4Prot3fooFT_T_" } ] }, { key.kind: source.lang.swift.decl.function.subscript, key.name: "subscript(_:)", key.usr: "s:iC4cake2C19subscriptFSiSi", key.offset: 85, key.length: 38, key.fully_annotated_decl: "subscript(index: Int) -> Int { get }", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "index", key.offset: 104, key.length: 3 } ] }, { key.kind: source.lang.swift.decl.function.subscript, key.name: "subscript(index:)", key.usr: "s:iC4cake2C19subscriptFT5indexSf_Si", key.offset: 129, key.length: 40, key.fully_annotated_decl: "subscript(index i: Float) -> Int { get }", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "index", key.name: "i", key.offset: 148, key.length: 5 } ] }, { key.kind: source.lang.swift.decl.enum, key.name: "C1Cases", key.usr: "s:OC4cake2C17C1Cases", key.offset: 175, key.length: 46, key.fully_annotated_decl: "enum C1Cases : Int", key.inherits: [ { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si" } ], key.entities: [ { key.kind: source.lang.swift.decl.enumelement, key.name: "case1", key.usr: "s:FOC4cake2C17C1Cases5case1FMS1_S1_", key.offset: 205, key.length: 10, key.fully_annotated_decl: "case case1" } ] }, { key.kind: source.lang.swift.decl.function.method.instance, key.name: "extfoo()", key.usr: "s:Fe4cakeRxS_4Protwx7ElementzSirS0_6extfooFT_T_::SYNTHESIZED::s:C4cake2C1", key.original_usr: "s:Fe4cakeRxS_4Protwx7ElementzSirS0_6extfooFT_T_", key.offset: 227, key.length: 13, key.fully_annotated_decl: "func extfoo()" }, { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo1()", key.usr: "s:FE4cakePS_4Prot4foo1FT_T_::SYNTHESIZED::s:C4cake2C1", key.original_usr: "s:FE4cakePS_4Prot4foo1FT_T_", key.offset: 246, key.length: 11, key.fully_annotated_decl: "func foo1()" }, { key.kind: source.lang.swift.decl.function.subscript, key.name: "subscript(_:)", key.usr: "s:iE4cakePS_4Prot9subscriptFSiSi::SYNTHESIZED::s:C4cake2C1", key.original_usr: "s:iE4cakePS_4Prot9subscriptFSiSi", key.offset: 263, key.length: 38, key.fully_annotated_decl: "subscript(index: Int) -> Int { get }", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "index", key.offset: 282, key.length: 3 } ] } ] }, { key.kind: source.lang.swift.decl.class, key.name: "C2", key.usr: "s:C4cake2C2", key.offset: 305, key.length: 172, key.fully_annotated_decl: "class C2 : C1", key.inherits: [ { key.kind: source.lang.swift.ref.class, key.name: "C1", key.usr: "s:C4cake2C1" } ], key.entities: [ { key.kind: source.lang.swift.decl.function.method.instance, key.name: "C2foo()", key.usr: "s:FC4cake2C25C2fooFT_T_", key.offset: 331, key.length: 12, key.fully_annotated_decl: "func C2foo()" }, { key.kind: source.lang.swift.decl.enum, key.name: "C1Cases", key.usr: "s:OC4cake2C17C1Cases::SYNTHESIZED::s:C4cake2C2", key.original_usr: "s:OC4cake2C17C1Cases", key.offset: 349, key.length: 46, key.fully_annotated_decl: "enum C1Cases : Int", key.inherits: [ { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si" } ], key.entities: [ { key.kind: source.lang.swift.decl.enumelement, key.name: "case1", key.usr: "s:FOC4cake2C17C1Cases5case1FMS1_S1_::SYNTHESIZED::s:C4cake2C2", key.original_usr: "s:FOC4cake2C17C1Cases5case1FMS1_S1_", key.offset: 379, key.length: 10, key.fully_annotated_decl: "case case1" } ] }, { key.kind: source.lang.swift.decl.function.method.instance, key.name: "extfoo()", key.usr: "s:Fe4cakeRxS_4Protwx7ElementzSirS0_6extfooFT_T_::SYNTHESIZED::s:C4cake2C2", key.original_usr: "s:Fe4cakeRxS_4Protwx7ElementzSirS0_6extfooFT_T_", key.offset: 401, key.length: 13, key.fully_annotated_decl: "func extfoo()" }, { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo1()", key.usr: "s:FE4cakePS_4Prot4foo1FT_T_::SYNTHESIZED::s:C4cake2C2", key.original_usr: "s:FE4cakePS_4Prot4foo1FT_T_", key.offset: 420, key.length: 11, key.fully_annotated_decl: "func foo1()" }, { key.kind: source.lang.swift.decl.function.subscript, key.name: "subscript(_:)", key.usr: "s:iE4cakePS_4Prot9subscriptFSiSi::SYNTHESIZED::s:C4cake2C2", key.original_usr: "s:iE4cakePS_4Prot9subscriptFSiSi", key.offset: 437, key.length: 38, key.fully_annotated_decl: "subscript(index: Int) -> Int { get }", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "index", key.offset: 456, key.length: 3 } ] } ] }, { key.kind: source.lang.swift.decl.enum, key.name: "MyEnum", key.usr: "s:O4cake6MyEnum", key.offset: 479, key.length: 36, key.fully_annotated_decl: "enum MyEnum : Int", key.inherits: [ { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si" } ], key.entities: [ { key.kind: source.lang.swift.decl.enumelement, key.name: "Blah", key.usr: "s:FO4cake6MyEnum4BlahFMS0_S0_", key.offset: 504, key.length: 9, key.fully_annotated_decl: "case Blah" } ] }, { key.kind: source.lang.swift.decl.protocol, key.name: "P2", key.usr: "s:P4cake2P2", key.offset: 517, key.length: 53, key.fully_annotated_decl: "@objc protocol P2", key.entities: [ { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo1()", key.usr: "s:FP4cake2P24foo1FT_T_", key.offset: 542, key.length: 26, key.fully_annotated_decl: "@objc optional func foo1()", key.is_optional: 1 } ] }, { key.kind: source.lang.swift.decl.protocol, key.name: "P3", key.usr: "s:P4cake2P3", key.offset: 572, key.length: 37, key.fully_annotated_decl: "protocol P3", key.entities: [ { key.kind: source.lang.swift.decl.associatedtype, key.name: "T", key.usr: "s:P4cake2P31T", key.offset: 591, key.length: 16, key.fully_annotated_decl: "associatedtype T" } ] }, { key.kind: source.lang.swift.decl.protocol, key.name: "Prot", key.usr: "s:P4cake4Prot", key.offset: 611, key.length: 102, key.fully_annotated_decl: "protocol Prot", key.entities: [ { key.kind: source.lang.swift.decl.associatedtype, key.name: "Element", key.usr: "s:P4cake4Prot7Element", key.offset: 632, key.length: 22, key.fully_annotated_decl: "associatedtype Element" }, { key.kind: source.lang.swift.decl.var.instance, key.name: "p", key.usr: "s:vP4cake4Prot1pSi", key.offset: 660, key.length: 18, key.fully_annotated_decl: "var p: Int { get }" }, { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo()", key.usr: "s:FP4cake4Prot3fooFT_T_", key.offset: 684, key.length: 10, key.fully_annotated_decl: "func foo()" }, { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo1()", key.usr: "s:FP4cake4Prot4foo1FT_T_", key.offset: 700, key.length: 11, key.fully_annotated_decl: "func foo1()" } ] }, { key.kind: source.lang.swift.decl.extension.protocol, key.offset: 715, key.length: 79, key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", key.usr: "s:P4cake4Prot" }, key.entities: [ { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo1()", key.usr: "s:FE4cakePS_4Prot4foo1FT_T_", key.default_implementation_of: "s:FP4cake4Prot4foo1FT_T_", key.offset: 737, key.length: 11, key.fully_annotated_decl: "func foo1()" }, { key.kind: source.lang.swift.decl.function.subscript, key.name: "subscript(_:)", key.usr: "s:iE4cakePS_4Prot9subscriptFSiSi", key.offset: 754, key.length: 38, key.fully_annotated_decl: "subscript(index: Int) -> Int { get }", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "index", key.offset: 773, key.length: 3 } ] } ] }, { key.kind: source.lang.swift.decl.extension.protocol, key.generic_requirements: [ { key.description: "Self.Element == Int" } ], key.offset: 796, key.length: 63, key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", key.usr: "s:P4cake4Prot" }, key.entities: [ { key.kind: source.lang.swift.decl.function.method.instance, key.name: "extfoo()", key.usr: "s:Fe4cakeRxS_4Protwx7ElementzSirS0_6extfooFT_T_", key.offset: 844, key.length: 13, key.fully_annotated_decl: "func extfoo()" } ] }, { key.kind: source.lang.swift.decl.struct, key.name: "S1", key.usr: "s:V4cake2S1", key.offset: 861, key.length: 142, key.fully_annotated_decl: "struct S1", key.entities: [ { key.kind: source.lang.swift.decl.enum, key.name: "SE", key.usr: "s:OV4cake2S12SE", key.offset: 878, key.length: 63, key.fully_annotated_decl: "enum SE", key.entities: [ { key.kind: source.lang.swift.decl.enumelement, key.name: "a", key.usr: "s:FOV4cake2S12SE1aFMS1_S1_", key.offset: 897, key.length: 6, key.fully_annotated_decl: "case a" }, { key.kind: source.lang.swift.decl.enumelement, key.name: "b", key.usr: "s:FOV4cake2S12SE1bFMS1_S1_", key.offset: 913, key.length: 6, key.fully_annotated_decl: "case b" }, { key.kind: source.lang.swift.decl.enumelement, key.name: "c", key.usr: "s:FOV4cake2S12SE1cFMS1_S1_", key.offset: 929, key.length: 6, key.fully_annotated_decl: "case c" } ] }, { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo1()", key.usr: "s:FV4cake2S14foo1FT_T_", key.offset: 947, key.length: 11, key.fully_annotated_decl: "func foo1()" }, { key.kind: source.lang.swift.decl.struct, key.name: "S2", key.usr: "s:VV4cake2S12S2", key.offset: 964, key.length: 37, key.fully_annotated_decl: "struct S2", key.entities: [ { key.kind: source.lang.swift.decl.var.instance, key.name: "b", key.usr: "s:vVV4cake2S12S21bSi", key.offset: 985, key.length: 10, key.fully_annotated_decl: "let b: Int" } ] } ] }, { key.kind: source.lang.swift.decl.struct, key.name: "S2", key.usr: "s:V4cake2S2", key.offset: 1005, key.length: 45, key.fully_annotated_decl: "struct S2 : P3", key.conforms: [ { key.kind: source.lang.swift.ref.protocol, key.name: "P3", key.usr: "s:P4cake2P3" } ], key.entities: [ { key.kind: source.lang.swift.decl.typealias, key.name: "T", key.usr: "s:V4cake2S21T", key.offset: 1027, key.length: 21, key.fully_annotated_decl: "typealias T = S2", key.conforms: [ { key.kind: source.lang.swift.ref.protocol, key.name: "P3", key.usr: "s:P4cake2P3" } ] } ] }, { key.kind: source.lang.swift.decl.function.free, key.name: "genfoo(x:y:)", key.usr: "s:F4cake6genfoou0_RxS_4Prot_CS_2C1wx7ElementzSirFT1xx1yq__T_", key.generic_params: [ { key.name: "T1" }, { key.name: "T2" } ], key.generic_requirements: [ { key.description: "T1 : Prot" }, { key.description: "T2 : C1" }, { key.description: "T1.Element == Int" } ], key.offset: 1052, key.length: 88, 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: 1078, key.length: 2 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "y", key.name: "iy", key.offset: 1088, key.length: 2 } ] } ]