mirror of
https://github.com/apple/swift.git
synced 2026-06-27 12:25:55 +02:00
f66dd8e59c
We need special logic to check abi-stability for decls with fixed layout.
579 lines
15 KiB
JSON
579 lines
15 KiB
JSON
{
|
|
"kind": "Root",
|
|
"name": "TopLevel",
|
|
"printedName": "TopLevel",
|
|
"children": [
|
|
{
|
|
"kind": "TypeDecl",
|
|
"name": "P1",
|
|
"printedName": "P1",
|
|
"declKind": "Protocol",
|
|
"usr": "s:4cake2P1P",
|
|
"location": "",
|
|
"moduleName": "cake"
|
|
},
|
|
{
|
|
"kind": "TypeDecl",
|
|
"name": "P2",
|
|
"printedName": "P2",
|
|
"declKind": "Protocol",
|
|
"usr": "s:4cake2P2P",
|
|
"location": "",
|
|
"moduleName": "cake"
|
|
},
|
|
{
|
|
"kind": "TypeDecl",
|
|
"name": "C0",
|
|
"printedName": "C0",
|
|
"declKind": "Class",
|
|
"usr": "s:4cake2C0C",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "Constructor",
|
|
"name": "init",
|
|
"printedName": "init()",
|
|
"declKind": "Constructor",
|
|
"usr": "s:4cake2C0CACyxq_q0_Gycfc",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "C0",
|
|
"printedName": "C0<T1, T2, T3>",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "GenericTypeParam",
|
|
"printedName": "T1"
|
|
},
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "GenericTypeParam",
|
|
"printedName": "T2"
|
|
},
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "GenericTypeParam",
|
|
"printedName": "T3"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Function",
|
|
"name": "conditionalFooExt",
|
|
"printedName": "conditionalFooExt()",
|
|
"declKind": "Func",
|
|
"usr": "s:4cake2C0CA2A2S1VRszAERs_AERs0_rlE17conditionalFooExtyyF",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"parentExtensionReqs": [
|
|
"T1 == cake.S1",
|
|
"T2 == cake.S1",
|
|
"T3 == cake.S1"
|
|
],
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Void",
|
|
"printedName": "()"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Function",
|
|
"name": "unconditionalFooExt",
|
|
"printedName": "unconditionalFooExt()",
|
|
"declKind": "Func",
|
|
"usr": "s:4cake2C0C19unconditionalFooExtyyF",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"parentExtensionReqs": [],
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Void",
|
|
"printedName": "()"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "TypeDecl",
|
|
"name": "S1",
|
|
"printedName": "S1",
|
|
"declKind": "Struct",
|
|
"usr": "s:4cake2S1V",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"conformingProtocols": [
|
|
"P1",
|
|
"P2"
|
|
],
|
|
"declAttributes": [
|
|
"fixedLayout"
|
|
],
|
|
"children": [
|
|
{
|
|
"kind": "Function",
|
|
"name": "foo1",
|
|
"printedName": "foo1()",
|
|
"declKind": "Func",
|
|
"usr": "s:4cake2S1V4foo1yyFZ",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"static": true,
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Void",
|
|
"printedName": "()"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Function",
|
|
"name": "foo2",
|
|
"printedName": "foo2()",
|
|
"declKind": "Func",
|
|
"usr": "s:4cake2S1V4foo2yyF",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"mutating": true,
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Void",
|
|
"printedName": "()"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Function",
|
|
"name": "foo6",
|
|
"printedName": "foo6()",
|
|
"declKind": "Func",
|
|
"usr": "s:4cake2S1V4foo6yyF",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNameAlias",
|
|
"name": "Void",
|
|
"printedName": "Void",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Void",
|
|
"printedName": "()"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Constructor",
|
|
"name": "init",
|
|
"printedName": "init()",
|
|
"declKind": "Constructor",
|
|
"usr": "s:4cake2S1VACycfc",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "S1",
|
|
"printedName": "S1"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "TypeDecl",
|
|
"name": "C1",
|
|
"printedName": "C1",
|
|
"declKind": "Class",
|
|
"usr": "s:4cake2C1C",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"superclassUsr": "s:4cake2C0C",
|
|
"children": [
|
|
{
|
|
"kind": "Function",
|
|
"name": "foo1",
|
|
"printedName": "foo1()",
|
|
"declKind": "Func",
|
|
"usr": "s:4cake2C1C4foo1yyFZ",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"static": true,
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Void",
|
|
"printedName": "()"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Var",
|
|
"name": "Ins",
|
|
"printedName": "Ins",
|
|
"declKind": "Var",
|
|
"usr": "s:4cake2C1C3InsACSgXwvp",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"ownership": 1,
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "WeakStorage",
|
|
"printedName": "C1?"
|
|
},
|
|
{
|
|
"kind": "Getter",
|
|
"name": "_",
|
|
"printedName": "_()",
|
|
"declKind": "Accessor",
|
|
"usr": "s:4cake2C1C3InsACSgXwvg",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Optional",
|
|
"printedName": "C1?",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "C1",
|
|
"printedName": "C1"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Setter",
|
|
"name": "_",
|
|
"printedName": "_()",
|
|
"declKind": "Accessor",
|
|
"usr": "s:4cake2C1C3InsACSgXwvs",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Void",
|
|
"printedName": "()"
|
|
},
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Optional",
|
|
"printedName": "C1?",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "C1",
|
|
"printedName": "C1"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Var",
|
|
"name": "Ins2",
|
|
"printedName": "Ins2",
|
|
"declKind": "Var",
|
|
"usr": "s:4cake2C1C4Ins2ACXovp",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"ownership": 2,
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "UnownedStorage",
|
|
"printedName": "C1"
|
|
},
|
|
{
|
|
"kind": "Getter",
|
|
"name": "_",
|
|
"printedName": "_()",
|
|
"declKind": "Accessor",
|
|
"usr": "s:4cake2C1C4Ins2ACXovg",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "C1",
|
|
"printedName": "C1"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Setter",
|
|
"name": "_",
|
|
"printedName": "_()",
|
|
"declKind": "Accessor",
|
|
"usr": "s:4cake2C1C4Ins2ACXovs",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Void",
|
|
"printedName": "()"
|
|
},
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "C1",
|
|
"printedName": "C1"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Constructor",
|
|
"name": "init",
|
|
"printedName": "init()",
|
|
"declKind": "Constructor",
|
|
"usr": "s:4cake2C1CACycfc",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "C1",
|
|
"printedName": "C1"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Function",
|
|
"name": "foo1",
|
|
"printedName": "foo1(_:b:)",
|
|
"declKind": "Func",
|
|
"usr": "s:4cake4foo1_1bySi_AA2S1VtF",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Void",
|
|
"printedName": "()"
|
|
},
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Int",
|
|
"printedName": "Int",
|
|
"hasDefaultArg": true
|
|
},
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "S1",
|
|
"printedName": "S1"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Function",
|
|
"name": "foo2",
|
|
"printedName": "foo2(_:b:)",
|
|
"declKind": "Func",
|
|
"usr": "s:4cake4foo2_1bySi_AA2S1VtF",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Void",
|
|
"printedName": "()"
|
|
},
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Int",
|
|
"printedName": "Int",
|
|
"hasDefaultArg": true
|
|
},
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "S1",
|
|
"printedName": "S1"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "TypeDecl",
|
|
"name": "Number",
|
|
"printedName": "Number",
|
|
"declKind": "Enum",
|
|
"usr": "s:4cake6NumberO",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"conformingProtocols": [
|
|
"Equatable",
|
|
"Hashable",
|
|
"RawRepresentable"
|
|
],
|
|
"enumRawTypeName": "Int",
|
|
"children": [
|
|
{
|
|
"kind": "Var",
|
|
"name": "one",
|
|
"printedName": "one",
|
|
"declKind": "EnumElement",
|
|
"usr": "s:4cake6NumberO3oneyA2CmF",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeFunc",
|
|
"name": "Function",
|
|
"printedName": "(Number.Type) -> Number",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Number",
|
|
"printedName": "Number"
|
|
},
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Metatype",
|
|
"printedName": "Number.Type",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Number",
|
|
"printedName": "Number"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "TypeAlias",
|
|
"name": "RawValue",
|
|
"printedName": "RawValue",
|
|
"declKind": "TypeAlias",
|
|
"usr": "s:4cake6NumberO8RawValuea",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Int",
|
|
"printedName": "Int"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Var",
|
|
"name": "hashValue",
|
|
"printedName": "hashValue",
|
|
"declKind": "Var",
|
|
"usr": "s:4cake6NumberO9hashValueSivp",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Int",
|
|
"printedName": "Int"
|
|
},
|
|
{
|
|
"kind": "Getter",
|
|
"name": "_",
|
|
"printedName": "_()",
|
|
"declKind": "Accessor",
|
|
"usr": "s:4cake6NumberO9hashValueSivg",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Int",
|
|
"printedName": "Int"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Constructor",
|
|
"name": "init",
|
|
"printedName": "init(rawValue:)",
|
|
"declKind": "Constructor",
|
|
"usr": "s:4cake6NumberO8rawValueACSgSi_tcfc",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Optional",
|
|
"printedName": "Number?",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Number",
|
|
"printedName": "Number"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Int",
|
|
"printedName": "Int"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Var",
|
|
"name": "rawValue",
|
|
"printedName": "rawValue",
|
|
"declKind": "Var",
|
|
"usr": "s:4cake6NumberO8rawValueSivp",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Int",
|
|
"printedName": "Int"
|
|
},
|
|
{
|
|
"kind": "Getter",
|
|
"name": "_",
|
|
"printedName": "_()",
|
|
"declKind": "Accessor",
|
|
"usr": "s:4cake6NumberO8rawValueSivg",
|
|
"location": "",
|
|
"moduleName": "cake",
|
|
"children": [
|
|
{
|
|
"kind": "TypeNominal",
|
|
"name": "Int",
|
|
"printedName": "Int"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |