Files
swift-mirror/test/SourceKit/Indexing/index_enum_case.swift.response
Erik Eckstein a04a29af4f mangling: efficient mangling of repeated substitutions
Instead of appending a character for each substitution, we now prefix the substitution with the repeat count, e.g.
AbbbbB -> A5B

The same is done for known-type substitutions, e.g.
SiSiSi -> S3i

This significantly shrinks mangled names which contain large lists of the same type, like
  func foo(_ x: (Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int))

rdar://problem/30707433
2017-03-05 17:41:43 -08:00

158 lines
4.3 KiB
Plaintext

{
key.hash: <hash>,
key.dependencies: [
{
key.kind: source.lang.swift.import.module.swift,
key.name: "Swift",
key.filepath: Swift.swiftmodule,
key.hash: <hash>,
key.is_system: 1
}
],
key.entities: [
{
key.kind: source.lang.swift.decl.enum,
key.name: "E",
key.usr: "s:15index_enum_case1EO",
key.line: 4,
key.column: 13,
key.entities: [
{
key.kind: source.lang.swift.decl.enumelement,
key.name: "one",
key.usr: "s:15index_enum_case1EO3oneA2CmF",
key.line: 6,
key.column: 10
},
{
key.kind: source.lang.swift.decl.enumelement,
key.name: "two",
key.usr: "s:15index_enum_case1EO3twoACSS1a_tcACmF",
key.line: 6,
key.column: 15,
key.entities: [
{
key.kind: source.lang.swift.ref.struct,
key.name: "String",
key.usr: "s:SS",
key.line: 6,
key.column: 22
}
]
},
{
key.kind: source.lang.swift.decl.enumelement,
key.name: "three",
key.usr: "s:15index_enum_case1EO5threeA2CmF",
key.line: 6,
key.column: 31
},
{
key.kind: source.lang.swift.decl.var.instance,
key.name: "text",
key.usr: "s:15index_enum_case1EO4textSSv",
key.line: 8,
key.column: 9,
key.entities: [
{
key.kind: source.lang.swift.decl.function.accessor.getter,
key.name: "getter:text",
key.usr: "s:15index_enum_case1EO4textSSfg",
key.line: 8,
key.column: 22,
key.entities: [
{
key.kind: source.lang.swift.ref.enumelement,
key.name: "one",
key.usr: "s:15index_enum_case1EO3oneA2CmF",
key.line: 10,
key.column: 15
},
{
key.kind: source.lang.swift.ref.enumelement,
key.name: "two",
key.usr: "s:15index_enum_case1EO3twoACSS1a_tcACmF",
key.line: 12,
key.column: 15
},
{
key.kind: source.lang.swift.ref.enumelement,
key.name: "three",
key.usr: "s:15index_enum_case1EO5threeA2CmF",
key.line: 14,
key.column: 15
}
]
}
]
},
{
key.kind: source.lang.swift.ref.struct,
key.name: "String",
key.usr: "s:SS",
key.line: 8,
key.column: 15
}
]
},
{
key.kind: source.lang.swift.decl.var.global,
key.name: "e",
key.usr: "s:15index_enum_case1eAA1EOv",
key.line: 21,
key.column: 5,
key.entities: [
{
key.kind: source.lang.swift.decl.function.accessor.getter,
key.usr: "s:15index_enum_case1eAA1EOfg",
key.line: 21,
key.column: 5
},
{
key.kind: source.lang.swift.decl.function.accessor.setter,
key.usr: "s:15index_enum_case1eAA1EOfs",
key.line: 21,
key.column: 5
}
]
},
{
key.kind: source.lang.swift.ref.enum,
key.name: "E",
key.usr: "s:15index_enum_case1EO",
key.line: 21,
key.column: 8
},
{
key.kind: source.lang.swift.ref.enumelement,
key.name: "two",
key.usr: "s:15index_enum_case1EO3twoACSS1a_tcACmF",
key.line: 21,
key.column: 13
},
{
key.kind: source.lang.swift.decl.function.free,
key.name: "brokenEnums()",
key.usr: "s:15index_enum_case11brokenEnumsyyF",
key.line: 23,
key.column: 6,
key.entities: [
{
key.kind: source.lang.swift.ref.enum,
key.name: "E",
key.usr: "s:15index_enum_case1EO",
key.line: 28,
key.column: 10
},
{
key.kind: source.lang.swift.ref.enumelement,
key.name: "one",
key.usr: "s:15index_enum_case1EO3oneA2CmF",
key.line: 28,
key.column: 12
}
]
}
]
}