You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1862 lines
45 KiB

["TranslationUnitDecl" , [
{
"pointer" : 1,
"source_range" : [
{
},
{
}
]
},
[
["TypedefDecl" , [
{
"pointer" : 2,
"source_range" : [
{
},
{
}
],
"is_implicit" : true
},
{
"name" : "__int128_t",
"qual_name" : [
"__int128_t"
]
},
0,
{
}
]],
["TypedefDecl" , [
{
"pointer" : 3,
"source_range" : [
{
},
{
}
],
"is_implicit" : true
},
{
"name" : "__uint128_t",
"qual_name" : [
"__uint128_t"
]
},
0,
{
}
]],
["TypedefDecl" , [
{
"pointer" : 4,
"source_range" : [
{
},
{
}
],
"is_implicit" : true
},
{
"name" : "SEL",
"qual_name" : [
"SEL"
]
},
5,
{
}
]],
["TypedefDecl" , [
{
"pointer" : 6,
"source_range" : [
{
},
{
}
],
"is_implicit" : true,
"is_this_declaration_referenced" : true
},
{
"name" : "id",
"qual_name" : [
"id"
]
},
7,
{
}
]],
["TypedefDecl" , [
{
"pointer" : 8,
"source_range" : [
{
},
{
}
],
"is_implicit" : true
},
{
"name" : "Class",
"qual_name" : [
"Class"
]
},
0,
{
}
]],
["ObjCInterfaceDecl" , [
{
"pointer" : 9,
"parent_pointer" : 1,
"source_range" : [
{
},
{
}
],
"is_implicit" : true
},
{
"name" : "Protocol",
"qual_name" : [
"Protocol"
]
},
[
],
{
},
{
}
]],
["TypedefDecl" , [
{
"pointer" : 10,
"source_range" : [
{
},
{
}
],
"is_implicit" : true
},
{
"name" : "__NSConstantString",
"qual_name" : [
"__NSConstantString"
]
},
0,
{
}
]],
["TypedefDecl" , [
{
"pointer" : 11,
"source_range" : [
{
},
{
}
],
"is_implicit" : true
},
{
"name" : "__builtin_ms_va_list",
"qual_name" : [
"__builtin_ms_va_list"
]
},
0,
{
}
]],
["TypedefDecl" , [
{
"pointer" : 12,
"source_range" : [
{
},
{
}
],
"is_implicit" : true
},
{
"name" : "__builtin_va_list",
"qual_name" : [
"__builtin_va_list"
]
},
0,
{
}
]],
["ObjCInterfaceDecl" , [
{
"pointer" : 13,
"parent_pointer" : 1,
"source_range" : [
{
"file" : "tests/optional.m",
"line" : 8,
"column" : 1
},
{
"line" : 9,
"column" : 2
}
]
},
{
"name" : "NSObject",
"qual_name" : [
"NSObject"
]
},
[
],
{
},
{
}
]],
["ObjCProtocolDecl" , [
{
"pointer" : 14,
"parent_pointer" : 1,
"source_range" : [
{
"line" : 11,
"column" : 1
},
{
"line" : 12,
"column" : 2
}
]
},
{
"name" : "NSObject",
"qual_name" : [
"NSObject"
]
},
[
],
{
},
{
}
]],
["ObjCProtocolDecl" , [
{
"pointer" : 15,
"parent_pointer" : 1,
"source_range" : [
{
"line" : 14,
"column" : 1
},
{
"line" : 17,
"column" : 2
}
]
},
{
"name" : "BarDelegate",
"qual_name" : [
"BarDelegate"
]
},
[
["ObjCMethodDecl" , [
{
"pointer" : 16,
"parent_pointer" : 15,
"source_range" : [
{
"line" : 16,
"column" : 1
},
{
"column" : 25
}
]
},
{
"name" : "optionalFunction",
"qual_name" : [
"optionalFunction",
"BarDelegate"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 17
},
"is_optional" : true,
"mangled_name" : "-[BarDelegate optionalFunction]"
}
]]
],
{
},
{
"protocols" : [
{
"kind" : "ObjCProtocol",
"decl_pointer" : 14,
"name" : {
"name" : "NSObject",
"qual_name" : [
"NSObject"
]
}
}
]
}
]],
["ObjCInterfaceDecl" , [
{
"pointer" : 18,
"parent_pointer" : 1,
"source_range" : [
{
"line" : 19,
"column" : 1
},
{
"line" : 21,
"column" : 2
}
]
},
{
"name" : "Bar",
"qual_name" : [
"Bar"
]
},
[
["ObjCPropertyDecl" , [
{
"pointer" : 19,
"parent_pointer" : 18,
"source_range" : [
{
"line" : 20,
"column" : 1
},
{
"column" : 46
}
]
},
{
"name" : "delegate",
"qual_name" : [
"delegate",
"Bar"
]
},
{
"qual_type" : {
"type_ptr" : 20
},
"getter_method" : {
"kind" : "ObjCMethod",
"decl_pointer" : 21,
"name" : {
"name" : "delegate",
"qual_name" : [
"delegate",
"Bar"
]
}
},
"setter_method" : {
"kind" : "ObjCMethod",
"decl_pointer" : 22,
"name" : {
"name" : "setDelegate:",
"qual_name" : [
"setDelegate:",
"Bar"
]
}
},
"ivar_decl" : {
"kind" : "ObjCIvar",
"decl_pointer" : 23,
"name" : {
"name" : "_delegate",
"qual_name" : [
"_delegate",
"Bar"
]
},
"qual_type" : {
"type_ptr" : 20
}
},
"property_attributes" : [
"Assign",
"Readwrite",
"Nonatomic",
"Unsafe_unretained"
]
}
]],
["ObjCMethodDecl" , [
{
"pointer" : 21,
"parent_pointer" : 18,
"source_range" : [
{
"column" : 46
},
{
"column" : 46
}
],
"is_implicit" : true
},
{
"name" : "delegate",
"qual_name" : [
"delegate",
"Bar"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 20
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : "ObjCProperty",
"decl_pointer" : 19,
"name" : {
"name" : "delegate",
"qual_name" : [
"delegate",
"Bar"
]
}
},
"implicit_parameters" : [
["ImplicitParamDecl" , [
{
"pointer" : 24,
"source_range" : [
{
},
{
}
],
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 25,
"is_const" : true
},
{
}
]],
["ImplicitParamDecl" , [
{
"pointer" : 26,
"source_range" : [
{
},
{
}
],
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
]]
],
"mangled_name" : "-[Bar delegate]"
}
]],
["ObjCMethodDecl" , [
{
"pointer" : 22,
"parent_pointer" : 18,
"source_range" : [
{
"column" : 46
},
{
"column" : 46
}
],
"is_implicit" : true
},
{
"name" : "setDelegate:",
"qual_name" : [
"setDelegate:",
"Bar"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 17
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : "ObjCProperty",
"decl_pointer" : 19,
"name" : {
"name" : "delegate",
"qual_name" : [
"delegate",
"Bar"
]
}
},
"parameters" : [
["ParmVarDecl" , [
{
"pointer" : 27,
"source_range" : [
{
"column" : 46
},
{
"column" : 46
}
]
},
{
"name" : "delegate",
"qual_name" : [
"delegate"
]
},
{
"type_ptr" : 20
},
{
"parm_index_in_function" : 0
}
]]
],
"implicit_parameters" : [
["ImplicitParamDecl" , [
{
"pointer" : 28,
"source_range" : [
{
},
{
}
],
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 25,
"is_const" : true
},
{
}
]],
["ImplicitParamDecl" , [
{
"pointer" : 29,
"source_range" : [
{
},
{
}
],
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
]]
],
"mangled_name" : "-[Bar setDelegate:]"
}
]]
],
{
},
{
"super" : {
"kind" : "ObjCInterface",
"decl_pointer" : 13,
"name" : {
"name" : "NSObject",
"qual_name" : [
"NSObject"
]
}
},
"implementation" : {
"kind" : "ObjCImplementation",
"decl_pointer" : 30,
"name" : {
"name" : "Bar",
"qual_name" : [
"Bar"
]
}
}
}
]],
["ObjCImplementationDecl" , [
{
"pointer" : 30,
"parent_pointer" : 1,
"source_range" : [
{
"line" : 23,
"column" : 1
},
{
"line" : 28,
"column" : 1
}
]
},
{
"name" : "Bar",
"qual_name" : [
"Bar"
]
},
[
["ObjCMethodDecl" , [
{
"pointer" : 31,
"parent_pointer" : 30,
"source_range" : [
{
"line" : 24,
"column" : 1
},
{
"line" : 26,
"column" : 1
}
]
},
{
"name" : "unsafeAction",
"qual_name" : [
"unsafeAction",
"Bar"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 17
},
"implicit_parameters" : [
["ImplicitParamDecl" , [
{
"pointer" : 32,
"source_range" : [
{
},
{
}
],
"is_implicit" : true,
"is_used" : true,
"is_this_declaration_referenced" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 25,
"is_const" : true
},
{
}
]],
["ImplicitParamDecl" , [
{
"pointer" : 33,
"source_range" : [
{
},
{
}
],
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
]]
],
"body" : ["CompoundStmt" , [
{
"pointer" : 34,
"source_range" : [
{
"line" : 24,
"column" : 22
},
{
"line" : 26,
"column" : 1
}
]
},
[
["ExprWithCleanups" , [
{
"pointer" : 35,
"source_range" : [
{
"line" : 25,
"column" : 3
},
{
"column" : 34
}
]
},
[
["ObjCMessageExpr" , [
{
"pointer" : 36,
"source_range" : [
{
"column" : 3
},
{
"column" : 34
}
]
},
[
["PseudoObjectExpr" , [
{
"pointer" : 37,
"source_range" : [
{
"column" : 4
},
{
"column" : 9
}
]
},
[
["ObjCPropertyRefExpr" , [
{
"pointer" : 38,
"source_range" : [
{
"column" : 4
},
{
"column" : 9
}
]
},
[
["OpaqueValueExpr" , [
{
"pointer" : 39,
"source_range" : [
{
"column" : 4
},
{
"column" : 4
}
]
},
[
],
{
"qual_type" : {
"type_ptr" : 25
}
},
{
"source_expr" : ["ImplicitCastExpr" , [
{
"pointer" : 40,
"source_range" : [
{
"column" : 4
},
{
"column" : 4
}
]
},
[
["DeclRefExpr" , [
{
"pointer" : 41,
"source_range" : [
{
"column" : 4
},
{
"column" : 4
}
]
},
[
],
{
"qual_type" : {
"type_ptr" : 25,
"is_const" : true
},
"value_kind" : "LValue"
},
{
"decl_ref" : {
"kind" : "ImplicitParam",
"decl_pointer" : 32,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 25,
"is_const" : true
}
}
}
]]
],
{
"qual_type" : {
"type_ptr" : 25
}
},
{
"cast_kind" : "LValueToRValue",
"base_path" : [
]
}
]]
}
]]
],
{
"qual_type" : {
"type_ptr" : 42
},
"value_kind" : "LValue",
"object_kind" : "ObjCProperty"
},
{
"kind" : ["PropertyRef" , {
"kind" : "ObjCProperty",
"decl_pointer" : 19,
"name" : {
"name" : "delegate",
"qual_name" : [
"delegate",
"Bar"
]
}
}],
"is_messaging_getter" : true
}
]],
["OpaqueValueExpr" , [
{
"pointer" : 39,
"source_range" : [
{
"column" : 4
},
{
"column" : 4
}
]
},
[
],
{
"qual_type" : {
"type_ptr" : 25
}
},
{
"source_expr" : ["ImplicitCastExpr" , [
{
"pointer" : 40,
"source_range" : [
{
"column" : 4
},
{
"column" : 4
}
]
},
[
["DeclRefExpr" , [
{
"pointer" : 41,
"source_range" : [
{
"column" : 4
},
{
"column" : 4
}
]
},
[
],
{
"qual_type" : {
"type_ptr" : 25,
"is_const" : true
},
"value_kind" : "LValue"
},
{
"decl_ref" : {
"kind" : "ImplicitParam",
"decl_pointer" : 32,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 25,
"is_const" : true
}
}
}
]]
],
{
"qual_type" : {
"type_ptr" : 25
}
},
{
"cast_kind" : "LValueToRValue",
"base_path" : [
]
}
]]
}
]],
["ImplicitCastExpr" , [
{
"pointer" : 43,
"source_range" : [
{
"column" : 9
},
{
"column" : 9
}
]
},
[
["ObjCMessageExpr" , [
{
"pointer" : 44,
"source_range" : [
{
"column" : 9
},
{
"column" : 9
}
]
},
[
["OpaqueValueExpr" , [
{
"pointer" : 39,
"source_range" : [
{
"column" : 4
},
{
"column" : 4
}
]
},
[
],
{
"qual_type" : {
"type_ptr" : 25
}
},
{
"source_expr" : ["ImplicitCastExpr" , [
{
"pointer" : 40,
"source_range" : [
{
"column" : 4
},
{
"column" : 4
}
]
},
[
["DeclRefExpr" , [
{
"pointer" : 41,
"source_range" : [
{
"column" : 4
},
{
"column" : 4
}
]
},
[
],
{
"qual_type" : {
"type_ptr" : 25,
"is_const" : true
},
"value_kind" : "LValue"
},
{
"decl_ref" : {
"kind" : "ImplicitParam",
"decl_pointer" : 32,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 25,
"is_const" : true
}
}
}
]]
],
{
"qual_type" : {
"type_ptr" : 25
}
},
{
"cast_kind" : "LValueToRValue",
"base_path" : [
]
}
]]
}
]]
],
{
"qual_type" : {
"type_ptr" : 20
}
},
{
"selector" : "delegate",
"decl_pointer" : 21
}
]]
],
{
"qual_type" : {
"type_ptr" : 20
}
},
{
"cast_kind" : "ARCReclaimReturnedObject",
"base_path" : [
]
}
]]
],
{
"qual_type" : {
"type_ptr" : 20
}
}
]]
],
{
"qual_type" : {
"type_ptr" : 17
}
},
{
"selector" : "optionalFunction",
"decl_pointer" : 16
}
]]
],
{
"qual_type" : {
"type_ptr" : 17
}
},
{
}
]]
]
]],
"mangled_name" : "-[Bar unsafeAction]"
}
]],
["ObjCIvarDecl" , [
{
"pointer" : 23,
"parent_pointer" : 30,
"source_range" : [
{
"line" : 20,
"column" : 46
},
{
"column" : 46
}
]
},
{
"name" : "_delegate",
"qual_name" : [
"_delegate",
"Bar"
]
},
{
"type_ptr" : 20
},
{
},
{
"is_synthesize" : true,
"access_control" : "Private"
}
]],
["ObjCPropertyImplDecl" , [
{
"pointer" : 45,
"source_range" : [
{
},
{
"column" : 46
}
]
},
{
"implementation" : "Synthesize",
"property_decl" : {
"kind" : "ObjCProperty",
"decl_pointer" : 19,
"name" : {
"name" : "delegate",
"qual_name" : [
"delegate",
"Bar"
]
}
},
"ivar_decl" : {
"kind" : "ObjCIvar",
"decl_pointer" : 23,
"name" : {
"name" : "_delegate",
"qual_name" : [
"_delegate",
"Bar"
]
},
"qual_type" : {
"type_ptr" : 20
}
}
}
]]
],
{
},
{
"class_interface" : {
"kind" : "ObjCInterface",
"decl_pointer" : 18,
"name" : {
"name" : "Bar",
"qual_name" : [
"Bar"
]
}
}
}
]],
["TypedefDecl" , [
{
"pointer" : 46,
"source_range" : [
{
},
{
}
],
"is_implicit" : true
},
{
"name" : "instancetype",
"qual_name" : [
"instancetype"
]
},
47,
{
}
]]
],
{
},
{
"input_path" : "tests/optional.m",
"input_kind" : "IK_ObjC",
"integer_type_widths" : {
"char_type" : 8,
"short_type" : 16,
"int_type" : 32,
"long_type" : 64,
"longlong_type" : 64
},
"is_objc_arc_on" : true,
"types" : [
["BuiltinType" , [
{
"pointer" : 17
},
"Void"
]],
["BuiltinType" , [
{
"pointer" : 48
},
"Bool"
]],
["BuiltinType" , [
{
"pointer" : 49
},
"Char_S"
]],
["BuiltinType" , [
{
"pointer" : 50
},
"SChar"
]],
["BuiltinType" , [
{
"pointer" : 51
},
"Short"
]],
["BuiltinType" , [
{
"pointer" : 52
},
"Int"
]],
["BuiltinType" , [
{
"pointer" : 53
},
"Long"
]],
["BuiltinType" , [
{
"pointer" : 54
},
"LongLong"
]],
["BuiltinType" , [
{
"pointer" : 55
},
"UChar"
]],
["BuiltinType" , [
{
"pointer" : 56
},
"UShort"
]],
["BuiltinType" , [
{
"pointer" : 57
},
"UInt"
]],
["BuiltinType" , [
{
"pointer" : 58
},
"ULong"
]],
["BuiltinType" , [
{
"pointer" : 59
},
"ULongLong"
]],
["BuiltinType" , [
{
"pointer" : 60
},
"Float"
]],
["BuiltinType" , [
{
"pointer" : 61
},
"Double"
]],
["BuiltinType" , [
{
"pointer" : 62
},
"LongDouble"
]],
["BuiltinType" , [
{
"pointer" : 63
},
"Float128"
]],
["BuiltinType" , [
{
"pointer" : 64
},
"Float16"
]],
["BuiltinType" , [
{
"pointer" : 65
},
"ShortAccum"
]],
["BuiltinType" , [
{
"pointer" : 66
},
"Accum"
]],
["BuiltinType" , [
{
"pointer" : 67
},
"LongAccum"
]],
["BuiltinType" , [
{
"pointer" : 68
},
"UShortAccum"
]],
["BuiltinType" , [
{
"pointer" : 69
},
"UAccum"
]],
["BuiltinType" , [
{
"pointer" : 70
},
"ULongAccum"
]],
["BuiltinType" , [
{
"pointer" : 71
},
"ShortFract"
]],
["BuiltinType" , [
{
"pointer" : 72
},
"Fract"
]],
["BuiltinType" , [
{
"pointer" : 73
},
"LongFract"
]],
["BuiltinType" , [
{
"pointer" : 74
},
"UShortFract"
]],
["BuiltinType" , [
{
"pointer" : 75
},
"UFract"
]],
["BuiltinType" , [
{
"pointer" : 76
},
"ULongFract"
]],
["BuiltinType" , [
{
"pointer" : 77
},
"SatShortAccum"
]],
["BuiltinType" , [
{
"pointer" : 78
},
"SatAccum"
]],
["BuiltinType" , [
{
"pointer" : 79
},
"SatLongAccum"
]],
["BuiltinType" , [
{
"pointer" : 80
},
"SatUShortAccum"
]],
["BuiltinType" , [
{
"pointer" : 81
},
"SatUAccum"
]],
["BuiltinType" , [
{
"pointer" : 82
},
"SatULongAccum"
]],
["BuiltinType" , [
{
"pointer" : 83
},
"SatShortFract"
]],
["BuiltinType" , [
{
"pointer" : 84
},
"SatFract"
]],
["BuiltinType" , [
{
"pointer" : 85
},
"SatLongFract"
]],
["BuiltinType" , [
{
"pointer" : 86
},
"SatUShortFract"
]],
["BuiltinType" , [
{
"pointer" : 87
},
"SatUFract"
]],
["BuiltinType" , [
{
"pointer" : 88
},
"SatULongFract"
]],
["BuiltinType" , [
{
"pointer" : 89
},
"Int128"
]],
["BuiltinType" , [
{
"pointer" : 90
},
"UInt128"
]],
["BuiltinType" , [
{
"pointer" : 91
},
"WChar_S"
]],
["BuiltinType" , [
{
"pointer" : 92
},
"Char8"
]],
["BuiltinType" , [
{
"pointer" : 93
},
"Dependent"
]],
["BuiltinType" , [
{
"pointer" : 94
},
"Overload"
]],
["BuiltinType" , [
{
"pointer" : 95
},
"BoundMember"
]],
["BuiltinType" , [
{
"pointer" : 42
},
"PseudoObject"
]],
["BuiltinType" , [
{
"pointer" : 96
},
"UnknownAny"
]],
["BuiltinType" , [
{
"pointer" : 97
},
"ARCUnbridgedCast"
]],
["BuiltinType" , [
{
"pointer" : 98
},
"BuiltinFn"
]],
["ComplexType" , [
{
"pointer" : 99
}
]],
["ComplexType" , [
{
"pointer" : 100
}
]],
["ComplexType" , [
{
"pointer" : 101
}
]],
["ComplexType" , [
{
"pointer" : 102
}
]],
["BuiltinType" , [
{
"pointer" : 103
},
"ObjCId"
]],
["BuiltinType" , [
{
"pointer" : 104
},
"ObjCClass"
]],
["BuiltinType" , [
{
"pointer" : 105
},
"ObjCSel"
]],
["PointerType" , [
{
"pointer" : 106
},
{
"type_ptr" : 17
}
]],
["BuiltinType" , [
{
"pointer" : 107
},
"NullPtr"
]],
["BuiltinType" , [
{
"pointer" : 108
},
"Half"
]],
["PointerType" , [
{
"pointer" : 109
},
{
"type_ptr" : 105
}
]],
["ObjCObjectType" , [
{
"pointer" : 110
},
{
"base_type" : 103
}
]],
["ObjCObjectPointerType" , [
{
"pointer" : 111
},
{
"type_ptr" : 110
}
]],
["ObjCObjectType" , [
{
"pointer" : 112
},
{
"base_type" : 104
}
]],
["ObjCObjectPointerType" , [
{
"pointer" : 113
},
{
"type_ptr" : 112
}
]],
["ObjCInterfaceType" , [
{
"pointer" : 114
},
9
]],
["RecordType" , [
{
"pointer" : 115
},
116
]],
["PointerType" , [
{
"pointer" : 117
},
{
"type_ptr" : 52,
"is_const" : true
}
]],
["PointerType" , [
{
"pointer" : 118
},
{
"type_ptr" : 49,
"is_const" : true
}
]],
["PointerType" , [
{
"pointer" : 119
},
{
"type_ptr" : 49
}
]],
["RecordType" , [
{
"pointer" : 120
},
121
]],
["ConstantArrayType" , [
{
"pointer" : 122
},
{
"element_type" : {
"type_ptr" : 120
},
"stride" : 24
},
1
]],
["ObjCInterfaceType" , [
{
"pointer" : 123
},
13
]],
["TypedefType" , [
{
"pointer" : 7,
"desugared_type" : 111
},
{
"child_type" : {
"type_ptr" : 111
},
"decl_ptr" : 6
}
]],
["TypedefType" , [
{
"pointer" : 47,
"desugared_type" : 111
},
{
"child_type" : {
"type_ptr" : 7
},
"decl_ptr" : 46
}
]],
["ObjCInterfaceType" , [
{
"pointer" : 124
},
18
]],
["ObjCObjectType" , [
{
"pointer" : 125
},
{
"base_type" : 103,
"protocol_decls_ptr" : [
15
]
}
]],
["ObjCObjectPointerType" , [
{
"pointer" : 20
},
{
"type_ptr" : 125
}
]],
["ObjCObjectPointerType" , [
{
"pointer" : 25
},
{
"type_ptr" : 124
}
]],
["TypedefType" , [
{
"pointer" : 5,
"desugared_type" : 109
},
{
"child_type" : {
"type_ptr" : 109
},
"decl_ptr" : 4
}
]],
["NoneType" , [
{
"pointer" : 0
}
]]
]
}
]]