class C1 : Prot { typealias Element = Int var p: Int func foo() subscript(_ index: Int) -> Int { get } subscript(index i: Float) -> Int { get } } extension cake.C1Alias { } enum MyEnum : Int { case Blah } protocol Prot { associatedtype Element var p: Int { get } func foo() } extension Prot where Self.Element == Int { func extfoo() } func genfoo(x ix: T1, y iy: T2) [ { 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: 23, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 33, key.length: 7 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 43, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 51, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 55, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 58, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 66, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 71, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 81, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 91, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 93, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 93, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 100, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 108, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 114, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 124, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 134, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 140, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 134, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 140, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Float", key.usr: "s:Sf", key.offset: 143, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 153, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 159, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 168, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 178, key.length: 4 }, { key.kind: source.lang.swift.ref.typealias, key.name: "C1Alias", key.usr: "s:4cake7C1Alias", key.offset: 183, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 196, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 201, key.length: 6 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 210, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 220, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 225, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 233, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 242, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 253, key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 268, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 280, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 284, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", key.offset: 287, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 293, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 303, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 308, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 317, key.length: 9 }, { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", key.usr: "s:P4cake4Prot", key.offset: 327, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 332, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 338, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 343, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 354, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 364, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 369, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 381, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 386, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 393, key.length: 2 }, { key.kind: source.lang.swift.ref.protocol, key.name: "Prot", key.usr: "s:P4cake4Prot", key.offset: 398, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 404, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 409, key.length: 4 }, { key.kind: source.lang.swift.ref.class, key.name: "C1", key.usr: "s:C4cake2C1", key.offset: 414, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 417, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 423, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 426, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 437, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 442, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 445, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 456, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 459, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 468, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 470, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 468, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 470, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 474, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 478, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, key.offset: 480, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 478, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 480, key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, key.offset: 484, key.length: 2 } ] [ { key.kind: source.lang.swift.decl.class, key.name: "C1", key.usr: "s:C4cake2C1", key.offset: 1, key.length: 165, 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: 23, key.length: 23, key.fully_annotated_decl: "typealias Element = Int", key.conforms: [ { key.kind: source.lang.swift.ref.associatedtype, key.name: "Element", key.usr: "s:P4cake4Prot7Element" } ] }, { key.kind: source.lang.swift.decl.var.instance, key.name: "p", key.usr: "s:vC4cake2C11pSi", key.offset: 51, 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.decl.function.method.instance, key.name: "foo()", key.usr: "s:FC4cake2C13fooFT_T_", key.offset: 66, 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.decl.function.subscript, key.name: "subscript(_:)", key.usr: "s:iC4cake2C19subscriptFSiSi", key.offset: 81, 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: 100, key.length: 3 } ] }, { key.kind: source.lang.swift.decl.function.subscript, key.name: "subscript(index:)", key.usr: "s:iC4cake2C19subscriptFT5indexSf_Si", key.offset: 124, 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: 143, key.length: 5 } ] } ] }, { key.kind: source.lang.swift.decl.extension.class, key.offset: 168, key.length: 26, key.conforms: [ { key.kind: source.lang.swift.ref.protocol, key.name: "Prot1", key.usr: "s:P4cake5Prot1" } ], key.extends: { key.kind: source.lang.swift.ref.typealias, key.name: "C1Alias", key.usr: "s:4cake7C1Alias" } }, { key.kind: source.lang.swift.decl.enum, key.name: "MyEnum", key.usr: "s:O4cake6MyEnum", key.offset: 196, key.length: 35, 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: 220, key.length: 9, key.fully_annotated_decl: "case Blah" } ] }, { key.kind: source.lang.swift.decl.protocol, key.name: "Prot", key.usr: "s:P4cake4Prot", key.offset: 233, key.length: 82, key.fully_annotated_decl: "protocol Prot", key.entities: [ { key.kind: source.lang.swift.decl.associatedtype, key.name: "Element", key.usr: "s:P4cake4Prot7Element", key.offset: 253, 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: 280, 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: 303, key.length: 10, key.fully_annotated_decl: "func foo()" } ] }, { key.kind: source.lang.swift.decl.extension.protocol, key.generic_requirements: [ { key.description: "Self.Element == Int" } ], key.offset: 317, key.length: 62, 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: 364, key.length: 13, key.fully_annotated_decl: "func extfoo()" } ] }, { 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.inherits: "Prot" }, { key.name: "T2", key.inherits: "C1" } ], key.generic_requirements: [ { key.description: "T1.Element == Int" }, { key.description: "T2.Element == T1.Element" } ], key.offset: 381, key.length: 106, key.fully_annotated_decl: "func genfoo<T1 : Prot, T2 : C1 where T1.Element == Int, T2.Element == T1.Element>(x ix: T1, y iy: T2)", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "ix", key.offset: 474, key.length: 2 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "y", key.name: "iy", key.offset: 484, key.length: 2 } ] } ]