class InitClassImpl : cake1.InitProto { required init(x x: Int) convenience init() } protocol InitProto { init(x x: Int) } extension InitProto { init() } struct InitStructImpl : cake1.InitProto { init(x x: Int) init() } protocol P1 { func foo1() var Ins: Int { get set } func foo2(a a: Int, b b: Int) subscript(_ a: Int) -> Int { get set } func fooConstraint() } protocol P2 : cake1.P1 { func bar1() func bar2() } extension P2 { func foo1() var Ins: Int func foo2(a a: Int, b b: Int) subscript(_ a: Int) -> Int } extension P2 where Self : cake1.P3 { func fooConstraint() } protocol P3 { func p3Required() } extension Dictionary.Keys { func foo() } extension Dictionary.Keys where Key : cake1.P1 { func bar() } [ { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 0, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 6, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 22, key.length: 5 }, { key.kind: source.lang.swift.ref.protocol, key.name: "InitProto", key.usr: "s:5cake19InitProtoP", key.offset: 28, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, key.offset: 45, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 54, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 59, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 61, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 64, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, key.offset: 74, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 86, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 96, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 105, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 122, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 127, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 129, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 132, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 140, key.length: 9 }, { key.kind: source.lang.swift.ref.protocol, key.name: "InitProto", key.usr: "s:5cake19InitProtoP", key.offset: 150, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 167, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 177, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 184, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 201, key.length: 5 }, { key.kind: source.lang.swift.ref.protocol, key.name: "InitProto", key.usr: "s:5cake19InitProtoP", key.offset: 207, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 224, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 229, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 231, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 234, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 244, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 254, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 263, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 273, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 278, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 290, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 294, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 299, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 305, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 309, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 320, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 325, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 330, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 332, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 335, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 340, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 342, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 345, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 355, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 365, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 367, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 370, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 378, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 384, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 388, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 399, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 404, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 423, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 432, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 437, key.length: 5 }, { key.kind: source.lang.swift.ref.protocol, key.name: "P1", key.usr: "s:5cake12P1P", key.offset: 443, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 453, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 458, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 470, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 475, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 485, key.length: 9 }, { key.kind: source.lang.swift.ref.protocol, key.name: "P2", key.usr: "s:5cake12P2P", key.offset: 495, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 505, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 510, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 522, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 526, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 531, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 540, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 545, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 550, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 552, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 555, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 560, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 562, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 565, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 575, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 585, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 587, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 590, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 598, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 605, key.length: 9 }, { key.kind: source.lang.swift.ref.protocol, key.name: "P2", key.usr: "s:5cake12P2P", key.offset: 615, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 618, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:5cake12P2P4Selfxmfp", key.offset: 624, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 631, key.length: 5 }, { key.kind: source.lang.swift.ref.protocol, key.name: "P3", key.usr: "s:5cake12P3P", key.offset: 637, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 647, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 652, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 671, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 680, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 690, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 695, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 711, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "Dictionary", key.usr: "s:SD", key.offset: 721, key.length: 10 }, { key.kind: source.lang.swift.ref.struct, key.name: "Keys", key.usr: "s:SD4KeysV", key.offset: 732, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 744, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 749, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 758, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "Dictionary", key.usr: "s:SD", key.offset: 768, key.length: 10 }, { key.kind: source.lang.swift.ref.struct, key.name: "Keys", key.usr: "s:SD4KeysV", key.offset: 779, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 784, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Key", key.usr: "s:SD3Keyxmfp", key.offset: 790, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 796, key.length: 5 }, { key.kind: source.lang.swift.ref.protocol, key.name: "P1", key.usr: "s:5cake12P1P", key.offset: 802, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 812, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 817, key.length: 3 } ] [ { key.kind: source.lang.swift.decl.class, key.name: "InitClassImpl", key.usr: "s:5cake113InitClassImplC", key.offset: 0, key.length: 94, key.fully_annotated_decl: "class InitClassImpl : InitProto", key.conforms: [ { key.kind: source.lang.swift.ref.protocol, key.name: "InitProto", key.usr: "s:5cake19InitProtoP" } ], key.entities: [ { key.kind: source.lang.swift.decl.function.constructor, key.name: "init(x:)", key.usr: "s:5cake113InitClassImplC1xACSi_tcfc", key.offset: 45, key.length: 23, key.fully_annotated_decl: "required init(x: Int)", key.conforms: [ { key.kind: source.lang.swift.ref.function.constructor, key.name: "init(x:)", key.usr: "s:5cake19InitProtoP1xxSi_tcfc" } ], key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", key.offset: 64, key.length: 3 } ] }, { key.kind: source.lang.swift.decl.function.constructor, key.name: "init()", key.usr: "s:5cake19InitProtoPAAExycfc::SYNTHESIZED::s:5cake113InitClassImplC", key.original_usr: "s:5cake19InitProtoPAAExycfc", key.offset: 74, key.length: 18, key.fully_annotated_decl: "convenience init()" } ] }, { key.kind: source.lang.swift.decl.protocol, key.name: "InitProto", key.usr: "s:5cake19InitProtoP", key.offset: 96, key.length: 42, key.fully_annotated_decl: "protocol InitProto", key.entities: [ { key.kind: source.lang.swift.decl.function.constructor, key.name: "init(x:)", key.usr: "s:5cake19InitProtoP1xxSi_tcfc", key.offset: 122, key.length: 14, key.fully_annotated_decl: "init(x: Int)", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", key.offset: 132, key.length: 3 } ] } ] }, { key.kind: source.lang.swift.decl.extension.protocol, key.offset: 140, key.length: 35, key.fully_annotated_decl: "extension InitProto", key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "InitProto", key.usr: "s:5cake19InitProtoP" }, key.entities: [ { key.kind: source.lang.swift.decl.function.constructor, key.name: "init()", key.usr: "s:5cake19InitProtoPAAExycfc", key.offset: 167, key.length: 6, key.fully_annotated_decl: "init()" } ] }, { key.kind: source.lang.swift.decl.struct, key.name: "InitStructImpl", key.usr: "s:5cake114InitStructImplV", key.offset: 177, key.length: 75, key.fully_annotated_decl: "struct InitStructImpl : InitProto", key.conforms: [ { key.kind: source.lang.swift.ref.protocol, key.name: "InitProto", key.usr: "s:5cake19InitProtoP" } ], key.entities: [ { key.kind: source.lang.swift.decl.function.constructor, key.name: "init(x:)", key.usr: "s:5cake114InitStructImplV1xACSi_tcfc", key.offset: 224, key.length: 14, key.fully_annotated_decl: "init(x: Int)", key.conforms: [ { key.kind: source.lang.swift.ref.function.constructor, key.name: "init(x:)", key.usr: "s:5cake19InitProtoP1xxSi_tcfc" } ], key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", key.offset: 234, key.length: 3 } ] }, { key.kind: source.lang.swift.decl.function.constructor, key.name: "init()", key.usr: "s:5cake19InitProtoPAAExycfc::SYNTHESIZED::s:5cake114InitStructImplV", key.original_usr: "s:5cake19InitProtoPAAExycfc", key.offset: 244, key.length: 6, key.fully_annotated_decl: "init()" } ] }, { key.kind: source.lang.swift.decl.protocol, key.name: "P1", key.usr: "s:5cake12P1P", key.offset: 254, key.length: 167, key.fully_annotated_decl: "protocol P1", key.entities: [ { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo1()", key.usr: "s:5cake12P1P4foo1yyF", key.offset: 273, key.length: 11, key.fully_annotated_decl: "func foo1()" }, { key.kind: source.lang.swift.decl.var.instance, key.name: "Ins", key.usr: "s:5cake12P1P3InsSivp", key.offset: 290, key.length: 24, key.fully_annotated_decl: "var Ins: Int { get set }" }, { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo2(a:b:)", key.usr: "s:5cake12P1P4foo21a1bySi_SitF", key.offset: 320, key.length: 29, key.fully_annotated_decl: "func foo2(a: Int, b: Int)", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "a", key.name: "a", key.offset: 335, key.length: 3 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "b", key.name: "b", key.offset: 345, key.length: 3 } ] }, { key.kind: source.lang.swift.decl.function.subscript, key.name: "subscript(_:)", key.usr: "s:5cake12P1PyS2icip", key.offset: 355, key.length: 38, key.fully_annotated_decl: "subscript(a: Int) -> Int { get set }", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", key.offset: 370, key.length: 3 } ] }, { key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooConstraint()", key.usr: "s:5cake12P1P13fooConstraintyyF", key.offset: 399, key.length: 20, key.fully_annotated_decl: "func fooConstraint()" } ] }, { key.kind: source.lang.swift.decl.protocol, key.name: "P2", key.usr: "s:5cake12P2P", key.offset: 423, key.length: 60, key.fully_annotated_decl: "protocol P2 : P1", key.conforms: [ { key.kind: source.lang.swift.ref.protocol, key.name: "P1", key.usr: "s:5cake12P1P" } ], key.entities: [ { key.kind: source.lang.swift.decl.function.method.instance, key.name: "bar1()", key.usr: "s:5cake12P2P4bar1yyF", key.offset: 453, key.length: 11, key.fully_annotated_decl: "func bar1()" }, { key.kind: source.lang.swift.decl.function.method.instance, key.name: "bar2()", key.usr: "s:5cake12P2P4bar2yyF", key.offset: 470, key.length: 11, key.fully_annotated_decl: "func bar2()" } ] }, { key.kind: source.lang.swift.decl.extension.protocol, key.offset: 485, key.length: 118, key.fully_annotated_decl: "extension P2", key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "P2", key.usr: "s:5cake12P2P" }, key.entities: [ { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo1()", key.usr: "s:5cake12P2PAAE4foo1yyF", key.default_implementation_of: "s:5cake12P1P4foo1yyF", key.offset: 505, key.length: 11, key.fully_annotated_decl: "func foo1()" }, { key.kind: source.lang.swift.decl.var.instance, key.name: "Ins", key.usr: "s:5cake12P2PAAE3InsSivp", key.default_implementation_of: "s:5cake12P1P3InsSivp", key.offset: 522, key.length: 12, key.fully_annotated_decl: "var Ins: Int { get set }" }, { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo2(a:b:)", key.usr: "s:5cake12P2PAAE4foo21a1bySi_SitF", key.default_implementation_of: "s:5cake12P1P4foo21a1bySi_SitF", key.offset: 540, key.length: 29, key.fully_annotated_decl: "func foo2(a: Int, b: Int)", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "a", key.name: "a", key.offset: 555, key.length: 3 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "b", key.name: "b", key.offset: 565, key.length: 3 } ] }, { key.kind: source.lang.swift.decl.function.subscript, key.name: "subscript(_:)", key.usr: "s:5cake12P2PAAEyS2icip", key.default_implementation_of: "s:5cake12P1PyS2icip", key.offset: 575, key.length: 26, key.fully_annotated_decl: "subscript(a: Int) -> Int { get set }", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", key.offset: 590, key.length: 3 } ] } ] }, { key.kind: source.lang.swift.decl.extension.protocol, key.generic_requirements: [ { key.description: "Self : P3" } ], key.offset: 605, key.length: 64, key.fully_annotated_decl: "extension P2 where Self : P3", key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "P2", key.usr: "s:5cake12P2P" }, key.entities: [ { key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooConstraint()", key.usr: "s:5cake12P2PA2A2P3RzrlE13fooConstraintyyF", key.default_implementation_of: "s:5cake12P1P13fooConstraintyyF", key.offset: 647, key.length: 20, key.fully_annotated_decl: "func fooConstraint()" } ] }, { key.kind: source.lang.swift.decl.protocol, key.name: "P3", key.usr: "s:5cake12P3P", key.offset: 671, key.length: 38, key.fully_annotated_decl: "protocol P3", key.entities: [ { key.kind: source.lang.swift.decl.function.method.instance, key.name: "p3Required()", key.usr: "s:5cake12P3P10p3RequiredyyF", key.offset: 690, key.length: 17, key.fully_annotated_decl: "func p3Required()" } ] }, { key.kind: source.lang.swift.decl.extension.struct, key.generic_params: [ { key.name: "Key" }, { key.name: "Value" } ], key.generic_requirements: [ { key.description: "Key : Hashable" } ], key.offset: 711, key.length: 45, key.fully_annotated_decl: "extension Dictionary.Keys", key.extends: { key.kind: source.lang.swift.ref.struct, key.name: "Keys", key.usr: "s:SD4KeysV" }, key.entities: [ { key.kind: source.lang.swift.decl.function.method.instance, key.name: "foo()", key.usr: "s:SD4KeysV5cake1E3fooyyF", key.offset: 744, key.length: 10, key.fully_annotated_decl: "func foo()" } ] }, { key.kind: source.lang.swift.decl.extension.struct, key.generic_params: [ { key.name: "Key" }, { key.name: "Value" } ], key.generic_requirements: [ { key.description: "Key : Hashable" }, { key.description: "Key : P1" } ], key.offset: 758, key.length: 66, key.fully_annotated_decl: "extension Dictionary.Keys where Key : P1", key.extends: { key.kind: source.lang.swift.ref.struct, key.name: "Keys", key.usr: "s:SD4KeysV" }, key.entities: [ { key.kind: source.lang.swift.decl.function.method.instance, key.name: "bar()", key.usr: "s:SD4KeysV5cake1AC2P1RzrlE3baryyF", key.offset: 812, key.length: 10, key.fully_annotated_decl: "func bar()" } ] } ]