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 : 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 {
func fooConstraint()
}
protocol P3 {
func p3Required()
}
[
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 1,
key.length: 8
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 10,
key.length: 2
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 20,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 25,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 37,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 41,
key.length: 3
},
{
key.kind: source.lang.swift.ref.struct,
key.name: "Int",
key.usr: "s:Si",
key.offset: 46,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 52,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 56,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 67,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 72,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.argument,
key.offset: 77,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.parameter,
key.offset: 79,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 77,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 79,
key.length: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.name: "Int",
key.usr: "s:Si",
key.offset: 82,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.argument,
key.offset: 87,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.parameter,
key.offset: 89,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 87,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 89,
key.length: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.name: "Int",
key.usr: "s:Si",
key.offset: 92,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 102,
key.length: 9
},
{
key.kind: source.lang.swift.syntaxtype.argument,
key.offset: 112,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.parameter,
key.offset: 114,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 114,
key.length: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.name: "Int",
key.usr: "s:Si",
key.offset: 117,
key.length: 3
},
{
key.kind: source.lang.swift.ref.struct,
key.name: "Int",
key.usr: "s:Si",
key.offset: 125,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 131,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 135,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 146,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 151,
key.length: 13
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 170,
key.length: 8
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 179,
key.length: 2
},
{
key.kind: source.lang.swift.ref.protocol,
key.name: "P1",
key.usr: "s:5cake12P1P",
key.offset: 184,
key.length: 2
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 194,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 199,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 211,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 216,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 226,
key.length: 9
},
{
key.kind: source.lang.swift.ref.protocol,
key.name: "P2",
key.usr: "s:5cake12P2P",
key.offset: 236,
key.length: 2
},
{
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: 3
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 267,
key.length: 3
},
{
key.kind: source.lang.swift.ref.struct,
key.name: "Int",
key.usr: "s:Si",
key.offset: 272,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 281,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 286,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.argument,
key.offset: 291,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.parameter,
key.offset: 293,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 291,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 293,
key.length: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.name: "Int",
key.usr: "s:Si",
key.offset: 296,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.argument,
key.offset: 301,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.parameter,
key.offset: 303,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 301,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 303,
key.length: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.name: "Int",
key.usr: "s:Si",
key.offset: 306,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 316,
key.length: 9
},
{
key.kind: source.lang.swift.syntaxtype.argument,
key.offset: 326,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.parameter,
key.offset: 328,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 328,
key.length: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.name: "Int",
key.usr: "s:Si",
key.offset: 331,
key.length: 3
},
{
key.kind: source.lang.swift.ref.struct,
key.name: "Int",
key.usr: "s:Si",
key.offset: 339,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 346,
key.length: 9
},
{
key.kind: source.lang.swift.ref.protocol,
key.name: "P2",
key.usr: "s:5cake12P2P",
key.offset: 356,
key.length: 2
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 366,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 371,
key.length: 13
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 390,
key.length: 8
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 399,
key.length: 2
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 409,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 414,
key.length: 10
}
]
[
{
key.kind: source.lang.swift.decl.protocol,
key.name: "P1",
key.usr: "s:5cake12P1P",
key.offset: 1,
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: 20,
key.length: 11,
key.fully_annotated_decl: "func foo1()"
},
{
key.kind: source.lang.swift.decl.var.instance,
key.name: "Ins",
key.usr: "s:5cake12P1P3InsSiv",
key.offset: 37,
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:5cake12P1P4foo2ySi1a_Si1btF",
key.offset: 67,
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: 82,
key.length: 3
},
{
key.kind: source.lang.swift.decl.var.local,
key.keyword: "b",
key.name: "b",
key.offset: 92,
key.length: 3
}
]
},
{
key.kind: source.lang.swift.decl.function.subscript,
key.name: "subscript(_:)",
key.usr: "s:5cake12P1P9subscriptS2ici",
key.offset: 102,
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: 117,
key.length: 3
}
]
},
{
key.kind: source.lang.swift.decl.function.method.instance,
key.name: "fooConstraint()",
key.usr: "s:5cake12P1P13fooConstraintyyF",
key.offset: 146,
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: 170,
key.length: 54,
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: 194,
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: 211,
key.length: 11,
key.fully_annotated_decl: "func bar2()"
}
]
},
{
key.kind: source.lang.swift.decl.extension.protocol,
key.offset: 226,
key.length: 118,
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: 246,
key.length: 11,
key.fully_annotated_decl: "func foo1()"
},
{
key.kind: source.lang.swift.decl.var.instance,
key.name: "Ins",
key.usr: "s:5cake12P2PAAE3InsSiv",
key.default_implementation_of: "s:5cake12P1P3InsSiv",
key.offset: 263,
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:5cake12P2PAAE4foo2ySi1a_Si1btF",
key.default_implementation_of: "s:5cake12P1P4foo2ySi1a_Si1btF",
key.offset: 281,
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: 296,
key.length: 3
},
{
key.kind: source.lang.swift.decl.var.local,
key.keyword: "b",
key.name: "b",
key.offset: 306,
key.length: 3
}
]
},
{
key.kind: source.lang.swift.decl.function.subscript,
key.name: "subscript(_:)",
key.usr: "s:5cake12P2PAAE9subscriptS2ici",
key.default_implementation_of: "s:5cake12P1P9subscriptS2ici",
key.offset: 316,
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: 331,
key.length: 3
}
]
}
]
},
{
key.kind: source.lang.swift.decl.extension.protocol,
key.generic_requirements: [
{
key.description: "Self : P3"
}
],
key.offset: 346,
key.length: 42,
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:5cake12P2PA2aBRzAA2P3RzlE13fooConstraintyyF",
key.default_implementation_of: "s:5cake12P1P13fooConstraintyyF",
key.offset: 366,
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: 390,
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: 409,
key.length: 17,
key.fully_annotated_decl: "func p3Required()"
}
]
}
]