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.

15216 lines
530 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,
"is_this_declaration_referenced" : 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,
"is_this_declaration_referenced" : true
},
{
"name" : "Class",
"qual_name" : [
"Class"
]
},
9,
{
}
)>,
<"ObjCInterfaceDecl" : (
{
"pointer" : 10,
"parent_pointer" : 1,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "Protocol",
"qual_name" : [
"Protocol"
]
},
[
],
{
},
{
}
)>,
<"TypedefDecl" : (
{
"pointer" : 11,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "__NSConstantString",
"qual_name" : [
"__NSConstantString"
]
},
0,
{
}
)>,
<"TypedefDecl" : (
{
"pointer" : 12,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "__builtin_ms_va_list",
"qual_name" : [
"__builtin_ms_va_list"
]
},
0,
{
}
)>,
<"TypedefDecl" : (
{
"pointer" : 13,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "__builtin_va_list",
"qual_name" : [
"__builtin_va_list"
]
},
0,
{
}
)>,
<"TypedefDecl" : (
{
"pointer" : 14,
"source_range" : (
{
"file" : "tests/FoundationStub.h",
"line" : 8,
"column" : 1
},
{
"column" : 13
}
),
"is_this_declaration_referenced" : true
},
{
"name" : "BOOL",
"qual_name" : [
"BOOL"
]
},
15,
{
}
)>,
<"TypedefDecl" : (
{
"pointer" : 16,
"source_range" : (
{
"line" : 9,
"column" : 1
},
{
"column" : 22
}
),
"is_this_declaration_referenced" : true
},
{
"name" : "NSUInteger",
"qual_name" : [
"NSUInteger"
]
},
17,
{
}
)>,
<"ObjCInterfaceDecl" : (
{
"pointer" : 18,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 16,
"column" : 1
},
{
"line" : 27,
"column" : 2
}
)
},
{
"name" : "NSObject",
"qual_name" : [
"NSObject"
]
},
[
<"ObjCMethodDecl" : (
{
"pointer" : 19,
"parent_pointer" : 18,
"source_range" : (
{
"line" : 18,
"column" : 1
},
{
"column" : 22
}
),
"attributes" : [
<"NSReturnsRetainedAttr" : (
{
"pointer" : 20,
"source_range" : (
{
},
{
}
)
}
)>
]
},
{
"name" : "alloc",
"qual_name" : [
"alloc",
"NSObject"
]
},
{
"result_type" : {
"type_ptr" : 21
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 22,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 9,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 23,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "+[NSObject alloc]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 24,
"parent_pointer" : 18,
"source_range" : (
{
"line" : 19,
"column" : 1
},
{
"column" : 20
}
),
"attributes" : [
<"NSReturnsRetainedAttr" : (
{
"pointer" : 25,
"source_range" : (
{
},
{
}
)
}
)>
]
},
{
"name" : "new",
"qual_name" : [
"new",
"NSObject"
]
},
{
"result_type" : {
"type_ptr" : 21
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 26,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 9,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 27,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "+[NSObject new]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 28,
"parent_pointer" : 18,
"source_range" : (
{
"line" : 20,
"column" : 1
},
{
"column" : 28
}
)
},
{
"name" : "autorelease",
"qual_name" : [
"autorelease",
"NSObject"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 21
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 29,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 30,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 31,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[NSObject autorelease]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 32,
"parent_pointer" : 18,
"source_range" : (
{
"line" : 21,
"column" : 1
},
{
"column" : 21
}
),
"attributes" : [
<"NSConsumesSelfAttr" : (
{
"pointer" : 33,
"source_range" : (
{
},
{
}
)
}
)>,
<"NSReturnsRetainedAttr" : (
{
"pointer" : 34,
"source_range" : (
{
},
{
}
)
}
)>
]
},
{
"name" : "init",
"qual_name" : [
"init",
"NSObject"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 21
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 35,
"source_range" : (
{
},
{
}
),
"is_implicit" : true,
"attributes" : [
<"NSConsumedAttr" : (
{
"pointer" : 36,
"source_range" : (
{
},
{
}
)
}
)>
]
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 30
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 37,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[NSObject init]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 38,
"parent_pointer" : 18,
"source_range" : (
{
"line" : 22,
"column" : 1
},
{
"column" : 15
}
)
},
{
"name" : "class",
"qual_name" : [
"class",
"NSObject"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 9
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 39,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 30,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 40,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[NSObject class]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 41,
"parent_pointer" : 18,
"source_range" : (
{
"line" : 24,
"column" : 1
},
{
"column" : 34
}
)
},
{
"name" : "respondsToSelector:",
"qual_name" : [
"respondsToSelector:",
"NSObject"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 15
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 42,
"source_range" : (
{
"column" : 29
},
{
"column" : 33
}
)
},
{
"name" : "s",
"qual_name" : [
"s"
]
},
{
"type_ptr" : 5
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 43,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 30,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 44,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[NSObject respondsToSelector:]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 45,
"parent_pointer" : 18,
"source_range" : (
{
"line" : 25,
"column" : 1
},
{
"column" : 41
}
)
},
{
"name" : "conformsToProtocol:",
"qual_name" : [
"conformsToProtocol:",
"NSObject"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 15
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 46,
"source_range" : (
{
"column" : 29
},
{
"column" : 40
}
)
},
{
"name" : "p",
"qual_name" : [
"p"
]
},
{
"type_ptr" : 47
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 48,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 30,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 49,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[NSObject conformsToProtocol:]"
}
)>
],
{
},
{
}
)>,
<"ObjCInterfaceDecl" : (
{
"pointer" : 50,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 29,
"column" : 1
},
{
"line" : 31,
"column" : 2
}
)
},
{
"name" : "NSNumber",
"qual_name" : [
"NSNumber"
]
},
[
<"ObjCMethodDecl" : (
{
"pointer" : 51,
"parent_pointer" : 50,
"source_range" : (
{
"line" : 30,
"column" : 1
},
{
"column" : 37
}
)
},
{
"name" : "numberWithInt:",
"qual_name" : [
"numberWithInt:",
"NSNumber"
]
},
{
"result_type" : {
"type_ptr" : 21
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 52,
"source_range" : (
{
"column" : 32
},
{
"column" : 36
}
)
},
{
"name" : "x",
"qual_name" : [
"x"
]
},
{
"type_ptr" : 53
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 54,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 9,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 55,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "+[NSNumber numberWithInt:]"
}
)>
],
{
},
{
"super" : {
"kind" : <"ObjCInterface">,
"decl_pointer" : 18,
"name" : {
"name" : "NSObject",
"qual_name" : [
"NSObject"
]
}
}
}
)>,
<"ObjCInterfaceDecl" : (
{
"pointer" : 56,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 33,
"column" : 1
},
{
"line" : 35,
"column" : 2
}
)
},
{
"name" : "NSString",
"qual_name" : [
"NSString"
]
},
[
<"ObjCMethodDecl" : (
{
"pointer" : 57,
"parent_pointer" : 56,
"source_range" : (
{
"line" : 34,
"column" : 1
},
{
"column" : 21
}
)
},
{
"name" : "length",
"qual_name" : [
"length",
"NSString"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 17
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 58,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 59,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 60,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[NSString length]"
}
)>
],
{
},
{
"super" : {
"kind" : <"ObjCInterface">,
"decl_pointer" : 18,
"name" : {
"name" : "NSObject",
"qual_name" : [
"NSObject"
]
}
}
}
)>,
<"ObjCInterfaceDecl" : (
{
"pointer" : 61,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 37,
"column" : 1
},
{
"line" : 42,
"column" : 2
}
)
},
{
"name" : "NSDictionary",
"qual_name" : [
"NSDictionary"
]
},
[
<"ObjCMethodDecl" : (
{
"pointer" : 62,
"parent_pointer" : 61,
"source_range" : (
{
"line" : 38,
"column" : 1
},
{
"line" : 40,
"column" : 56
}
)
},
{
"name" : "dictionaryWithObjects:forKeys:count:",
"qual_name" : [
"dictionaryWithObjects:forKeys:count:",
"NSDictionary"
]
},
{
"result_type" : {
"type_ptr" : 21
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 63,
"source_range" : (
{
"line" : 38,
"column" : 46
},
{
"column" : 51
}
)
},
{
"name" : "objects",
"qual_name" : [
"objects"
]
},
{
"type_ptr" : 64
},
{
"parm_index_in_function" : 0
}
)>,
<"ParmVarDecl" : (
{
"pointer" : 65,
"source_range" : (
{
"line" : 39,
"column" : 46
},
{
"column" : 51
}
)
},
{
"name" : "keys",
"qual_name" : [
"keys"
]
},
{
"type_ptr" : 64
},
{
"parm_index_in_function" : 1
}
)>,
<"ParmVarDecl" : (
{
"pointer" : 66,
"source_range" : (
{
"line" : 40,
"column" : 40
},
{
"column" : 51
}
)
},
{
"name" : "count",
"qual_name" : [
"count"
]
},
{
"type_ptr" : 17
},
{
"parm_index_in_function" : 2
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 67,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 9,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 68,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "+[NSDictionary dictionaryWithObjects:forKeys:count:]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 69,
"parent_pointer" : 61,
"source_range" : (
{
"line" : 41,
"column" : 1
},
{
"column" : 38
}
)
},
{
"name" : "objectForKeyedSubscript:",
"qual_name" : [
"objectForKeyedSubscript:",
"NSDictionary"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 7
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 70,
"source_range" : (
{
"column" : 32
},
{
"column" : 35
}
)
},
{
"name" : "key",
"qual_name" : [
"key"
]
},
{
"type_ptr" : 7
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 71,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 72,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 73,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[NSDictionary objectForKeyedSubscript:]"
}
)>
],
{
},
{
"super" : {
"kind" : <"ObjCInterface">,
"decl_pointer" : 18,
"name" : {
"name" : "NSObject",
"qual_name" : [
"NSObject"
]
}
}
}
)>,
<"ObjCInterfaceDecl" : (
{
"pointer" : 74,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 44,
"column" : 1
},
{
"line" : 47,
"column" : 2
}
)
},
{
"name" : "NSArray",
"qual_name" : [
"NSArray"
]
},
[
<"ObjCMethodDecl" : (
{
"pointer" : 75,
"parent_pointer" : 74,
"source_range" : (
{
"line" : 45,
"column" : 1
},
{
"column" : 64
}
)
},
{
"name" : "arrayWithObjects:count:",
"qual_name" : [
"arrayWithObjects:count:",
"NSArray"
]
},
{
"result_type" : {
"type_ptr" : 21
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 76,
"source_range" : (
{
"column" : 35
},
{
"column" : 40
}
)
},
{
"name" : "objs",
"qual_name" : [
"objs"
]
},
{
"type_ptr" : 77
},
{
"parm_index_in_function" : 0
}
)>,
<"ParmVarDecl" : (
{
"pointer" : 78,
"source_range" : (
{
"column" : 52
},
{
"column" : 61
}
)
},
{
"name" : "cnt",
"qual_name" : [
"cnt"
]
},
{
"type_ptr" : 79
},
{
"parm_index_in_function" : 1
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 80,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 9,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 81,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "+[NSArray arrayWithObjects:count:]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 82,
"parent_pointer" : 74,
"source_range" : (
{
"line" : 46,
"column" : 1
},
{
"column" : 49
}
)
},
{
"name" : "objectAtIndexedSubscript:",
"qual_name" : [
"objectAtIndexedSubscript:",
"NSArray"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 7
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 83,
"source_range" : (
{
"column" : 33
},
{
"column" : 44
}
)
},
{
"name" : "index",
"qual_name" : [
"index"
]
},
{
"type_ptr" : 17
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 84,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 85,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 86,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[NSArray objectAtIndexedSubscript:]"
}
)>
],
{
},
{
"super" : {
"kind" : <"ObjCInterface">,
"decl_pointer" : 18,
"name" : {
"name" : "NSObject",
"qual_name" : [
"NSObject"
]
}
}
}
)>,
<"ObjCInterfaceDecl" : (
{
"pointer" : 87,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 49,
"column" : 1
},
{
"line" : 50,
"column" : 2
}
)
},
{
"name" : "NSException",
"qual_name" : [
"NSException"
]
},
[
],
{
},
{
"super" : {
"kind" : <"ObjCInterface">,
"decl_pointer" : 18,
"name" : {
"name" : "NSObject",
"qual_name" : [
"NSObject"
]
}
}
}
)>,
<"FunctionDecl" : (
{
"pointer" : 88,
"source_range" : (
{
"line" : 52,
"column" : 13
},
{
"column" : 13
}
),
"is_implicit" : true,
"is_used" : true,
"attributes" : [
<"FormatAttr" : (
{
"pointer" : 89,
"source_range" : (
{
"column" : 13
},
{
"column" : 13
}
)
}
)>
]
},
{
"name" : "NSLog",
"qual_name" : [
"NSLog"
]
},
{
"type_ptr" : 90
},
{
"is_variadic" : true,
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 91,
"source_range" : (
{
},
{
}
)
},
{
"name" : "",
"qual_name" : [
""
]
},
{
"type_ptr" : 7
},
{
"parm_index_in_function" : 0
}
)>
]
}
)>,
<"FunctionDecl" : (
{
"pointer" : 92,
"source_range" : (
{
"column" : 1
},
{
"column" : 34
}
),
"is_used" : true,
"is_this_declaration_referenced" : true,
"attributes" : [
<"FormatAttr" : (
{
"pointer" : 93,
"source_range" : (
{
"column" : 13
},
{
"column" : 13
}
)
}
)>
]
},
{
"name" : "NSLog",
"qual_name" : [
"NSLog"
]
},
{
"type_ptr" : 90
},
{
"is_variadic" : true,
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 94,
"source_range" : (
{
"column" : 19
},
{
"column" : 28
}
)
},
{
"name" : "",
"qual_name" : [
""
]
},
{
"type_ptr" : 59
},
{
"parm_index_in_function" : 0
}
)>
]
}
)>,
<"ObjCProtocolDecl" : (
{
"pointer" : 95,
"parent_pointer" : 1,
"source_range" : (
{
"file" : "tests/ObjCTest.m",
"line" : 10,
"column" : 1
},
{
"line" : 12,
"column" : 2
}
)
},
{
"name" : "MyProtocol",
"qual_name" : [
"MyProtocol"
]
},
[
<"ObjCPropertyDecl" : (
{
"pointer" : 96,
"parent_pointer" : 95,
"source_range" : (
{
"line" : 11,
"column" : 1
},
{
"column" : 38
}
)
},
{
"name" : "str",
"qual_name" : [
"str",
"MyProtocol"
]
},
{
"qual_type" : {
"type_ptr" : 59
},
"getter_method" : {
"kind" : <"ObjCMethod">,
"decl_pointer" : 97,
"name" : {
"name" : "str",
"qual_name" : [
"str",
"MyProtocol"
]
}
},
"setter_method" : {
"kind" : <"ObjCMethod">,
"decl_pointer" : 98,
"name" : {
"name" : "setStr:",
"qual_name" : [
"setStr:",
"MyProtocol"
]
}
},
"property_attributes" : [
<"Readwrite">,
<"Copy">,
<"Nonatomic">
]
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 97,
"parent_pointer" : 95,
"source_range" : (
{
"column" : 38
},
{
"column" : 38
}
),
"is_implicit" : true
},
{
"name" : "str",
"qual_name" : [
"str",
"MyProtocol"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 59
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 96,
"name" : {
"name" : "str",
"qual_name" : [
"str",
"MyProtocol"
]
}
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 99,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 7,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 100,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyProtocol str]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 98,
"parent_pointer" : 95,
"source_range" : (
{
"column" : 38
},
{
"column" : 38
}
),
"is_implicit" : true
},
{
"name" : "setStr:",
"qual_name" : [
"setStr:",
"MyProtocol"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 96,
"name" : {
"name" : "str",
"qual_name" : [
"str",
"MyProtocol"
]
}
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 102,
"source_range" : (
{
"column" : 38
},
{
"column" : 38
}
)
},
{
"name" : "str",
"qual_name" : [
"str"
]
},
{
"type_ptr" : 59
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 103,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 7,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 104,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyProtocol setStr:]"
}
)>
],
{
},
{
}
)>,
<"ObjCProtocolDecl" : (
{
"pointer" : 105,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 14,
"column" : 1
},
{
"column" : 11
}
)
},
{
"name" : "SomeProtocol",
"qual_name" : [
"SomeProtocol"
]
},
[
],
{
},
{
}
)>,
<"ObjCInterfaceDecl" : (
{
"pointer" : 106,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 16,
"column" : 1
},
{
"line" : 24,
"column" : 2
}
)
},
{
"name" : "MyClass",
"qual_name" : [
"MyClass"
]
},
[
<"ObjCPropertyDecl" : (
{
"pointer" : 107,
"parent_pointer" : 106,
"source_range" : (
{
"line" : 18,
"column" : 1
},
{
"column" : 38
}
)
},
{
"name" : "str",
"qual_name" : [
"str",
"MyClass"
]
},
{
"qual_type" : {
"type_ptr" : 59
},
"getter_method" : {
"kind" : <"ObjCMethod">,
"decl_pointer" : 108,
"name" : {
"name" : "str",
"qual_name" : [
"str",
"MyClass"
]
}
},
"setter_method" : {
"kind" : <"ObjCMethod">,
"decl_pointer" : 109,
"name" : {
"name" : "setStr:",
"qual_name" : [
"setStr:",
"MyClass"
]
}
},
"ivar_decl" : {
"kind" : <"ObjCIvar">,
"decl_pointer" : 110,
"name" : {
"name" : "_str",
"qual_name" : [
"_str",
"MyClass"
]
},
"qual_type" : {
"type_ptr" : 59
}
},
"property_attributes" : [
<"Readwrite">,
<"Copy">,
<"Nonatomic">
]
}
)>,
<"ObjCPropertyDecl" : (
{
"pointer" : 111,
"parent_pointer" : 106,
"source_range" : (
{
"line" : 20,
"column" : 1
},
{
"column" : 36
}
)
},
{
"name" : "x",
"qual_name" : [
"x",
"MyClass"
]
},
{
"qual_type" : {
"type_ptr" : 112
},
"getter_method" : {
"kind" : <"ObjCMethod">,
"decl_pointer" : 113,
"name" : {
"name" : "x",
"qual_name" : [
"x",
"MyClass"
]
}
},
"setter_method" : {
"kind" : <"ObjCMethod">,
"decl_pointer" : 114,
"name" : {
"name" : "setX:",
"qual_name" : [
"setX:",
"MyClass"
]
}
},
"ivar_decl" : {
"kind" : <"ObjCIvar">,
"decl_pointer" : 115,
"name" : {
"name" : "_x",
"qual_name" : [
"_x",
"MyClass"
]
},
"qual_type" : {
"type_ptr" : 112
}
},
"property_attributes" : [
<"Assign">,
<"Readwrite">,
<"Nonatomic">,
<"Unsafe_unretained">
]
}
)>,
<"ObjCPropertyDecl" : (
{
"pointer" : 116,
"parent_pointer" : 106,
"source_range" : (
{
"line" : 21,
"column" : 1
},
{
"column" : 34
}
)
},
{
"name" : "y",
"qual_name" : [
"y",
"MyClass"
]
},
{
"qual_type" : {
"type_ptr" : 53
},
"getter_method" : {
"kind" : <"ObjCMethod">,
"decl_pointer" : 117,
"name" : {
"name" : "y",
"qual_name" : [
"y",
"MyClass"
]
}
},
"setter_method" : {
"kind" : <"ObjCMethod">,
"decl_pointer" : 118,
"name" : {
"name" : "setY:",
"qual_name" : [
"setY:",
"MyClass"
]
}
},
"ivar_decl" : {
"kind" : <"ObjCIvar">,
"decl_pointer" : 119,
"name" : {
"name" : "_y",
"qual_name" : [
"_y",
"MyClass"
]
},
"qual_type" : {
"type_ptr" : 53
}
},
"property_attributes" : [
<"Assign">,
<"Readwrite">,
<"Nonatomic">,
<"Unsafe_unretained">
]
}
)>,
<"ObjCPropertyDecl" : (
{
"pointer" : 120,
"parent_pointer" : 106,
"source_range" : (
{
"line" : 22,
"column" : 1
},
{
"column" : 54
}
)
},
{
"name" : "delegate",
"qual_name" : [
"delegate",
"MyClass"
]
},
{
"qual_type" : {
"type_ptr" : 121
},
"getter_method" : {
"kind" : <"ObjCMethod">,
"decl_pointer" : 122,
"name" : {
"name" : "delegate",
"qual_name" : [
"delegate",
"MyClass"
]
}
},
"setter_method" : {
"kind" : <"ObjCMethod">,
"decl_pointer" : 123,
"name" : {
"name" : "setDelegate:",
"qual_name" : [
"setDelegate:",
"MyClass"
]
}
},
"ivar_decl" : {
"kind" : <"ObjCIvar">,
"decl_pointer" : 124,
"name" : {
"name" : "_delegate",
"qual_name" : [
"_delegate",
"MyClass"
]
},
"qual_type" : {
"type_ptr" : 121
}
},
"property_attributes" : [
<"Assign">,
<"Readwrite">,
<"Nonatomic">,
<"Unsafe_unretained">
]
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 108,
"parent_pointer" : 106,
"source_range" : (
{
"line" : 18,
"column" : 38
},
{
"column" : 38
}
),
"is_implicit" : true
},
{
"name" : "str",
"qual_name" : [
"str",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 59
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 107,
"name" : {
"name" : "str",
"qual_name" : [
"str",
"MyClass"
]
}
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 125,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 127,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"is_overriding" : true,
"mangled_name" : "-[MyClass str]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 109,
"parent_pointer" : 106,
"source_range" : (
{
"column" : 38
},
{
"column" : 38
}
),
"is_implicit" : true
},
{
"name" : "setStr:",
"qual_name" : [
"setStr:",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 107,
"name" : {
"name" : "str",
"qual_name" : [
"str",
"MyClass"
]
}
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 128,
"source_range" : (
{
"column" : 38
},
{
"column" : 38
}
)
},
{
"name" : "str",
"qual_name" : [
"str"
]
},
{
"type_ptr" : 59
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 129,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 130,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"is_overriding" : true,
"mangled_name" : "-[MyClass setStr:]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 113,
"parent_pointer" : 106,
"source_range" : (
{
"line" : 20,
"column" : 36
},
{
"column" : 36
}
),
"is_implicit" : true
},
{
"name" : "x",
"qual_name" : [
"x",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 112
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 111,
"name" : {
"name" : "x",
"qual_name" : [
"x",
"MyClass"
]
}
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 131,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 132,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyClass x]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 114,
"parent_pointer" : 106,
"source_range" : (
{
"column" : 36
},
{
"column" : 36
}
),
"is_implicit" : true
},
{
"name" : "setX:",
"qual_name" : [
"setX:",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 111,
"name" : {
"name" : "x",
"qual_name" : [
"x",
"MyClass"
]
}
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 133,
"source_range" : (
{
"column" : 36
},
{
"column" : 36
}
)
},
{
"name" : "x",
"qual_name" : [
"x"
]
},
{
"type_ptr" : 112
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 134,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 135,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyClass setX:]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 117,
"parent_pointer" : 106,
"source_range" : (
{
"line" : 21,
"column" : 34
},
{
"column" : 34
}
),
"is_implicit" : true
},
{
"name" : "y",
"qual_name" : [
"y",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 53
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 116,
"name" : {
"name" : "y",
"qual_name" : [
"y",
"MyClass"
]
}
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 136,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 137,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyClass y]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 118,
"parent_pointer" : 106,
"source_range" : (
{
"column" : 34
},
{
"column" : 34
}
),
"is_implicit" : true
},
{
"name" : "setY:",
"qual_name" : [
"setY:",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 116,
"name" : {
"name" : "y",
"qual_name" : [
"y",
"MyClass"
]
}
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 138,
"source_range" : (
{
"column" : 34
},
{
"column" : 34
}
)
},
{
"name" : "y",
"qual_name" : [
"y"
]
},
{
"type_ptr" : 53
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 139,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 140,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyClass setY:]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 122,
"parent_pointer" : 106,
"source_range" : (
{
"line" : 22,
"column" : 54
},
{
"column" : 54
}
),
"is_implicit" : true
},
{
"name" : "delegate",
"qual_name" : [
"delegate",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 121
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 120,
"name" : {
"name" : "delegate",
"qual_name" : [
"delegate",
"MyClass"
]
}
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 141,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 142,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyClass delegate]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 123,
"parent_pointer" : 106,
"source_range" : (
{
"column" : 54
},
{
"column" : 54
}
),
"is_implicit" : true
},
{
"name" : "setDelegate:",
"qual_name" : [
"setDelegate:",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 120,
"name" : {
"name" : "delegate",
"qual_name" : [
"delegate",
"MyClass"
]
}
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 143,
"source_range" : (
{
"column" : 54
},
{
"column" : 54
}
)
},
{
"name" : "delegate",
"qual_name" : [
"delegate"
]
},
{
"type_ptr" : 121
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 144,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 145,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyClass setDelegate:]"
}
)>
],
{
},
{
"super" : {
"kind" : <"ObjCInterface">,
"decl_pointer" : 18,
"name" : {
"name" : "NSObject",
"qual_name" : [
"NSObject"
]
}
},
"implementation" : {
"kind" : <"ObjCImplementation">,
"decl_pointer" : 146,
"name" : {
"name" : "MyClass",
"qual_name" : [
"MyClass"
]
}
},
"protocols" : [
{
"kind" : <"ObjCProtocol">,
"decl_pointer" : 95,
"name" : {
"name" : "MyProtocol",
"qual_name" : [
"MyProtocol"
]
}
}
],
"known_categories" : [
{
"kind" : <"ObjCCategory">,
"decl_pointer" : 147,
"name" : {
"name" : "MyCategory",
"qual_name" : [
"MyCategory"
]
}
},
{
"kind" : <"ObjCCategory">,
"decl_pointer" : 148,
"name" : {
"name" : "",
"qual_name" : [
""
]
}
}
]
}
)>,
<"ObjCCategoryDecl" : (
{
"pointer" : 148,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 26,
"column" : 1
},
{
"line" : 30,
"column" : 2
}
)
},
{
"name" : "",
"qual_name" : [
""
]
},
[
<"ObjCMethodDecl" : (
{
"pointer" : 149,
"parent_pointer" : 148,
"source_range" : (
{
"line" : 28,
"column" : 1
},
{
"column" : 35
}
)
},
{
"name" : "foo:",
"qual_name" : [
"foo:",
""
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 150,
"source_range" : (
{
"column" : 14
},
{
"column" : 34
}
)
},
{
"name" : "s",
"qual_name" : [
"s"
]
},
{
"type_ptr" : 151
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 152,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 153,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[ foo:]"
}
)>
],
{
},
{
"class_interface" : {
"kind" : <"ObjCInterface">,
"decl_pointer" : 106,
"name" : {
"name" : "MyClass",
"qual_name" : [
"MyClass"
]
}
}
}
)>,
<"ObjCImplementationDecl" : (
{
"pointer" : 146,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 32,
"column" : 1
},
{
"line" : 65,
"column" : 1
}
)
},
{
"name" : "MyClass",
"qual_name" : [
"MyClass"
]
},
[
<"ObjCMethodDecl" : (
{
"pointer" : 154,
"parent_pointer" : 146,
"source_range" : (
{
"line" : 34,
"column" : 1
},
{
"line" : 63,
"column" : 1
}
)
},
{
"name" : "foo:",
"qual_name" : [
"foo:",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 155,
"source_range" : (
{
"line" : 34,
"column" : 14
},
{
"column" : 34
}
)
},
{
"name" : "s",
"qual_name" : [
"s"
]
},
{
"type_ptr" : 151
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 156,
"source_range" : (
{
},
{
}
),
"is_implicit" : true,
"is_used" : true,
"is_this_declaration_referenced" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 157,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"body" : <"CompoundStmt" : (
{
"pointer" : 158,
"source_range" : (
{
"column" : 36
},
{
"line" : 63,
"column" : 1
}
)
},
[
<"CallExpr" : (
{
"pointer" : 159,
"source_range" : (
{
"line" : 36,
"column" : 3
},
{
"column" : 33
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 160,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 161,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 90
}
},
{
"decl_ref" : {
"kind" : <"Function">,
"decl_pointer" : 92,
"name" : {
"name" : "NSLog",
"qual_name" : [
"NSLog"
]
},
"qual_type" : {
"type_ptr" : 90
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 162
}
},
{
"cast_kind" : <"FunctionToPointerDecay">,
"base_path" : [
]
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 163,
"source_range" : (
{
"column" : 9
},
{
"column" : 10
}
)
},
[
<"ObjCStringLiteral" : (
{
"pointer" : 164,
"source_range" : (
{
"column" : 9
},
{
"column" : 10
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 165,
"source_range" : (
{
"column" : 10
},
{
"column" : 10
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 166
},
"value_kind" : <"LValue">
},
[
"%s\n"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 167,
"source_range" : (
{
"column" : 18
},
{
"column" : 32
}
)
},
[
<"ObjCEncodeExpr" : (
{
"pointer" : 168,
"source_range" : (
{
"column" : 18
},
{
"column" : 32
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 166
},
"value_kind" : <"LValue">
},
{
"qual_type" : {
"type_ptr" : 169
},
"raw" : "int **"
}
)>
],
{
"qual_type" : {
"type_ptr" : 170
}
},
{
"cast_kind" : <"ArrayToPointerDecay">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
}
)>,
<"CallExpr" : (
{
"pointer" : 171,
"source_range" : (
{
"line" : 38,
"column" : 3
},
{
"column" : 59
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 172,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 173,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 90
}
},
{
"decl_ref" : {
"kind" : <"Function">,
"decl_pointer" : 92,
"name" : {
"name" : "NSLog",
"qual_name" : [
"NSLog"
]
},
"qual_type" : {
"type_ptr" : 90
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 162
}
},
{
"cast_kind" : <"FunctionToPointerDecay">,
"base_path" : [
]
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 174,
"source_range" : (
{
"column" : 9
},
{
"column" : 10
}
)
},
[
<"ObjCStringLiteral" : (
{
"pointer" : 175,
"source_range" : (
{
"column" : 9
},
{
"column" : 10
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 176,
"source_range" : (
{
"column" : 10
},
{
"column" : 10
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 166
},
"value_kind" : <"LValue">
},
[
"%d\n"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>,
<"ObjCMessageExpr" : (
{
"pointer" : 177,
"source_range" : (
{
"column" : 18
},
{
"column" : 58
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 178,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 179,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 156,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>,
<"ObjCSelectorExpr" : (
{
"pointer" : 180,
"source_range" : (
{
"column" : 43
},
{
"column" : 57
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 5
}
},
"foo:"
)>
],
{
"qual_type" : {
"type_ptr" : 15
}
},
{
"selector" : "respondsToSelector:",
"decl_pointer" : 41
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
}
)>,
<"CallExpr" : (
{
"pointer" : 181,
"source_range" : (
{
"line" : 40,
"column" : 3
},
{
"column" : 73
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 182,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 183,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 90
}
},
{
"decl_ref" : {
"kind" : <"Function">,
"decl_pointer" : 92,
"name" : {
"name" : "NSLog",
"qual_name" : [
"NSLog"
]
},
"qual_type" : {
"type_ptr" : 90
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 162
}
},
{
"cast_kind" : <"FunctionToPointerDecay">,
"base_path" : [
]
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 184,
"source_range" : (
{
"column" : 9
},
{
"column" : 10
}
)
},
[
<"ObjCStringLiteral" : (
{
"pointer" : 185,
"source_range" : (
{
"column" : 9
},
{
"column" : 10
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 186,
"source_range" : (
{
"column" : 10
},
{
"column" : 10
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 166
},
"value_kind" : <"LValue">
},
[
"%d\n"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>,
<"ObjCMessageExpr" : (
{
"pointer" : 187,
"source_range" : (
{
"column" : 18
},
{
"column" : 72
}
)
},
[
<"ObjCMessageExpr" : (
{
"pointer" : 188,
"source_range" : (
{
"column" : 19
},
{
"column" : 30
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 189,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 190,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 156,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 9
}
},
{
"selector" : "class",
"decl_pointer" : 38
}
)>,
<"ObjCProtocolExpr" : (
{
"pointer" : 191,
"source_range" : (
{
"column" : 51
},
{
"column" : 71
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 47
}
},
{
"kind" : <"ObjCProtocol">,
"decl_pointer" : 95,
"name" : {
"name" : "MyProtocol",
"qual_name" : [
"MyProtocol"
]
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 15
}
},
{
"selector" : "conformsToProtocol:",
"decl_pointer" : 45
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
}
)>,
<"DeclStmt" : (
{
"pointer" : 192,
"source_range" : (
{
"line" : 42,
"column" : 3
},
{
"line" : 45,
"column" : 4
}
)
},
[
<"ExprWithCleanups" : (
{
"pointer" : 193,
"source_range" : (
{
"line" : 42,
"column" : 38
},
{
"line" : 45,
"column" : 3
}
)
},
[
<"BlockExpr" : (
{
"pointer" : 194,
"source_range" : (
{
"line" : 42,
"column" : 38
},
{
"line" : 45,
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 195
}
},
<"BlockDecl" : (
{
"pointer" : 196,
"parent_pointer" : 154,
"source_range" : (
{
"line" : 42,
"column" : 38
},
{
"line" : 45,
"column" : 3
}
)
},
{
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 197,
"source_range" : (
{
"line" : 42,
"column" : 40
},
{
"column" : 50
}
),
"is_used" : true,
"is_this_declaration_referenced" : true
},
{
"name" : "x",
"qual_name" : [
"x"
]
},
{
"type_ptr" : 59
},
{
"parm_index_in_function" : 0
}
)>
],
"captured_variables" : [
{
"variable" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 156,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
],
"body" : <"CompoundStmt" : (
{
"pointer" : 198,
"source_range" : (
{
"column" : 53
},
{
"line" : 45,
"column" : 3
}
)
},
[
<"PseudoObjectExpr" : (
{
"pointer" : 199,
"source_range" : (
{
"line" : 43,
"column" : 5
},
{
"column" : 16
}
)
},
[
<"BinaryOperator" : (
{
"pointer" : 200,
"source_range" : (
{
"column" : 5
},
{
"column" : 16
}
)
},
[
<"ObjCPropertyRefExpr" : (
{
"pointer" : 201,
"source_range" : (
{
"column" : 5
},
{
"column" : 10
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 202,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 203,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 204,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 156,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 205
},
"value_kind" : <"LValue">,
"object_kind" : <"ObjCProperty">
},
{
"kind" : <"PropertyRef" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 107,
"name" : {
"name" : "str",
"qual_name" : [
"str",
"MyClass"
]
}
}>,
"is_messaging_setter" : true
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 206,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"source_expr" : <"DeclRefExpr" : (
{
"pointer" : 207,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ParmVar">,
"decl_pointer" : 197,
"name" : {
"name" : "x",
"qual_name" : [
"x"
]
},
"qual_type" : {
"type_ptr" : 59
}
}
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"kind" : <"Assign">
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 202,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 203,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 204,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 156,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 206,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"source_expr" : <"DeclRefExpr" : (
{
"pointer" : 207,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ParmVar">,
"decl_pointer" : 197,
"name" : {
"name" : "x",
"qual_name" : [
"x"
]
},
"qual_type" : {
"type_ptr" : 59
}
}
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 208,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 209,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 206,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"source_expr" : <"DeclRefExpr" : (
{
"pointer" : 207,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ParmVar">,
"decl_pointer" : 197,
"name" : {
"name" : "x",
"qual_name" : [
"x"
]
},
"qual_type" : {
"type_ptr" : 59
}
}
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"ObjCMessageExpr" : (
{
"pointer" : 210,
"source_range" : (
{
"column" : 10
},
{
"column" : 10
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 202,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 203,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 204,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 156,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 208,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 209,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 206,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"source_expr" : <"DeclRefExpr" : (
{
"pointer" : 207,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ParmVar">,
"decl_pointer" : 197,
"name" : {
"name" : "x",
"qual_name" : [
"x"
]
},
"qual_type" : {
"type_ptr" : 59
}
}
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
},
{
"selector" : "setStr:",
"is_definition_found" : true,
"decl_pointer" : 211
}
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>,
<"ReturnStmt" : (
{
"pointer" : 212,
"source_range" : (
{
"line" : 44,
"column" : 5
},
{
"column" : 21
}
)
},
[
<"ObjCMessageExpr" : (
{
"pointer" : 213,
"source_range" : (
{
"column" : 12
},
{
"column" : 21
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 214,
"source_range" : (
{
"column" : 13
},
{
"column" : 13
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 215,
"source_range" : (
{
"column" : 13
},
{
"column" : 13
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ParmVar">,
"decl_pointer" : 197,
"name" : {
"name" : "x",
"qual_name" : [
"x"
]
},
"qual_type" : {
"type_ptr" : 59
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 17
}
},
{
"selector" : "length",
"decl_pointer" : 57
}
)>
]
)>
]
)>,
"mangled_name" : "__15-[MyClass foo:]_block_invoke"
}
)>
)>
],
{
"qual_type" : {
"type_ptr" : 195
}
},
{
"decl_refs" : [
{
"kind" : <"Block">,
"decl_pointer" : 196
}
]
}
)>
],
[
<"VarDecl" : (
{
"pointer" : 216,
"source_range" : (
{
"line" : 42,
"column" : 3
},
{
"line" : 45,
"column" : 3
}
)
},
{
"name" : "block",
"qual_name" : [
"block"
]
},
{
"type_ptr" : 217
},
{
"init_expr" : <"ExprWithCleanups" : (
{
"pointer" : 193,
"source_range" : (
{
"line" : 42,
"column" : 38
},
{
"line" : 45,
"column" : 3
}
)
},
[
<"BlockExpr" : (
{
"pointer" : 194,
"source_range" : (
{
"line" : 42,
"column" : 38
},
{
"line" : 45,
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 195
}
},
<"BlockDecl" : (
{
"pointer" : 196,
"parent_pointer" : 154,
"source_range" : (
{
"line" : 42,
"column" : 38
},
{
"line" : 45,
"column" : 3
}
)
},
{
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 197,
"source_range" : (
{
"line" : 42,
"column" : 40
},
{
"column" : 50
}
),
"is_used" : true,
"is_this_declaration_referenced" : true
},
{
"name" : "x",
"qual_name" : [
"x"
]
},
{
"type_ptr" : 59
},
{
"parm_index_in_function" : 0
}
)>
],
"captured_variables" : [
{
"variable" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 156,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
],
"body" : <"CompoundStmt" : (
{
"pointer" : 198,
"source_range" : (
{
"column" : 53
},
{
"line" : 45,
"column" : 3
}
)
},
[
<"PseudoObjectExpr" : (
{
"pointer" : 199,
"source_range" : (
{
"line" : 43,
"column" : 5
},
{
"column" : 16
}
)
},
[
<"BinaryOperator" : (
{
"pointer" : 200,
"source_range" : (
{
"column" : 5
},
{
"column" : 16
}
)
},
[
<"ObjCPropertyRefExpr" : (
{
"pointer" : 201,
"source_range" : (
{
"column" : 5
},
{
"column" : 10
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 202,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 203,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 204,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 156,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 205
},
"value_kind" : <"LValue">,
"object_kind" : <"ObjCProperty">
},
{
"kind" : <"PropertyRef" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 107,
"name" : {
"name" : "str",
"qual_name" : [
"str",
"MyClass"
]
}
}>,
"is_messaging_setter" : true
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 206,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"source_expr" : <"DeclRefExpr" : (
{
"pointer" : 207,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ParmVar">,
"decl_pointer" : 197,
"name" : {
"name" : "x",
"qual_name" : [
"x"
]
},
"qual_type" : {
"type_ptr" : 59
}
}
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"kind" : <"Assign">
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 202,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 203,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 204,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 156,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 206,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"source_expr" : <"DeclRefExpr" : (
{
"pointer" : 207,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ParmVar">,
"decl_pointer" : 197,
"name" : {
"name" : "x",
"qual_name" : [
"x"
]
},
"qual_type" : {
"type_ptr" : 59
}
}
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 208,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 209,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 206,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"source_expr" : <"DeclRefExpr" : (
{
"pointer" : 207,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ParmVar">,
"decl_pointer" : 197,
"name" : {
"name" : "x",
"qual_name" : [
"x"
]
},
"qual_type" : {
"type_ptr" : 59
}
}
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"ObjCMessageExpr" : (
{
"pointer" : 210,
"source_range" : (
{
"column" : 10
},
{
"column" : 10
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 202,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 203,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 204,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 156,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 208,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 209,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 206,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"source_expr" : <"DeclRefExpr" : (
{
"pointer" : 207,
"source_range" : (
{
"column" : 16
},
{
"column" : 16
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ParmVar">,
"decl_pointer" : 197,
"name" : {
"name" : "x",
"qual_name" : [
"x"
]
},
"qual_type" : {
"type_ptr" : 59
}
}
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
},
{
"selector" : "setStr:",
"is_definition_found" : true,
"decl_pointer" : 211
}
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>,
<"ReturnStmt" : (
{
"pointer" : 212,
"source_range" : (
{
"line" : 44,
"column" : 5
},
{
"column" : 21
}
)
},
[
<"ObjCMessageExpr" : (
{
"pointer" : 213,
"source_range" : (
{
"column" : 12
},
{
"column" : 21
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 214,
"source_range" : (
{
"column" : 13
},
{
"column" : 13
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 215,
"source_range" : (
{
"column" : 13
},
{
"column" : 13
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ParmVar">,
"decl_pointer" : 197,
"name" : {
"name" : "x",
"qual_name" : [
"x"
]
},
"qual_type" : {
"type_ptr" : 59
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 17
}
},
{
"selector" : "length",
"decl_pointer" : 57
}
)>
]
)>
]
)>,
"mangled_name" : "__15-[MyClass foo:]_block_invoke"
}
)>
)>
],
{
"qual_type" : {
"type_ptr" : 195
}
},
{
"decl_refs" : [
{
"kind" : <"Block">,
"decl_pointer" : 196
}
]
}
)>
}
)>
]
)>,
<"ObjCAtTryStmt" : (
{
"pointer" : 218,
"source_range" : (
{
"line" : 47,
"column" : 3
},
{
"line" : 57,
"column" : 3
}
)
},
[
<"CompoundStmt" : (
{
"pointer" : 219,
"source_range" : (
{
"line" : 47,
"column" : 8
},
{
"line" : 53,
"column" : 3
}
)
},
[
<"DeclStmt" : (
{
"pointer" : 220,
"source_range" : (
{
"line" : 48,
"column" : 5
},
{
"column" : 27
}
)
},
[
<"ExprWithCleanups" : (
{
"pointer" : 221,
"source_range" : (
{
"column" : 18
},
{
"column" : 26
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 222,
"source_range" : (
{
"column" : 18
},
{
"column" : 26
}
)
},
[
<"ObjCArrayLiteral" : (
{
"pointer" : 223,
"source_range" : (
{
"column" : 18
},
{
"column" : 26
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 224,
"source_range" : (
{
"column" : 21
},
{
"column" : 22
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 225,
"source_range" : (
{
"column" : 21
},
{
"column" : 22
}
)
},
[
<"ObjCBoxedExpr" : (
{
"pointer" : 226,
"source_range" : (
{
"column" : 21
},
{
"column" : 22
}
)
},
[
<"IntegerLiteral" : (
{
"pointer" : 227,
"source_range" : (
{
"column" : 22
},
{
"column" : 22
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "1"
}
)>
],
{
"qual_type" : {
"type_ptr" : 228
}
},
{
"boxing_method" : "numberWithInt:"
}
)>
],
{
"qual_type" : {
"type_ptr" : 228
}
},
{
"cast_kind" : <"ARCReclaimReturnedObject">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 85
}
},
{
"array_method" : 75
}
)>
],
{
"qual_type" : {
"type_ptr" : 85
}
},
{
"cast_kind" : <"ARCReclaimReturnedObject">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 85
}
},
{
}
)>
],
[
<"VarDecl" : (
{
"pointer" : 229,
"source_range" : (
{
"column" : 5
},
{
"column" : 26
}
),
"is_used" : true,
"is_this_declaration_referenced" : true
},
{
"name" : "a",
"qual_name" : [
"a"
]
},
{
"type_ptr" : 85
},
{
"init_expr" : <"ExprWithCleanups" : (
{
"pointer" : 221,
"source_range" : (
{
"column" : 18
},
{
"column" : 26
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 222,
"source_range" : (
{
"column" : 18
},
{
"column" : 26
}
)
},
[
<"ObjCArrayLiteral" : (
{
"pointer" : 223,
"source_range" : (
{
"column" : 18
},
{
"column" : 26
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 224,
"source_range" : (
{
"column" : 21
},
{
"column" : 22
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 225,
"source_range" : (
{
"column" : 21
},
{
"column" : 22
}
)
},
[
<"ObjCBoxedExpr" : (
{
"pointer" : 226,
"source_range" : (
{
"column" : 21
},
{
"column" : 22
}
)
},
[
<"IntegerLiteral" : (
{
"pointer" : 227,
"source_range" : (
{
"column" : 22
},
{
"column" : 22
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "1"
}
)>
],
{
"qual_type" : {
"type_ptr" : 228
}
},
{
"boxing_method" : "numberWithInt:"
}
)>
],
{
"qual_type" : {
"type_ptr" : 228
}
},
{
"cast_kind" : <"ARCReclaimReturnedObject">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 85
}
},
{
"array_method" : 75
}
)>
],
{
"qual_type" : {
"type_ptr" : 85
}
},
{
"cast_kind" : <"ARCReclaimReturnedObject">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 85
}
},
{
}
)>
}
)>
]
)>,
<"ExprWithCleanups" : (
{
"pointer" : 230,
"source_range" : (
{
"line" : 49,
"column" : 5
},
{
"column" : 24
}
)
},
[
<"CallExpr" : (
{
"pointer" : 231,
"source_range" : (
{
"column" : 5
},
{
"column" : 24
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 232,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 233,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 90
}
},
{
"decl_ref" : {
"kind" : <"Function">,
"decl_pointer" : 92,
"name" : {
"name" : "NSLog",
"qual_name" : [
"NSLog"
]
},
"qual_type" : {
"type_ptr" : 90
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 162
}
},
{
"cast_kind" : <"FunctionToPointerDecay">,
"base_path" : [
]
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 234,
"source_range" : (
{
"column" : 11
},
{
"column" : 12
}
)
},
[
<"ObjCStringLiteral" : (
{
"pointer" : 235,
"source_range" : (
{
"column" : 11
},
{
"column" : 12
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 236,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 166
},
"value_kind" : <"LValue">
},
[
"%@\n"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>,
<"PseudoObjectExpr" : (
{
"pointer" : 237,
"source_range" : (
{
"column" : 20
},
{
"column" : 23
}
)
},
[
<"ObjCSubscriptRefExpr" : (
{
"pointer" : 238,
"source_range" : (
{
"column" : 20
},
{
"column" : 23
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 239,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 85
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 240,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 241,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 85
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"Var">,
"decl_pointer" : 229,
"name" : {
"name" : "a",
"qual_name" : [
"a"
]
},
"qual_type" : {
"type_ptr" : 85
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 85
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 242,
"source_range" : (
{
"column" : 22
},
{
"column" : 22
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"source_expr" : <"IntegerLiteral" : (
{
"pointer" : 243,
"source_range" : (
{
"column" : 22
},
{
"column" : 22
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "0"
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 205
},
"value_kind" : <"LValue">,
"object_kind" : <"ObjCSubscript">
},
{
"kind" : <"ArraySubscript">
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 239,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 85
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 240,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 241,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 85
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"Var">,
"decl_pointer" : 229,
"name" : {
"name" : "a",
"qual_name" : [
"a"
]
},
"qual_type" : {
"type_ptr" : 85
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 85
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 242,
"source_range" : (
{
"column" : 22
},
{
"column" : 22
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"source_expr" : <"IntegerLiteral" : (
{
"pointer" : 243,
"source_range" : (
{
"column" : 22
},
{
"column" : 22
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "0"
}
)>
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 244,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
<"ObjCMessageExpr" : (
{
"pointer" : 245,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 239,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 85
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 240,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 241,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 85
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"Var">,
"decl_pointer" : 229,
"name" : {
"name" : "a",
"qual_name" : [
"a"
]
},
"qual_type" : {
"type_ptr" : 85
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 85
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 246,
"source_range" : (
{
"column" : 22
},
{
"column" : 22
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 242,
"source_range" : (
{
"column" : 22
},
{
"column" : 22
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"source_expr" : <"IntegerLiteral" : (
{
"pointer" : 243,
"source_range" : (
{
"column" : 22
},
{
"column" : 22
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "0"
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 17
}
},
{
"cast_kind" : <"IntegralCast">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"selector" : "objectAtIndexedSubscript:",
"decl_pointer" : 82
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"ARCReclaimReturnedObject">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
},
{
}
)>,
<"DeclStmt" : (
{
"pointer" : 247,
"source_range" : (
{
"line" : 51,
"column" : 5
},
{
"column" : 37
}
)
},
[
<"ExprWithCleanups" : (
{
"pointer" : 248,
"source_range" : (
{
"column" : 23
},
{
"column" : 36
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 249,
"source_range" : (
{
"column" : 23
},
{
"column" : 36
}
)
},
[
<"ObjCDictionaryLiteral" : (
{
"pointer" : 250,
"source_range" : (
{
"column" : 23
},
{
"column" : 36
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 251,
"source_range" : (
{
"column" : 25
},
{
"column" : 26
}
)
},
[
<"ObjCStringLiteral" : (
{
"pointer" : 252,
"source_range" : (
{
"column" : 25
},
{
"column" : 26
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 253,
"source_range" : (
{
"column" : 26
},
{
"column" : 26
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 166
},
"value_kind" : <"LValue">
},
[
"key"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 254,
"source_range" : (
{
"column" : 34
},
{
"column" : 35
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 255,
"source_range" : (
{
"column" : 34
},
{
"column" : 35
}
)
},
[
<"ObjCBoxedExpr" : (
{
"pointer" : 256,
"source_range" : (
{
"column" : 34
},
{
"column" : 35
}
)
},
[
<"IntegerLiteral" : (
{
"pointer" : 257,
"source_range" : (
{
"column" : 35
},
{
"column" : 35
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "1"
}
)>
],
{
"qual_type" : {
"type_ptr" : 228
}
},
{
"boxing_method" : "numberWithInt:"
}
)>
],
{
"qual_type" : {
"type_ptr" : 228
}
},
{
"cast_kind" : <"ARCReclaimReturnedObject">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 72
}
},
{
"dict_method" : 62
}
)>
],
{
"qual_type" : {
"type_ptr" : 72
}
},
{
"cast_kind" : <"ARCReclaimReturnedObject">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 72
}
},
{
}
)>
],
[
<"VarDecl" : (
{
"pointer" : 258,
"source_range" : (
{
"column" : 5
},
{
"column" : 36
}
),
"is_used" : true,
"is_this_declaration_referenced" : true
},
{
"name" : "d",
"qual_name" : [
"d"
]
},
{
"type_ptr" : 72
},
{
"init_expr" : <"ExprWithCleanups" : (
{
"pointer" : 248,
"source_range" : (
{
"column" : 23
},
{
"column" : 36
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 249,
"source_range" : (
{
"column" : 23
},
{
"column" : 36
}
)
},
[
<"ObjCDictionaryLiteral" : (
{
"pointer" : 250,
"source_range" : (
{
"column" : 23
},
{
"column" : 36
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 251,
"source_range" : (
{
"column" : 25
},
{
"column" : 26
}
)
},
[
<"ObjCStringLiteral" : (
{
"pointer" : 252,
"source_range" : (
{
"column" : 25
},
{
"column" : 26
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 253,
"source_range" : (
{
"column" : 26
},
{
"column" : 26
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 166
},
"value_kind" : <"LValue">
},
[
"key"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 254,
"source_range" : (
{
"column" : 34
},
{
"column" : 35
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 255,
"source_range" : (
{
"column" : 34
},
{
"column" : 35
}
)
},
[
<"ObjCBoxedExpr" : (
{
"pointer" : 256,
"source_range" : (
{
"column" : 34
},
{
"column" : 35
}
)
},
[
<"IntegerLiteral" : (
{
"pointer" : 257,
"source_range" : (
{
"column" : 35
},
{
"column" : 35
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "1"
}
)>
],
{
"qual_type" : {
"type_ptr" : 228
}
},
{
"boxing_method" : "numberWithInt:"
}
)>
],
{
"qual_type" : {
"type_ptr" : 228
}
},
{
"cast_kind" : <"ARCReclaimReturnedObject">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 72
}
},
{
"dict_method" : 62
}
)>
],
{
"qual_type" : {
"type_ptr" : 72
}
},
{
"cast_kind" : <"ARCReclaimReturnedObject">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 72
}
},
{
}
)>
}
)>
]
)>,
<"ExprWithCleanups" : (
{
"pointer" : 259,
"source_range" : (
{
"line" : 52,
"column" : 5
},
{
"column" : 35
}
)
},
[
<"CallExpr" : (
{
"pointer" : 260,
"source_range" : (
{
"column" : 5
},
{
"column" : 35
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 261,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 262,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 90
}
},
{
"decl_ref" : {
"kind" : <"Function">,
"decl_pointer" : 92,
"name" : {
"name" : "NSLog",
"qual_name" : [
"NSLog"
]
},
"qual_type" : {
"type_ptr" : 90
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 162
}
},
{
"cast_kind" : <"FunctionToPointerDecay">,
"base_path" : [
]
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 263,
"source_range" : (
{
"column" : 11
},
{
"column" : 12
}
)
},
[
<"ObjCStringLiteral" : (
{
"pointer" : 264,
"source_range" : (
{
"column" : 11
},
{
"column" : 12
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 265,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 166
},
"value_kind" : <"LValue">
},
[
"%@\n"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>,
<"PseudoObjectExpr" : (
{
"pointer" : 266,
"source_range" : (
{
"column" : 20
},
{
"column" : 34
}
)
},
[
<"ObjCSubscriptRefExpr" : (
{
"pointer" : 267,
"source_range" : (
{
"column" : 20
},
{
"column" : 34
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 268,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 72
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 269,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 270,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 72
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"Var">,
"decl_pointer" : 258,
"name" : {
"name" : "d",
"qual_name" : [
"d"
]
},
"qual_type" : {
"type_ptr" : 72
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 72
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 271,
"source_range" : (
{
"column" : 22
},
{
"column" : 23
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
}
},
{
"source_expr" : <"ObjCStringLiteral" : (
{
"pointer" : 272,
"source_range" : (
{
"column" : 22
},
{
"column" : 23
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 273,
"source_range" : (
{
"column" : 23
},
{
"column" : 23
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 274
},
"value_kind" : <"LValue">
},
[
"wrong key"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 205
},
"value_kind" : <"LValue">,
"object_kind" : <"ObjCSubscript">
},
{
"kind" : <"DictionarySubscript">
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 268,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 72
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 269,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 270,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 72
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"Var">,
"decl_pointer" : 258,
"name" : {
"name" : "d",
"qual_name" : [
"d"
]
},
"qual_type" : {
"type_ptr" : 72
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 72
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 271,
"source_range" : (
{
"column" : 22
},
{
"column" : 23
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
}
},
{
"source_expr" : <"ObjCStringLiteral" : (
{
"pointer" : 272,
"source_range" : (
{
"column" : 22
},
{
"column" : 23
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 273,
"source_range" : (
{
"column" : 23
},
{
"column" : 23
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 274
},
"value_kind" : <"LValue">
},
[
"wrong key"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 275,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
<"ObjCMessageExpr" : (
{
"pointer" : 276,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 268,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 72
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 269,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 270,
"source_range" : (
{
"column" : 20
},
{
"column" : 20
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 72
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"Var">,
"decl_pointer" : 258,
"name" : {
"name" : "d",
"qual_name" : [
"d"
]
},
"qual_type" : {
"type_ptr" : 72
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 72
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 277,
"source_range" : (
{
"column" : 22
},
{
"column" : 23
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 271,
"source_range" : (
{
"column" : 22
},
{
"column" : 23
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
}
},
{
"source_expr" : <"ObjCStringLiteral" : (
{
"pointer" : 272,
"source_range" : (
{
"column" : 22
},
{
"column" : 23
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 273,
"source_range" : (
{
"column" : 23
},
{
"column" : 23
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 274
},
"value_kind" : <"LValue">
},
[
"wrong key"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"selector" : "objectForKeyedSubscript:",
"decl_pointer" : 69
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"ARCReclaimReturnedObject">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
},
{
}
)>
]
)>,
<"ObjCAtCatchStmt" : (
{
"pointer" : 278,
"source_range" : (
{
"line" : 53,
"column" : 5
},
{
"line" : 55,
"column" : 3
}
)
},
[
<"CompoundStmt" : (
{
"pointer" : 279,
"source_range" : (
{
"line" : 53,
"column" : 29
},
{
"line" : 55,
"column" : 3
}
)
},
[
<"CallExpr" : (
{
"pointer" : 280,
"source_range" : (
{
"line" : 54,
"column" : 5
},
{
"column" : 30
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 281,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 282,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 90
}
},
{
"decl_ref" : {
"kind" : <"Function">,
"decl_pointer" : 92,
"name" : {
"name" : "NSLog",
"qual_name" : [
"NSLog"
]
},
"qual_type" : {
"type_ptr" : 90
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 162
}
},
{
"cast_kind" : <"FunctionToPointerDecay">,
"base_path" : [
]
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 283,
"source_range" : (
{
"column" : 11
},
{
"column" : 12
}
)
},
[
<"ObjCStringLiteral" : (
{
"pointer" : 284,
"source_range" : (
{
"column" : 11
},
{
"column" : 12
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 285,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 286
},
"value_kind" : <"LValue">
},
[
"Exception: %@"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 287,
"source_range" : (
{
"column" : 29
},
{
"column" : 29
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 288,
"source_range" : (
{
"column" : 29
},
{
"column" : 29
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 289
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"Var">,
"decl_pointer" : 290,
"name" : {
"name" : "e",
"qual_name" : [
"e"
]
},
"qual_type" : {
"type_ptr" : 289
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 289
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
}
)>
]
)>
],
<"CatchParam" : <"VarDecl" : (
{
"pointer" : 290,
"source_range" : (
{
"line" : 53,
"column" : 13
},
{
"column" : 26
}
),
"is_used" : true,
"is_this_declaration_referenced" : true
},
{
"name" : "e",
"qual_name" : [
"e"
]
},
{
"type_ptr" : 289
},
{
}
)>>
)>,
<"ObjCAtFinallyStmt" : (
{
"pointer" : 291,
"source_range" : (
{
"line" : 55,
"column" : 5
},
{
"line" : 57,
"column" : 3
}
)
},
[
<"CompoundStmt" : (
{
"pointer" : 292,
"source_range" : (
{
"line" : 55,
"column" : 14
},
{
"line" : 57,
"column" : 3
}
)
},
[
<"CallExpr" : (
{
"pointer" : 293,
"source_range" : (
{
"line" : 56,
"column" : 5
},
{
"column" : 21
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 294,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 295,
"source_range" : (
{
"column" : 5
},
{
"column" : 5
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 90
}
},
{
"decl_ref" : {
"kind" : <"Function">,
"decl_pointer" : 92,
"name" : {
"name" : "NSLog",
"qual_name" : [
"NSLog"
]
},
"qual_type" : {
"type_ptr" : 90
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 162
}
},
{
"cast_kind" : <"FunctionToPointerDecay">,
"base_path" : [
]
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 296,
"source_range" : (
{
"column" : 11
},
{
"column" : 12
}
)
},
[
<"ObjCStringLiteral" : (
{
"pointer" : 297,
"source_range" : (
{
"column" : 11
},
{
"column" : 12
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 298,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 299
},
"value_kind" : <"LValue">
},
[
"finally"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
}
)>
]
)>
]
)>
]
)>,
<"GotoStmt" : (
{
"pointer" : 300,
"source_range" : (
{
"line" : 59,
"column" : 3
},
{
"column" : 8
}
)
},
[
],
{
"label" : "theend",
"pointer" : 301
}
)>,
<"ReturnStmt" : (
{
"pointer" : 302,
"source_range" : (
{
"line" : 60,
"column" : 3
},
{
"column" : 3
}
)
},
[
]
)>,
<"LabelStmt" : (
{
"pointer" : 303,
"source_range" : (
{
"line" : 61,
"column" : 1
},
{
"line" : 62,
"column" : 18
}
)
},
[
<"CallExpr" : (
{
"pointer" : 304,
"source_range" : (
{
"column" : 3
},
{
"column" : 18
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 305,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 306,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 90
}
},
{
"decl_ref" : {
"kind" : <"Function">,
"decl_pointer" : 92,
"name" : {
"name" : "NSLog",
"qual_name" : [
"NSLog"
]
},
"qual_type" : {
"type_ptr" : 90
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 162
}
},
{
"cast_kind" : <"FunctionToPointerDecay">,
"base_path" : [
]
}
)>,
<"ImplicitCastExpr" : (
{
"pointer" : 307,
"source_range" : (
{
"column" : 9
},
{
"column" : 10
}
)
},
[
<"ObjCStringLiteral" : (
{
"pointer" : 308,
"source_range" : (
{
"column" : 9
},
{
"column" : 10
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 309,
"source_range" : (
{
"column" : 10
},
{
"column" : 10
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 310
},
"value_kind" : <"LValue">
},
[
"jumped"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
}
)>
],
"theend"
)>
]
)>,
"mangled_name" : "-[MyClass foo:]"
}
)>,
<"ObjCIvarDecl" : (
{
"pointer" : 110,
"parent_pointer" : 146,
"source_range" : (
{
"line" : 18,
"column" : 38
},
{
"column" : 38
}
)
},
{
"name" : "_str",
"qual_name" : [
"_str",
"MyClass"
]
},
{
"type_ptr" : 59
},
{
},
{
"is_synthesize" : true,
"access_control" : <"Private">
}
)>,
<"ObjCPropertyImplDecl" : (
{
"pointer" : 311,
"source_range" : (
{
},
{
"column" : 38
}
)
},
{
"implementation" : <"Synthesize">,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 107,
"name" : {
"name" : "str",
"qual_name" : [
"str",
"MyClass"
]
}
},
"ivar_decl" : {
"kind" : <"ObjCIvar">,
"decl_pointer" : 110,
"name" : {
"name" : "_str",
"qual_name" : [
"_str",
"MyClass"
]
},
"qual_type" : {
"type_ptr" : 59
}
}
}
)>,
<"ObjCIvarDecl" : (
{
"pointer" : 115,
"parent_pointer" : 146,
"source_range" : (
{
"line" : 20,
"column" : 36
},
{
"column" : 36
}
)
},
{
"name" : "_x",
"qual_name" : [
"_x",
"MyClass"
]
},
{
"type_ptr" : 112
},
{
},
{
"is_synthesize" : true,
"access_control" : <"Private">
}
)>,
<"ObjCPropertyImplDecl" : (
{
"pointer" : 312,
"source_range" : (
{
},
{
"column" : 36
}
)
},
{
"implementation" : <"Synthesize">,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 111,
"name" : {
"name" : "x",
"qual_name" : [
"x",
"MyClass"
]
}
},
"ivar_decl" : {
"kind" : <"ObjCIvar">,
"decl_pointer" : 115,
"name" : {
"name" : "_x",
"qual_name" : [
"_x",
"MyClass"
]
},
"qual_type" : {
"type_ptr" : 112
}
}
}
)>,
<"ObjCIvarDecl" : (
{
"pointer" : 119,
"parent_pointer" : 146,
"source_range" : (
{
"line" : 21,
"column" : 34
},
{
"column" : 34
}
)
},
{
"name" : "_y",
"qual_name" : [
"_y",
"MyClass"
]
},
{
"type_ptr" : 53
},
{
},
{
"is_synthesize" : true,
"access_control" : <"Private">
}
)>,
<"ObjCPropertyImplDecl" : (
{
"pointer" : 313,
"source_range" : (
{
},
{
"column" : 34
}
)
},
{
"implementation" : <"Synthesize">,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 116,
"name" : {
"name" : "y",
"qual_name" : [
"y",
"MyClass"
]
}
},
"ivar_decl" : {
"kind" : <"ObjCIvar">,
"decl_pointer" : 119,
"name" : {
"name" : "_y",
"qual_name" : [
"_y",
"MyClass"
]
},
"qual_type" : {
"type_ptr" : 53
}
}
}
)>,
<"ObjCIvarDecl" : (
{
"pointer" : 124,
"parent_pointer" : 146,
"source_range" : (
{
"line" : 22,
"column" : 54
},
{
"column" : 54
}
)
},
{
"name" : "_delegate",
"qual_name" : [
"_delegate",
"MyClass"
]
},
{
"type_ptr" : 121
},
{
},
{
"is_synthesize" : true,
"access_control" : <"Private">
}
)>,
<"ObjCPropertyImplDecl" : (
{
"pointer" : 314,
"source_range" : (
{
},
{
"column" : 54
}
)
},
{
"implementation" : <"Synthesize">,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 120,
"name" : {
"name" : "delegate",
"qual_name" : [
"delegate",
"MyClass"
]
}
},
"ivar_decl" : {
"kind" : <"ObjCIvar">,
"decl_pointer" : 124,
"name" : {
"name" : "_delegate",
"qual_name" : [
"_delegate",
"MyClass"
]
},
"qual_type" : {
"type_ptr" : 121
}
}
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 315,
"parent_pointer" : 146,
"source_range" : (
{
"line" : 18,
"column" : 38
},
{
"column" : 38
}
),
"is_implicit" : true
},
{
"name" : "str",
"qual_name" : [
"str",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 59
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 107,
"name" : {
"name" : "str",
"qual_name" : [
"str",
"MyClass"
]
}
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 125,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 127,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyClass str]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 211,
"parent_pointer" : 146,
"source_range" : (
{
"column" : 38
},
{
"column" : 38
}
),
"is_implicit" : true
},
{
"name" : "setStr:",
"qual_name" : [
"setStr:",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 107,
"name" : {
"name" : "str",
"qual_name" : [
"str",
"MyClass"
]
}
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 128,
"source_range" : (
{
"column" : 38
},
{
"column" : 38
}
)
},
{
"name" : "str",
"qual_name" : [
"str"
]
},
{
"type_ptr" : 59
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 129,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 130,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyClass setStr:]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 316,
"parent_pointer" : 146,
"source_range" : (
{
"line" : 20,
"column" : 36
},
{
"column" : 36
}
),
"is_implicit" : true
},
{
"name" : "x",
"qual_name" : [
"x",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 112
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 111,
"name" : {
"name" : "x",
"qual_name" : [
"x",
"MyClass"
]
}
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 131,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 132,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyClass x]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 317,
"parent_pointer" : 146,
"source_range" : (
{
"column" : 36
},
{
"column" : 36
}
),
"is_implicit" : true
},
{
"name" : "setX:",
"qual_name" : [
"setX:",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 111,
"name" : {
"name" : "x",
"qual_name" : [
"x",
"MyClass"
]
}
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 133,
"source_range" : (
{
"column" : 36
},
{
"column" : 36
}
)
},
{
"name" : "x",
"qual_name" : [
"x"
]
},
{
"type_ptr" : 112
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 134,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 135,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyClass setX:]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 318,
"parent_pointer" : 146,
"source_range" : (
{
"line" : 21,
"column" : 34
},
{
"column" : 34
}
),
"is_implicit" : true
},
{
"name" : "y",
"qual_name" : [
"y",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 53
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 116,
"name" : {
"name" : "y",
"qual_name" : [
"y",
"MyClass"
]
}
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 136,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 137,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyClass y]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 319,
"parent_pointer" : 146,
"source_range" : (
{
"column" : 34
},
{
"column" : 34
}
),
"is_implicit" : true
},
{
"name" : "setY:",
"qual_name" : [
"setY:",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 116,
"name" : {
"name" : "y",
"qual_name" : [
"y",
"MyClass"
]
}
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 138,
"source_range" : (
{
"column" : 34
},
{
"column" : 34
}
)
},
{
"name" : "y",
"qual_name" : [
"y"
]
},
{
"type_ptr" : 53
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 139,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 140,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyClass setY:]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 320,
"parent_pointer" : 146,
"source_range" : (
{
"line" : 22,
"column" : 54
},
{
"column" : 54
}
),
"is_implicit" : true
},
{
"name" : "delegate",
"qual_name" : [
"delegate",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 121
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 120,
"name" : {
"name" : "delegate",
"qual_name" : [
"delegate",
"MyClass"
]
}
},
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 141,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 142,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyClass delegate]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 321,
"parent_pointer" : 146,
"source_range" : (
{
"column" : 54
},
{
"column" : 54
}
),
"is_implicit" : true
},
{
"name" : "setDelegate:",
"qual_name" : [
"setDelegate:",
"MyClass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"is_property_accessor" : true,
"property_decl" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 120,
"name" : {
"name" : "delegate",
"qual_name" : [
"delegate",
"MyClass"
]
}
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 143,
"source_range" : (
{
"column" : 54
},
{
"column" : 54
}
)
},
{
"name" : "delegate",
"qual_name" : [
"delegate"
]
},
{
"type_ptr" : 121
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 144,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 145,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyClass setDelegate:]"
}
)>
],
{
},
{
"class_interface" : {
"kind" : <"ObjCInterface">,
"decl_pointer" : 106,
"name" : {
"name" : "MyClass",
"qual_name" : [
"MyClass"
]
}
}
}
)>,
<"ObjCCategoryDecl" : (
{
"pointer" : 147,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 67,
"column" : 1
},
{
"line" : 71,
"column" : 2
}
)
},
{
"name" : "MyCategory",
"qual_name" : [
"MyCategory"
]
},
[
<"ObjCMethodDecl" : (
{
"pointer" : 322,
"parent_pointer" : 147,
"source_range" : (
{
"line" : 69,
"column" : 1
},
{
"column" : 26
}
)
},
{
"name" : "bar:",
"qual_name" : [
"bar:",
"MyCategory"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 323,
"source_range" : (
{
"column" : 14
},
{
"column" : 25
}
)
},
{
"name" : "s",
"qual_name" : [
"s"
]
},
{
"type_ptr" : 59
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 324,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 325,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "-[MyCategory bar:]"
}
)>
],
{
},
{
"class_interface" : {
"kind" : <"ObjCInterface">,
"decl_pointer" : 106,
"name" : {
"name" : "MyClass",
"qual_name" : [
"MyClass"
]
}
},
"implementation" : {
"kind" : <"ObjCCategoryImpl">,
"decl_pointer" : 326,
"name" : {
"name" : "MyCategory",
"qual_name" : [
"MyCategory"
]
}
}
}
)>,
<"ObjCCategoryImplDecl" : (
{
"pointer" : 326,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 73,
"column" : 1
},
{
"line" : 81,
"column" : 1
}
)
},
{
"name" : "MyCategory",
"qual_name" : [
"MyCategory"
]
},
[
<"ObjCMethodDecl" : (
{
"pointer" : 327,
"parent_pointer" : 326,
"source_range" : (
{
"line" : 75,
"column" : 1
},
{
"line" : 79,
"column" : 1
}
)
},
{
"name" : "bar:",
"qual_name" : [
"bar:",
"MyCategory"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 328,
"source_range" : (
{
"line" : 75,
"column" : 14
},
{
"column" : 25
}
)
},
{
"name" : "s",
"qual_name" : [
"s"
]
},
{
"type_ptr" : 59
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 329,
"source_range" : (
{
},
{
}
),
"is_implicit" : true,
"is_used" : true,
"is_this_declaration_referenced" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 126,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 330,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"body" : <"CompoundStmt" : (
{
"pointer" : 331,
"source_range" : (
{
"column" : 27
},
{
"line" : 79,
"column" : 1
}
)
},
[
<"PseudoObjectExpr" : (
{
"pointer" : 332,
"source_range" : (
{
"line" : 76,
"column" : 3
},
{
"column" : 12
}
)
},
[
<"BinaryOperator" : (
{
"pointer" : 333,
"source_range" : (
{
"column" : 3
},
{
"column" : 12
}
)
},
[
<"ObjCPropertyRefExpr" : (
{
"pointer" : 334,
"source_range" : (
{
"column" : 3
},
{
"column" : 8
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 335,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 336,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 337,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 329,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 205
},
"value_kind" : <"LValue">,
"object_kind" : <"ObjCProperty">
},
{
"kind" : <"PropertyRef" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 111,
"name" : {
"name" : "x",
"qual_name" : [
"x",
"MyClass"
]
}
}>,
"is_messaging_setter" : true
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 338,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 112
}
},
{
"source_expr" : <"ParenExpr" : (
{
"pointer" : 339,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
<"CStyleCastExpr" : (
{
"pointer" : 340,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
<"IntegerLiteral" : (
{
"pointer" : 341,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "0"
}
)>
],
{
"qual_type" : {
"type_ptr" : 112
}
},
{
"cast_kind" : <"NullToPointer">,
"base_path" : [
]
},
{
"type_ptr" : 112
}
)>
],
{
"qual_type" : {
"type_ptr" : 112
}
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 112
}
},
{
"kind" : <"Assign">
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 335,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 336,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 337,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 329,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 338,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 112
}
},
{
"source_expr" : <"ParenExpr" : (
{
"pointer" : 339,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
<"CStyleCastExpr" : (
{
"pointer" : 340,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
<"IntegerLiteral" : (
{
"pointer" : 341,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "0"
}
)>
],
{
"qual_type" : {
"type_ptr" : 112
}
},
{
"cast_kind" : <"NullToPointer">,
"base_path" : [
]
},
{
"type_ptr" : 112
}
)>
],
{
"qual_type" : {
"type_ptr" : 112
}
}
)>
}
)>,
<"ObjCMessageExpr" : (
{
"pointer" : 342,
"source_range" : (
{
"column" : 8
},
{
"column" : 8
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 335,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 336,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 337,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 329,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 338,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 112
}
},
{
"source_expr" : <"ParenExpr" : (
{
"pointer" : 339,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
<"CStyleCastExpr" : (
{
"pointer" : 340,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
<"IntegerLiteral" : (
{
"pointer" : 341,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "0"
}
)>
],
{
"qual_type" : {
"type_ptr" : 112
}
},
{
"cast_kind" : <"NullToPointer">,
"base_path" : [
]
},
{
"type_ptr" : 112
}
)>
],
{
"qual_type" : {
"type_ptr" : 112
}
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
},
{
"selector" : "setX:",
"is_definition_found" : true,
"decl_pointer" : 317
}
)>
],
{
"qual_type" : {
"type_ptr" : 112
}
}
)>,
<"PseudoObjectExpr" : (
{
"pointer" : 343,
"source_range" : (
{
"line" : 77,
"column" : 3
},
{
"column" : 12
}
)
},
[
<"BinaryOperator" : (
{
"pointer" : 344,
"source_range" : (
{
"column" : 3
},
{
"column" : 12
}
)
},
[
<"ObjCPropertyRefExpr" : (
{
"pointer" : 345,
"source_range" : (
{
"column" : 3
},
{
"column" : 8
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 346,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 347,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 348,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 329,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 205
},
"value_kind" : <"LValue">,
"object_kind" : <"ObjCProperty">
},
{
"kind" : <"PropertyRef" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 116,
"name" : {
"name" : "y",
"qual_name" : [
"y",
"MyClass"
]
}
}>,
"is_messaging_setter" : true
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 349,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"source_expr" : <"IntegerLiteral" : (
{
"pointer" : 350,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "0"
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"kind" : <"Assign">
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 346,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 347,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 348,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 329,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 349,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"source_expr" : <"IntegerLiteral" : (
{
"pointer" : 350,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "0"
}
)>
}
)>,
<"ObjCMessageExpr" : (
{
"pointer" : 351,
"source_range" : (
{
"column" : 8
},
{
"column" : 8
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 346,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 347,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 348,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 329,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 349,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"source_expr" : <"IntegerLiteral" : (
{
"pointer" : 350,
"source_range" : (
{
"column" : 12
},
{
"column" : 12
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "0"
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
},
{
"selector" : "setY:",
"is_definition_found" : true,
"decl_pointer" : 319
}
)>
],
{
"qual_type" : {
"type_ptr" : 53
}
}
)>,
<"PseudoObjectExpr" : (
{
"pointer" : 352,
"source_range" : (
{
"line" : 78,
"column" : 3
},
{
"column" : 19
}
)
},
[
<"BinaryOperator" : (
{
"pointer" : 353,
"source_range" : (
{
"column" : 3
},
{
"column" : 19
}
)
},
[
<"ObjCPropertyRefExpr" : (
{
"pointer" : 354,
"source_range" : (
{
"column" : 3
},
{
"column" : 8
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 355,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 356,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 357,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 329,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 205
},
"value_kind" : <"LValue">,
"object_kind" : <"ObjCProperty">
},
{
"kind" : <"PropertyRef" : {
"kind" : <"ObjCProperty">,
"decl_pointer" : 120,
"name" : {
"name" : "delegate",
"qual_name" : [
"delegate",
"MyClass"
]
}
}>,
"is_messaging_setter" : true
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 358,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"source_expr" : <"ParenExpr" : (
{
"pointer" : 359,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
<"CStyleCastExpr" : (
{
"pointer" : 360,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
<"IntegerLiteral" : (
{
"pointer" : 361,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "0"
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"NullToPointer">,
"base_path" : [
]
},
{
"type_ptr" : 7
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"kind" : <"Assign">
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 355,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 356,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 357,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 329,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 358,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"source_expr" : <"ParenExpr" : (
{
"pointer" : 359,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
<"CStyleCastExpr" : (
{
"pointer" : 360,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
<"IntegerLiteral" : (
{
"pointer" : 361,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "0"
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"NullToPointer">,
"base_path" : [
]
},
{
"type_ptr" : 7
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 362,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 121
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 363,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 358,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"source_expr" : <"ParenExpr" : (
{
"pointer" : 359,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
<"CStyleCastExpr" : (
{
"pointer" : 360,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
<"IntegerLiteral" : (
{
"pointer" : 361,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "0"
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"NullToPointer">,
"base_path" : [
]
},
{
"type_ptr" : 7
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 121
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>
}
)>,
<"ObjCMessageExpr" : (
{
"pointer" : 364,
"source_range" : (
{
"column" : 8
},
{
"column" : 8
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 355,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 356,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 357,
"source_range" : (
{
"column" : 3
},
{
"column" : 3
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ImplicitParam">,
"decl_pointer" : 329,
"name" : {
"name" : "self",
"qual_name" : [
"self"
]
},
"qual_type" : {
"type_ptr" : 126,
"is_const" : true
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
}
)>,
<"OpaqueValueExpr" : (
{
"pointer" : 362,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 121
}
},
{
"source_expr" : <"ImplicitCastExpr" : (
{
"pointer" : 363,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
<"OpaqueValueExpr" : (
{
"pointer" : 358,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"source_expr" : <"ParenExpr" : (
{
"pointer" : 359,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
<"CStyleCastExpr" : (
{
"pointer" : 360,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
<"IntegerLiteral" : (
{
"pointer" : 361,
"source_range" : (
{
"column" : 19
},
{
"column" : 19
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "0"
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
},
{
"cast_kind" : <"NullToPointer">,
"base_path" : [
]
},
{
"type_ptr" : 7
}
)>
],
{
"qual_type" : {
"type_ptr" : 7
}
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 121
}
},
{
"cast_kind" : <"BitCast">,
"base_path" : [
]
}
)>
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
},
{
"selector" : "setDelegate:",
"is_definition_found" : true,
"decl_pointer" : 321
}
)>
],
{
"qual_type" : {
"type_ptr" : 121
}
}
)>
]
)>,
"mangled_name" : "-[MyClass(MyCategory) bar:]"
}
)>
],
{
},
{
"class_interface" : {
"kind" : <"ObjCInterface">,
"decl_pointer" : 106,
"name" : {
"name" : "MyClass",
"qual_name" : [
"MyClass"
]
}
},
"category_decl" : {
"kind" : <"ObjCCategory">,
"decl_pointer" : 147,
"name" : {
"name" : "MyCategory",
"qual_name" : [
"MyCategory"
]
}
}
}
)>,
<"ObjCInterfaceDecl" : (
{
"pointer" : 365,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 83,
"column" : 1
},
{
"line" : 85,
"column" : 2
}
)
},
{
"name" : "MyClassGenerics",
"qual_name" : [
"MyClassGenerics"
]
},
[
],
{
},
{
"super" : {
"kind" : <"ObjCInterface">,
"decl_pointer" : 18,
"name" : {
"name" : "NSObject",
"qual_name" : [
"NSObject"
]
}
}
}
)>,
<"ObjCInterfaceDecl" : (
{
"pointer" : 366,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 87,
"column" : 1
},
{
"line" : 89,
"column" : 2
}
)
},
{
"name" : "BarGenerics",
"qual_name" : [
"BarGenerics"
]
},
[
<"ObjCMethodDecl" : (
{
"pointer" : 367,
"parent_pointer" : 366,
"source_range" : (
{
"line" : 88,
"column" : 1
},
{
"column" : 60
}
),
"attributes" : [
<"NSReturnsRetainedAttr" : (
{
"pointer" : 368,
"source_range" : (
{
},
{
}
)
}
)>
]
},
{
"name" : "newWithCs:",
"qual_name" : [
"newWithCs:",
"BarGenerics"
]
},
{
"result_type" : {
"type_ptr" : 21
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 369,
"source_range" : (
{
"column" : 28
},
{
"column" : 58
}
)
},
{
"name" : "Cs",
"qual_name" : [
"Cs"
]
},
{
"type_ptr" : 370
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 371,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 9,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 372,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"mangled_name" : "+[BarGenerics newWithCs:]"
}
)>
],
{
},
{
"super" : {
"kind" : <"ObjCInterface">,
"decl_pointer" : 18,
"name" : {
"name" : "NSObject",
"qual_name" : [
"NSObject"
]
}
}
}
)>,
<"ObjCInterfaceDecl" : (
{
"pointer" : 373,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 91,
"column" : 1
},
{
"line" : 92,
"column" : 2
}
)
},
{
"name" : "MySubclass",
"qual_name" : [
"MySubclass"
]
},
[
],
{
},
{
"super" : {
"kind" : <"ObjCInterface">,
"decl_pointer" : 106,
"name" : {
"name" : "MyClass",
"qual_name" : [
"MyClass"
]
}
},
"implementation" : {
"kind" : <"ObjCImplementation">,
"decl_pointer" : 374,
"name" : {
"name" : "MySubclass",
"qual_name" : [
"MySubclass"
]
}
}
}
)>,
<"ObjCImplementationDecl" : (
{
"pointer" : 374,
"parent_pointer" : 1,
"source_range" : (
{
"line" : 94,
"column" : 1
},
{
"line" : 104,
"column" : 1
}
)
},
{
"name" : "MySubclass",
"qual_name" : [
"MySubclass"
]
},
[
<"ObjCMethodDecl" : (
{
"pointer" : 375,
"parent_pointer" : 374,
"source_range" : (
{
"line" : 96,
"column" : 1
},
{
"line" : 98,
"column" : 1
}
)
},
{
"name" : "bar:",
"qual_name" : [
"bar:",
"MySubclass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 376,
"source_range" : (
{
"line" : 96,
"column" : 14
},
{
"column" : 25
}
),
"is_used" : true,
"is_this_declaration_referenced" : true
},
{
"name" : "s",
"qual_name" : [
"s"
]
},
{
"type_ptr" : 59
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 377,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 378,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 379,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"is_overriding" : true,
"body" : <"CompoundStmt" : (
{
"pointer" : 380,
"source_range" : (
{
"column" : 27
},
{
"line" : 98,
"column" : 1
}
)
},
[
<"ObjCMessageExpr" : (
{
"pointer" : 381,
"source_range" : (
{
"line" : 97,
"column" : 3
},
{
"column" : 15
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 382,
"source_range" : (
{
"column" : 14
},
{
"column" : 14
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 383,
"source_range" : (
{
"column" : 14
},
{
"column" : 14
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 59
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ParmVar">,
"decl_pointer" : 376,
"name" : {
"name" : "s",
"qual_name" : [
"s"
]
},
"qual_type" : {
"type_ptr" : 59
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
},
{
"selector" : "bar:",
"is_definition_found" : true,
"decl_pointer" : 327,
"receiver_kind" : <"SuperInstance">
}
)>
]
)>,
"mangled_name" : "-[MySubclass bar:]"
}
)>,
<"ObjCMethodDecl" : (
{
"pointer" : 384,
"parent_pointer" : 374,
"source_range" : (
{
"line" : 100,
"column" : 1
},
{
"line" : 102,
"column" : 1
}
)
},
{
"name" : "foo:",
"qual_name" : [
"foo:",
"MySubclass"
]
},
{
"is_instance_method" : true,
"result_type" : {
"type_ptr" : 101
},
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 385,
"source_range" : (
{
"line" : 100,
"column" : 14
},
{
"column" : 34
}
),
"is_used" : true,
"is_this_declaration_referenced" : true
},
{
"name" : "s",
"qual_name" : [
"s"
]
},
{
"type_ptr" : 151
},
{
"parm_index_in_function" : 0
}
)>
],
"implicit_parameters" : [
<"ImplicitParamDecl" : (
{
"pointer" : 386,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "self",
"qual_name" : [
"self"
]
},
{
"type_ptr" : 378,
"is_const" : true
},
{
}
)>,
<"ImplicitParamDecl" : (
{
"pointer" : 387,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "_cmd",
"qual_name" : [
"_cmd"
]
},
{
"type_ptr" : 5
},
{
}
)>
],
"is_overriding" : true,
"body" : <"CompoundStmt" : (
{
"pointer" : 388,
"source_range" : (
{
"column" : 36
},
{
"line" : 102,
"column" : 1
}
)
},
[
<"ObjCMessageExpr" : (
{
"pointer" : 389,
"source_range" : (
{
"line" : 101,
"column" : 3
},
{
"column" : 15
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 390,
"source_range" : (
{
"column" : 14
},
{
"column" : 14
}
)
},
[
<"DeclRefExpr" : (
{
"pointer" : 391,
"source_range" : (
{
"column" : 14
},
{
"column" : 14
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 151
},
"value_kind" : <"LValue">
},
{
"decl_ref" : {
"kind" : <"ParmVar">,
"decl_pointer" : 385,
"name" : {
"name" : "s",
"qual_name" : [
"s"
]
},
"qual_type" : {
"type_ptr" : 151
}
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 151
}
},
{
"cast_kind" : <"LValueToRValue">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
},
{
"selector" : "foo:",
"is_definition_found" : true,
"decl_pointer" : 154,
"receiver_kind" : <"SuperInstance">
}
)>
]
)>,
"mangled_name" : "-[MySubclass foo:]"
}
)>
],
{
},
{
"class_interface" : {
"kind" : <"ObjCInterface">,
"decl_pointer" : 373,
"name" : {
"name" : "MySubclass",
"qual_name" : [
"MySubclass"
]
}
}
}
)>,
<"FunctionDecl" : (
{
"pointer" : 392,
"source_range" : (
{
"line" : 106,
"column" : 1
},
{
"line" : 112,
"column" : 1
}
)
},
{
"name" : "main",
"qual_name" : [
"main"
]
},
{
"type_ptr" : 393
},
{
"parameters" : [
<"ParmVarDecl" : (
{
"pointer" : 394,
"source_range" : (
{
"line" : 106,
"column" : 10
},
{
"column" : 14
}
)
},
{
"name" : "argc",
"qual_name" : [
"argc"
]
},
{
"type_ptr" : 53
},
{
"parm_index_in_function" : 0
}
)>,
<"ParmVarDecl" : (
{
"pointer" : 395,
"source_range" : (
{
"column" : 20
},
{
"column" : 27
}
)
},
{
"name" : "argv",
"qual_name" : [
"argv"
]
},
{
"type_ptr" : 396
},
{
"parm_index_in_function" : 1
}
)>
],
"decl_ptr_with_body" : 392,
"body" : <"CompoundStmt" : (
{
"pointer" : 397,
"source_range" : (
{
"column" : 33
},
{
"line" : 112,
"column" : 1
}
)
},
[
<"ObjCAutoreleasePoolStmt" : (
{
"pointer" : 398,
"source_range" : (
{
"line" : 107,
"column" : 3
},
{
"line" : 110,
"column" : 3
}
)
},
[
<"CompoundStmt" : (
{
"pointer" : 399,
"source_range" : (
{
"line" : 107,
"column" : 20
},
{
"line" : 110,
"column" : 3
}
)
},
[
<"ExprWithCleanups" : (
{
"pointer" : 400,
"source_range" : (
{
"line" : 108,
"column" : 5
},
{
"column" : 41
}
)
},
[
<"ObjCMessageExpr" : (
{
"pointer" : 401,
"source_range" : (
{
"column" : 5
},
{
"column" : 41
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 402,
"source_range" : (
{
"column" : 6
},
{
"column" : 27
}
)
},
[
<"ObjCMessageExpr" : (
{
"pointer" : 403,
"source_range" : (
{
"column" : 6
},
{
"column" : 27
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 404,
"source_range" : (
{
"column" : 7
},
{
"column" : 21
}
)
},
[
<"ObjCMessageExpr" : (
{
"pointer" : 405,
"source_range" : (
{
"column" : 7
},
{
"column" : 21
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"selector" : "alloc",
"decl_pointer" : 19,
"receiver_kind" : <"Class" : {
"type_ptr" : 406
}>
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"ARCConsumeObject">,
"base_path" : [
]
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"selector" : "init",
"decl_pointer" : 32
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"ARCConsumeObject">,
"base_path" : [
]
}
)>,
<"ObjCStringLiteral" : (
{
"pointer" : 407,
"source_range" : (
{
"column" : 33
},
{
"column" : 34
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 408,
"source_range" : (
{
"column" : 34
},
{
"column" : 34
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 409
},
"value_kind" : <"LValue">
},
[
"hello"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
},
{
"selector" : "foo:",
"is_definition_found" : true,
"decl_pointer" : 154
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
},
{
}
)>,
<"ExprWithCleanups" : (
{
"pointer" : 410,
"source_range" : (
{
"line" : 109,
"column" : 5
},
{
"column" : 32
}
)
},
[
<"ObjCMessageExpr" : (
{
"pointer" : 411,
"source_range" : (
{
"column" : 5
},
{
"column" : 32
}
)
},
[
<"ImplicitCastExpr" : (
{
"pointer" : 412,
"source_range" : (
{
"column" : 6
},
{
"column" : 18
}
)
},
[
<"ObjCMessageExpr" : (
{
"pointer" : 413,
"source_range" : (
{
"column" : 6
},
{
"column" : 18
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"selector" : "new",
"decl_pointer" : 24,
"receiver_kind" : <"Class" : {
"type_ptr" : 406
}>
}
)>
],
{
"qual_type" : {
"type_ptr" : 126
}
},
{
"cast_kind" : <"ARCConsumeObject">,
"base_path" : [
]
}
)>,
<"ObjCStringLiteral" : (
{
"pointer" : 414,
"source_range" : (
{
"column" : 24
},
{
"column" : 25
}
)
},
[
<"StringLiteral" : (
{
"pointer" : 415,
"source_range" : (
{
"column" : 25
},
{
"column" : 25
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 409
},
"value_kind" : <"LValue">
},
[
"hello"
]
)>
],
{
"qual_type" : {
"type_ptr" : 59
}
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
},
{
"selector" : "bar:",
"is_definition_found" : true,
"decl_pointer" : 327
}
)>
],
{
"qual_type" : {
"type_ptr" : 101
}
},
{
}
)>
]
)>
]
)>,
<"ReturnStmt" : (
{
"pointer" : 416,
"source_range" : (
{
"line" : 111,
"column" : 3
},
{
"column" : 10
}
)
},
[
<"IntegerLiteral" : (
{
"pointer" : 417,
"source_range" : (
{
"column" : 10
},
{
"column" : 10
}
)
},
[
],
{
"qual_type" : {
"type_ptr" : 53
}
},
{
"is_signed" : true,
"bitwidth" : 32,
"value" : "0"
}
)>
]
)>
]
)>
}
)>,
<"TypedefDecl" : (
{
"pointer" : 418,
"source_range" : (
{
},
{
}
),
"is_implicit" : true
},
{
"name" : "instancetype",
"qual_name" : [
"instancetype"
]
},
21,
{
}
)>
],
{
},
{
"input_path" : "tests/ObjCTest.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" : 101
},
<"Void">
)>,
<"BuiltinType" : (
{
"pointer" : 419
},
<"Bool">
)>,
<"BuiltinType" : (
{
"pointer" : 420
},
<"Char_S">
)>,
<"BuiltinType" : (
{
"pointer" : 421
},
<"SChar">
)>,
<"BuiltinType" : (
{
"pointer" : 422
},
<"Short">
)>,
<"BuiltinType" : (
{
"pointer" : 53
},
<"Int">
)>,
<"BuiltinType" : (
{
"pointer" : 423
},
<"Long">
)>,
<"BuiltinType" : (
{
"pointer" : 424
},
<"LongLong">
)>,
<"BuiltinType" : (
{
"pointer" : 425
},
<"UChar">
)>,
<"BuiltinType" : (
{
"pointer" : 426
},
<"UShort">
)>,
<"BuiltinType" : (
{
"pointer" : 79
},
<"UInt">
)>,
<"BuiltinType" : (
{
"pointer" : 427
},
<"ULong">
)>,
<"BuiltinType" : (
{
"pointer" : 428
},
<"ULongLong">
)>,
<"BuiltinType" : (
{
"pointer" : 429
},
<"Float">
)>,
<"BuiltinType" : (
{
"pointer" : 430
},
<"Double">
)>,
<"BuiltinType" : (
{
"pointer" : 431
},
<"LongDouble">
)>,
<"BuiltinType" : (
{
"pointer" : 432
},
<"Float128">
)>,
<"BuiltinType" : (
{
"pointer" : 433
},
<"Float16">
)>,
<"BuiltinType" : (
{
"pointer" : 434
},
<"ShortAccum">
)>,
<"BuiltinType" : (
{
"pointer" : 435
},
<"Accum">
)>,
<"BuiltinType" : (
{
"pointer" : 436
},
<"LongAccum">
)>,
<"BuiltinType" : (
{
"pointer" : 437
},
<"UShortAccum">
)>,
<"BuiltinType" : (
{
"pointer" : 438
},
<"UAccum">
)>,
<"BuiltinType" : (
{
"pointer" : 439
},
<"ULongAccum">
)>,
<"BuiltinType" : (
{
"pointer" : 440
},
<"ShortFract">
)>,
<"BuiltinType" : (
{
"pointer" : 441
},
<"Fract">
)>,
<"BuiltinType" : (
{
"pointer" : 442
},
<"LongFract">
)>,
<"BuiltinType" : (
{
"pointer" : 443
},
<"UShortFract">
)>,
<"BuiltinType" : (
{
"pointer" : 444
},
<"UFract">
)>,
<"BuiltinType" : (
{
"pointer" : 445
},
<"ULongFract">
)>,
<"BuiltinType" : (
{
"pointer" : 446
},
<"SatShortAccum">
)>,
<"BuiltinType" : (
{
"pointer" : 447
},
<"SatAccum">
)>,
<"BuiltinType" : (
{
"pointer" : 448
},
<"SatLongAccum">
)>,
<"BuiltinType" : (
{
"pointer" : 449
},
<"SatUShortAccum">
)>,
<"BuiltinType" : (
{
"pointer" : 450
},
<"SatUAccum">
)>,
<"BuiltinType" : (
{
"pointer" : 451
},
<"SatULongAccum">
)>,
<"BuiltinType" : (
{
"pointer" : 452
},
<"SatShortFract">
)>,
<"BuiltinType" : (
{
"pointer" : 453
},
<"SatFract">
)>,
<"BuiltinType" : (
{
"pointer" : 454
},
<"SatLongFract">
)>,
<"BuiltinType" : (
{
"pointer" : 455
},
<"SatUShortFract">
)>,
<"BuiltinType" : (
{
"pointer" : 456
},
<"SatUFract">
)>,
<"BuiltinType" : (
{
"pointer" : 457
},
<"SatULongFract">
)>,
<"BuiltinType" : (
{
"pointer" : 458
},
<"Int128">
)>,
<"BuiltinType" : (
{
"pointer" : 459
},
<"UInt128">
)>,
<"BuiltinType" : (
{
"pointer" : 460
},
<"WChar_S">
)>,
<"BuiltinType" : (
{
"pointer" : 461
},
<"Char8">
)>,
<"BuiltinType" : (
{
"pointer" : 462
},
<"Dependent">
)>,
<"BuiltinType" : (
{
"pointer" : 463
},
<"Overload">
)>,
<"BuiltinType" : (
{
"pointer" : 464
},
<"BoundMember">
)>,
<"BuiltinType" : (
{
"pointer" : 205
},
<"PseudoObject">
)>,
<"BuiltinType" : (
{
"pointer" : 465
},
<"UnknownAny">
)>,
<"BuiltinType" : (
{
"pointer" : 466
},
<"ARCUnbridgedCast">
)>,
<"BuiltinType" : (
{
"pointer" : 467
},
<"BuiltinFn">
)>,
<"ComplexType" : (
{
"pointer" : 468
}
)>,
<"ComplexType" : (
{
"pointer" : 469
}
)>,
<"ComplexType" : (
{
"pointer" : 470
}
)>,
<"ComplexType" : (
{
"pointer" : 471
}
)>,
<"BuiltinType" : (
{
"pointer" : 472
},
<"ObjCId">
)>,
<"BuiltinType" : (
{
"pointer" : 473
},
<"ObjCClass">
)>,
<"BuiltinType" : (
{
"pointer" : 474
},
<"ObjCSel">
)>,
<"PointerType" : (
{
"pointer" : 112
},
{
"type_ptr" : 101
}
)>,
<"BuiltinType" : (
{
"pointer" : 475
},
<"NullPtr">
)>,
<"BuiltinType" : (
{
"pointer" : 476
},
<"Half">
)>,
<"PointerType" : (
{
"pointer" : 477
},
{
"type_ptr" : 474
}
)>,
<"ObjCObjectType" : (
{
"pointer" : 478
},
{
"base_type" : 472
}
)>,
<"ObjCObjectPointerType" : (
{
"pointer" : 479
},
{
"type_ptr" : 478
}
)>,
<"ObjCObjectType" : (
{
"pointer" : 480
},
{
"base_type" : 473
}
)>,
<"ObjCObjectPointerType" : (
{
"pointer" : 481
},
{
"type_ptr" : 480
}
)>,
<"ObjCInterfaceType" : (
{
"pointer" : 482
},
10
)>,
<"RecordType" : (
{
"pointer" : 483
},
484
)>,
<"PointerType" : (
{
"pointer" : 485
},
{
"type_ptr" : 53,
"is_const" : true
}
)>,
<"PointerType" : (
{
"pointer" : 486
},
{
"type_ptr" : 420,
"is_const" : true
}
)>,
<"PointerType" : (
{
"pointer" : 170
},
{
"type_ptr" : 420
}
)>,
<"RecordType" : (
{
"pointer" : 487
},
488
)>,
<"ConstantArrayType" : (
{
"pointer" : 489
},
{
"element_type" : {
"type_ptr" : 487
},
"stride" : 24
},
1
)>,
<"ObjCInterfaceType" : (
{
"pointer" : 490
},
18
)>,
<"TypedefType" : (
{
"pointer" : 7,
"desugared_type" : 479
},
{
"child_type" : {
"type_ptr" : 479
},
"decl_ptr" : 6
}
)>,
<"TypedefType" : (
{
"pointer" : 21,
"desugared_type" : 479
},
{
"child_type" : {
"type_ptr" : 7
},
"decl_ptr" : 418
}
)>,
<"TypedefType" : (
{
"pointer" : 9,
"desugared_type" : 481
},
{
"child_type" : {
"type_ptr" : 481
},
"decl_ptr" : 8
}
)>,
<"TypedefType" : (
{
"pointer" : 5,
"desugared_type" : 477
},
{
"child_type" : {
"type_ptr" : 477
},
"decl_ptr" : 4
}
)>,
<"ObjCObjectPointerType" : (
{
"pointer" : 30
},
{
"type_ptr" : 490
}
)>,
<"TypedefType" : (
{
"pointer" : 15,
"desugared_type" : 53
},
{
"child_type" : {
"type_ptr" : 53
},
"decl_ptr" : 14
}
)>,
<"ObjCObjectPointerType" : (
{
"pointer" : 47
},
{
"type_ptr" : 482
}
)>,
<"ObjCInterfaceType" : (
{
"pointer" : 491
},
50
)>,
<"ObjCInterfaceType" : (
{
"pointer" : 492
},
56
)>,
<"TypedefType" : (
{
"pointer" : 17,
"desugared_type" : 79
},
{
"child_type" : {
"type_ptr" : 79
},
"decl_ptr" : 16
}
)>,
<"ObjCObjectPointerType" : (
{
"pointer" : 59
},
{
"type_ptr" : 492
}
)>,
<"ObjCInterfaceType" : (
{
"pointer" : 493
},
61
)>,
<"IncompleteArrayType" : (
{
"pointer" : 494
},
{
"element_type" : {
"type_ptr" : 479
},
"stride" : 8
}
)>,
<"IncompleteArrayType" : (
{
"pointer" : 495
},
{
"element_type" : {
"type_ptr" : 7,
"is_const" : true
},
"stride" : 8
}
)>,
<"IncompleteArrayType" : (
{
"pointer" : 496
},
{
"element_type" : {
"type_ptr" : 7,
"is_const" : true
},
"stride" : 8
}
)>,
<"PointerType" : (
{
"pointer" : 497
},
{
"type_ptr" : 479,
"is_const" : true
}
)>,
<"PointerType" : (
{
"pointer" : 498
},
{
"type_ptr" : 7,
"is_const" : true
}
)>,
<"DecayedType" : (
{
"pointer" : 64,
"desugared_type" : 498
},
{
"type_ptr" : 498
}
)>,
<"ObjCObjectPointerType" : (
{
"pointer" : 72
},
{
"type_ptr" : 493
}
)>,
<"ObjCInterfaceType" : (
{
"pointer" : 499
},
74
)>,
<"PointerType" : (
{
"pointer" : 500
},
{
"type_ptr" : 479
}
)>,
<"PointerType" : (
{
"pointer" : 77
},
{
"type_ptr" : 7
}
)>,
<"ObjCObjectPointerType" : (
{
"pointer" : 85
},
{
"type_ptr" : 499
}
)>,
<"ObjCInterfaceType" : (
{
"pointer" : 501
},
87
)>,
<"FunctionProtoType" : (
{
"pointer" : 502
},
{
"return_type" : {
"type_ptr" : 101
}
},
{
"params_type" : [
{
"type_ptr" : 59
}
]
}
)>,
<"FunctionProtoType" : (
{
"pointer" : 503
},
{
"return_type" : {
"type_ptr" : 101
}
},
{
"params_type" : [
{
"type_ptr" : 59
}
]
}
)>,
<"FunctionProtoType" : (
{
"pointer" : 504
},
{
"return_type" : {
"type_ptr" : 101
}
},
{
"params_type" : [
{
"type_ptr" : 479
}
]
}
)>,
<"FunctionProtoType" : (
{
"pointer" : 90
},
{
"return_type" : {
"type_ptr" : 101
}
},
{
"params_type" : [
{
"type_ptr" : 7
}
]
}
)>,
<"ObjCInterfaceType" : (
{
"pointer" : 406
},
106
)>,
<"ObjCObjectType" : (
{
"pointer" : 505
},
{
"base_type" : 490,
"protocol_decls_ptr" : [
105
]
}
)>,
<"ObjCObjectPointerType" : (
{
"pointer" : 121
},
{
"type_ptr" : 505
}
)>,
<"ObjCObjectPointerType" : (
{
"pointer" : 126
},
{
"type_ptr" : 406
}
)>,
<"AttributedType" : (
{
"pointer" : 151,
"desugared_type" : 59
},
{
"attr_kind" : <"TypeNonNullAttrKind">
}
)>,
<"ConstantArrayType" : (
{
"pointer" : 166
},
{
"element_type" : {
"type_ptr" : 420
},
"stride" : 1
},
4
)>,
<"PointerType" : (
{
"pointer" : 506
},
{
"type_ptr" : 53
}
)>,
<"PointerType" : (
{
"pointer" : 169
},
{
"type_ptr" : 506
}
)>,
<"PointerType" : (
{
"pointer" : 507
},
{
"type_ptr" : 504
}
)>,
<"PointerType" : (
{
"pointer" : 162
},
{
"type_ptr" : 90
}
)>,
<"FunctionProtoType" : (
{
"pointer" : 508
},
{
"return_type" : {
"type_ptr" : 79
}
},
{
"params_type" : [
{
"type_ptr" : 59
}
]
}
)>,
<"FunctionProtoType" : (
{
"pointer" : 509
},
{
"return_type" : {
"type_ptr" : 17
}
},
{
"params_type" : [
{
"type_ptr" : 59
}
]
}
)>,
<"ParenType" : (
{
"pointer" : 510,
"desugared_type" : 509
},
{
"type_ptr" : 509
}
)>,
<"BlockPointerType" : (
{
"pointer" : 511
},
{
"type_ptr" : 508
}
)>,
<"BlockPointerType" : (
{
"pointer" : 217
},
{
"type_ptr" : 510
}
)>,
<"FunctionProtoType" : (
{
"pointer" : 512
},
{
"return_type" : {
"type_ptr" : 462
}
},
{
"params_type" : [
{
"type_ptr" : 59
}
]
}
)>,
<"FunctionProtoType" : (
{
"pointer" : 513
},
{
"return_type" : {
"type_ptr" : 462
}
},
{
"params_type" : [
{
"type_ptr" : 59
}
]
}
)>,
<"BlockPointerType" : (
{
"pointer" : 195
},
{
"type_ptr" : 509
}
)>,
<"ObjCObjectPointerType" : (
{
"pointer" : 228
},
{
"type_ptr" : 491
}
)>,
<"ConstantArrayType" : (
{
"pointer" : 274
},
{
"element_type" : {
"type_ptr" : 420
},
"stride" : 1
},
10
)>,
<"ObjCObjectPointerType" : (
{
"pointer" : 289
},
{
"type_ptr" : 501
}
)>,
<"ConstantArrayType" : (
{
"pointer" : 286
},
{
"element_type" : {
"type_ptr" : 420
},
"stride" : 1
},
14
)>,
<"ConstantArrayType" : (
{
"pointer" : 299
},
{
"element_type" : {
"type_ptr" : 420
},
"stride" : 1
},
8
)>,
<"ConstantArrayType" : (
{
"pointer" : 310
},
{
"element_type" : {
"type_ptr" : 420
},
"stride" : 1
},
7
)>,
<"ObjCTypeParamType" : (
{
"pointer" : 514,
"desugared_type" : 479
}
)>,
<"ObjCInterfaceType" : (
{
"pointer" : 515
},
365
)>,
<"ObjCInterfaceType" : (
{
"pointer" : 516
},
366
)>,
<"ObjCObjectType" : (
{
"pointer" : 517
},
{
"base_type" : 515,
"type_args" : [
{
"type_ptr" : 30
}
]
}
)>,
<"ObjCObjectPointerType" : (
{
"pointer" : 370
},
{
"type_ptr" : 517
}
)>,
<"ObjCInterfaceType" : (
{
"pointer" : 518
},
373
)>,
<"ObjCObjectPointerType" : (
{
"pointer" : 378
},
{
"type_ptr" : 518
}
)>,
<"PointerType" : (
{
"pointer" : 396
},
{
"type_ptr" : 170
}
)>,
<"FunctionProtoType" : (
{
"pointer" : 393
},
{
"return_type" : {
"type_ptr" : 53
}
},
{
"params_type" : [
{
"type_ptr" : 53
},
{
"type_ptr" : 396
}
]
}
)>,
<"ConstantArrayType" : (
{
"pointer" : 409
},
{
"element_type" : {
"type_ptr" : 420
},
"stride" : 1
},
6
)>,
<"NoneType" : (
{
"pointer" : 0
}
)>
]
}
)>