| { |
| "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>", |
| "usr": "s:4cake2C0C", |
| "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", |
| "usr": "s:4cake2S1V" |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| "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?", |
| "usr": "s:Sq", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "C1", |
| "printedName": "C1", |
| "usr": "s:4cake2C1C" |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| "kind": "Setter", |
| "name": "_", |
| "printedName": "_()", |
| "declKind": "Accessor", |
| "usr": "s:4cake2C1C3InsACSgXwvs", |
| "location": "", |
| "moduleName": "cake", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "Void", |
| "printedName": "()" |
| }, |
| { |
| "kind": "TypeNominal", |
| "name": "Optional", |
| "printedName": "C1?", |
| "usr": "s:Sq", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "C1", |
| "printedName": "C1", |
| "usr": "s:4cake2C1C" |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| "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", |
| "usr": "s:4cake2C1C" |
| } |
| ] |
| }, |
| { |
| "kind": "Setter", |
| "name": "_", |
| "printedName": "_()", |
| "declKind": "Accessor", |
| "usr": "s:4cake2C1C4Ins2ACXovs", |
| "location": "", |
| "moduleName": "cake", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "Void", |
| "printedName": "()" |
| }, |
| { |
| "kind": "TypeNominal", |
| "name": "C1", |
| "printedName": "C1", |
| "usr": "s:4cake2C1C" |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| "kind": "Constructor", |
| "name": "init", |
| "printedName": "init()", |
| "declKind": "Constructor", |
| "usr": "s:4cake2C1CACycfc", |
| "location": "", |
| "moduleName": "cake", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "C1", |
| "printedName": "C1", |
| "usr": "s:4cake2C1C" |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| "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, |
| "usr": "s:Si" |
| }, |
| { |
| "kind": "TypeNominal", |
| "name": "S1", |
| "printedName": "S1", |
| "usr": "s:4cake2S1V" |
| } |
| ] |
| }, |
| { |
| "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, |
| "usr": "s:Si" |
| }, |
| { |
| "kind": "TypeNominal", |
| "name": "S1", |
| "printedName": "S1", |
| "usr": "s:4cake2S1V" |
| } |
| ] |
| }, |
| { |
| "kind": "Function", |
| "name": "foo3", |
| "printedName": "foo3(_:)", |
| "declKind": "Func", |
| "usr": "s:4cake4foo3yys10DictionaryVySiSSGF", |
| "location": "", |
| "moduleName": "cake", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "Void", |
| "printedName": "()" |
| }, |
| { |
| "kind": "TypeNominal", |
| "name": "Dictionary", |
| "printedName": "[Int : String]", |
| "usr": "s:s10DictionaryV", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "Int", |
| "printedName": "Int", |
| "usr": "s:Si" |
| }, |
| { |
| "kind": "TypeNominal", |
| "name": "String", |
| "printedName": "String", |
| "usr": "s:SS" |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| "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", |
| "usr": "s:4cake6NumberO" |
| }, |
| { |
| "kind": "TypeNominal", |
| "name": "Metatype", |
| "printedName": "Number.Type", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "Number", |
| "printedName": "Number", |
| "usr": "s:4cake6NumberO" |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| "kind": "TypeAlias", |
| "name": "RawValue", |
| "printedName": "RawValue", |
| "declKind": "TypeAlias", |
| "usr": "s:4cake6NumberO8RawValuea", |
| "location": "", |
| "moduleName": "cake", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "Int", |
| "printedName": "Int", |
| "usr": "s:Si" |
| } |
| ] |
| }, |
| { |
| "kind": "Var", |
| "name": "hashValue", |
| "printedName": "hashValue", |
| "declKind": "Var", |
| "usr": "s:4cake6NumberO9hashValueSivp", |
| "location": "", |
| "moduleName": "cake", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "Int", |
| "printedName": "Int", |
| "usr": "s:Si" |
| }, |
| { |
| "kind": "Getter", |
| "name": "_", |
| "printedName": "_()", |
| "declKind": "Accessor", |
| "usr": "s:4cake6NumberO9hashValueSivg", |
| "location": "", |
| "moduleName": "cake", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "Int", |
| "printedName": "Int", |
| "usr": "s:Si" |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| "kind": "Constructor", |
| "name": "init", |
| "printedName": "init(rawValue:)", |
| "declKind": "Constructor", |
| "usr": "s:4cake6NumberO8rawValueACSgSi_tcfc", |
| "location": "", |
| "moduleName": "cake", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "Optional", |
| "printedName": "Number?", |
| "usr": "s:Sq", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "Number", |
| "printedName": "Number", |
| "usr": "s:4cake6NumberO" |
| } |
| ] |
| }, |
| { |
| "kind": "TypeNominal", |
| "name": "Int", |
| "printedName": "Int", |
| "usr": "s:Si" |
| } |
| ] |
| }, |
| { |
| "kind": "Var", |
| "name": "rawValue", |
| "printedName": "rawValue", |
| "declKind": "Var", |
| "usr": "s:4cake6NumberO8rawValueSivp", |
| "location": "", |
| "moduleName": "cake", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "Int", |
| "printedName": "Int", |
| "usr": "s:Si" |
| }, |
| { |
| "kind": "Getter", |
| "name": "_", |
| "printedName": "_()", |
| "declKind": "Accessor", |
| "usr": "s:4cake6NumberO8rawValueSivg", |
| "location": "", |
| "moduleName": "cake", |
| "children": [ |
| { |
| "kind": "TypeNominal", |
| "name": "Int", |
| "printedName": "Int", |
| "usr": "s:Si" |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| } |