<"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 }, "mangled_name" : "+[NSObject alloc]" } )>, <"ObjCMethodDecl" : ( { "pointer" : 22, "parent_pointer" : 18, "source_range" : ( { "line" : 19, "column" : 1 }, { "column" : 20 } ), "attributes" : [ <"NSReturnsRetainedAttr" : ( { "pointer" : 23, "source_range" : ( { }, { } ) } )> ] }, { "name" : "new", "qual_name" : [ "new", "NSObject" ] }, { "result_type" : { "type_ptr" : 21 }, "mangled_name" : "+[NSObject new]" } )>, <"ObjCMethodDecl" : ( { "pointer" : 24, "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 }, "mangled_name" : "-[NSObject autorelease]" } )>, <"ObjCMethodDecl" : ( { "pointer" : 25, "parent_pointer" : 18, "source_range" : ( { "line" : 21, "column" : 1 }, { "column" : 21 } ), "attributes" : [ <"NSConsumesSelfAttr" : ( { "pointer" : 26, "source_range" : ( { }, { } ) } )>, <"NSReturnsRetainedAttr" : ( { "pointer" : 27, "source_range" : ( { }, { } ) } )> ] }, { "name" : "init", "qual_name" : [ "init", "NSObject" ] }, { "is_instance_method" : true, "result_type" : { "type_ptr" : 21 }, "mangled_name" : "-[NSObject init]" } )>, <"ObjCMethodDecl" : ( { "pointer" : 28, "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 }, "mangled_name" : "-[NSObject class]" } )>, <"ObjCMethodDecl" : ( { "pointer" : 29, "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" : 30, "source_range" : ( { "column" : 29 }, { "column" : 33 } ) }, { "name" : "s", "qual_name" : [ "s" ] }, { "type_ptr" : 5 }, { "parm_index_in_function" : 0 } )> ], "mangled_name" : "-[NSObject respondsToSelector:]" } )>, <"ObjCMethodDecl" : ( { "pointer" : 31, "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" : 32, "source_range" : ( { "column" : 29 }, { "column" : 40 } ) }, { "name" : "p", "qual_name" : [ "p" ] }, { "type_ptr" : 33 }, { "parm_index_in_function" : 0 } )> ], "mangled_name" : "-[NSObject conformsToProtocol:]" } )> ], { }, { } )>, <"ObjCInterfaceDecl" : ( { "pointer" : 34, "parent_pointer" : 1, "source_range" : ( { "line" : 29, "column" : 1 }, { "line" : 31, "column" : 2 } ) }, { "name" : "NSNumber", "qual_name" : [ "NSNumber" ] }, [ <"ObjCMethodDecl" : ( { "pointer" : 35, "parent_pointer" : 34, "source_range" : ( { "line" : 30, "column" : 1 }, { "column" : 37 } ) }, { "name" : "numberWithInt:", "qual_name" : [ "numberWithInt:", "NSNumber" ] }, { "result_type" : { "type_ptr" : 21 }, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 36, "source_range" : ( { "column" : 32 }, { "column" : 36 } ) }, { "name" : "x", "qual_name" : [ "x" ] }, { "type_ptr" : 37 }, { "parm_index_in_function" : 0 } )> ], "mangled_name" : "+[NSNumber numberWithInt:]" } )> ], { }, { "super" : { "kind" : <"ObjCInterface">, "decl_pointer" : 18, "name" : { "name" : "NSObject", "qual_name" : [ "NSObject" ] } } } )>, <"ObjCInterfaceDecl" : ( { "pointer" : 38, "parent_pointer" : 1, "source_range" : ( { "line" : 33, "column" : 1 }, { "line" : 35, "column" : 2 } ) }, { "name" : "NSString", "qual_name" : [ "NSString" ] }, [ <"ObjCMethodDecl" : ( { "pointer" : 39, "parent_pointer" : 38, "source_range" : ( { "line" : 34, "column" : 1 }, { "column" : 21 } ) }, { "name" : "length", "qual_name" : [ "length", "NSString" ] }, { "is_instance_method" : true, "result_type" : { "type_ptr" : 17 }, "mangled_name" : "-[NSString length]" } )> ], { }, { "super" : { "kind" : <"ObjCInterface">, "decl_pointer" : 18, "name" : { "name" : "NSObject", "qual_name" : [ "NSObject" ] } } } )>, <"ObjCInterfaceDecl" : ( { "pointer" : 40, "parent_pointer" : 1, "source_range" : ( { "line" : 37, "column" : 1 }, { "line" : 42, "column" : 2 } ) }, { "name" : "NSDictionary", "qual_name" : [ "NSDictionary" ] }, [ <"ObjCMethodDecl" : ( { "pointer" : 41, "parent_pointer" : 40, "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" : 42, "source_range" : ( { "line" : 38, "column" : 46 }, { "column" : 51 } ) }, { "name" : "objects", "qual_name" : [ "objects" ] }, { "type_ptr" : 43 }, { "parm_index_in_function" : 0 } )>, <"ParmVarDecl" : ( { "pointer" : 44, "source_range" : ( { "line" : 39, "column" : 46 }, { "column" : 51 } ) }, { "name" : "keys", "qual_name" : [ "keys" ] }, { "type_ptr" : 43 }, { "parm_index_in_function" : 1 } )>, <"ParmVarDecl" : ( { "pointer" : 45, "source_range" : ( { "line" : 40, "column" : 40 }, { "column" : 51 } ) }, { "name" : "count", "qual_name" : [ "count" ] }, { "type_ptr" : 17 }, { "parm_index_in_function" : 2 } )> ], "mangled_name" : "+[NSDictionary dictionaryWithObjects:forKeys:count:]" } )>, <"ObjCMethodDecl" : ( { "pointer" : 46, "parent_pointer" : 40, "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" : 47, "source_range" : ( { "column" : 32 }, { "column" : 35 } ) }, { "name" : "key", "qual_name" : [ "key" ] }, { "type_ptr" : 7 }, { "parm_index_in_function" : 0 } )> ], "mangled_name" : "-[NSDictionary objectForKeyedSubscript:]" } )> ], { }, { "super" : { "kind" : <"ObjCInterface">, "decl_pointer" : 18, "name" : { "name" : "NSObject", "qual_name" : [ "NSObject" ] } } } )>, <"ObjCInterfaceDecl" : ( { "pointer" : 48, "parent_pointer" : 1, "source_range" : ( { "line" : 44, "column" : 1 }, { "line" : 47, "column" : 2 } ) }, { "name" : "NSArray", "qual_name" : [ "NSArray" ] }, [ <"ObjCMethodDecl" : ( { "pointer" : 49, "parent_pointer" : 48, "source_range" : ( { "line" : 45, "column" : 1 }, { "column" : 64 } ) }, { "name" : "arrayWithObjects:count:", "qual_name" : [ "arrayWithObjects:count:", "NSArray" ] }, { "result_type" : { "type_ptr" : 21 }, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 50, "source_range" : ( { "column" : 35 }, { "column" : 40 } ) }, { "name" : "objs", "qual_name" : [ "objs" ] }, { "type_ptr" : 51 }, { "parm_index_in_function" : 0 } )>, <"ParmVarDecl" : ( { "pointer" : 52, "source_range" : ( { "column" : 52 }, { "column" : 61 } ) }, { "name" : "cnt", "qual_name" : [ "cnt" ] }, { "type_ptr" : 53 }, { "parm_index_in_function" : 1 } )> ], "mangled_name" : "+[NSArray arrayWithObjects:count:]" } )>, <"ObjCMethodDecl" : ( { "pointer" : 54, "parent_pointer" : 48, "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" : 55, "source_range" : ( { "column" : 33 }, { "column" : 44 } ) }, { "name" : "index", "qual_name" : [ "index" ] }, { "type_ptr" : 17 }, { "parm_index_in_function" : 0 } )> ], "mangled_name" : "-[NSArray objectAtIndexedSubscript:]" } )> ], { }, { "super" : { "kind" : <"ObjCInterface">, "decl_pointer" : 18, "name" : { "name" : "NSObject", "qual_name" : [ "NSObject" ] } } } )>, <"ObjCInterfaceDecl" : ( { "pointer" : 56, "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" : 57, "source_range" : ( { "line" : 52, "column" : 13 }, { "column" : 13 } ), "is_implicit" : true, "is_used" : true, "attributes" : [ <"FormatAttr" : ( { "pointer" : 58, "source_range" : ( { "column" : 13 }, { "column" : 13 } ) } )> ] }, { "name" : "NSLog", "qual_name" : [ "NSLog" ] }, { "type_ptr" : 59 }, { "is_variadic" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 60, "source_range" : ( { }, { } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 7 }, { "parm_index_in_function" : 0 } )> ] } )>, <"FunctionDecl" : ( { "pointer" : 61, "source_range" : ( { "column" : 1 }, { "column" : 34 } ), "is_used" : true, "is_this_declaration_referenced" : true, "attributes" : [ <"FormatAttr" : ( { "pointer" : 62, "source_range" : ( { "column" : 13 }, { "column" : 13 } ) } )> ] }, { "name" : "NSLog", "qual_name" : [ "NSLog" ] }, { "type_ptr" : 59 }, { "is_variadic" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 63, "source_range" : ( { "column" : 19 }, { "column" : 28 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 64 }, { "parm_index_in_function" : 0 } )> ] } )>, <"ObjCInterfaceDecl" : ( { "pointer" : 65, "parent_pointer" : 1, "source_range" : ( { "file" : "tests/Hello.m", "line" : 10, "column" : 1 }, { "line" : 12, "column" : 2 } ) }, { "name" : "Hello", "qual_name" : [ "Hello" ] }, [ <"ObjCMethodDecl" : ( { "pointer" : 66, "parent_pointer" : 65, "source_range" : ( { "line" : 11, "column" : 1 }, { "column" : 19 } ) }, { "name" : "say:", "qual_name" : [ "say:", "Hello" ] }, { "is_instance_method" : true, "result_type" : { "type_ptr" : 67 }, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 68, "source_range" : ( { "column" : 14 }, { "column" : 18 } ) }, { "name" : "i", "qual_name" : [ "i" ] }, { "type_ptr" : 37 }, { "parm_index_in_function" : 0 } )> ], "mangled_name" : "-[Hello say:]" } )> ], { }, { "super" : { "kind" : <"ObjCInterface">, "decl_pointer" : 18, "name" : { "name" : "NSObject", "qual_name" : [ "NSObject" ] } }, "implementation" : { "kind" : <"ObjCImplementation">, "decl_pointer" : 69, "name" : { "name" : "Hello", "qual_name" : [ "Hello" ] } } } )>, <"ObjCImplementationDecl" : ( { "pointer" : 69, "parent_pointer" : 1, "source_range" : ( { "line" : 14, "column" : 1 }, { "line" : 20, "column" : 1 } ) }, { "name" : "Hello", "qual_name" : [ "Hello" ] }, [ <"ObjCMethodDecl" : ( { "pointer" : 70, "parent_pointer" : 69, "source_range" : ( { "line" : 15, "column" : 1 }, { "line" : 19, "column" : 1 } ) }, { "name" : "say:", "qual_name" : [ "say:", "Hello" ] }, { "is_instance_method" : true, "result_type" : { "type_ptr" : 67 }, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 71, "source_range" : ( { "line" : 15, "column" : 14 }, { "column" : 18 } ), "is_used" : true, "is_this_declaration_referenced" : true }, { "name" : "i", "qual_name" : [ "i" ] }, { "type_ptr" : 37 }, { "parm_index_in_function" : 0 } )> ], "implicit_parameters" : [ <"ImplicitParamDecl" : ( { "pointer" : 72, "source_range" : ( { }, { } ), "is_implicit" : true }, { "name" : "self", "qual_name" : [ "self" ] }, { "type_ptr" : 73, "is_const" : true }, { } )>, <"ImplicitParamDecl" : ( { "pointer" : 74, "source_range" : ( { }, { } ), "is_implicit" : true }, { "name" : "_cmd", "qual_name" : [ "_cmd" ] }, { "type_ptr" : 5 }, { } )> ], "body" : <"CompoundStmt" : ( { "pointer" : 75, "source_range" : ( { "column" : 20 }, { "line" : 19, "column" : 1 } ) }, [ <"IfStmt" : ( { "pointer" : 76, "source_range" : ( { "line" : 16, "column" : 3 }, { "line" : 18, "column" : 3 } ) }, [ <"BinaryOperator" : ( { "pointer" : 77, "source_range" : ( { "line" : 16, "column" : 7 }, { "column" : 11 } ) }, [ <"ImplicitCastExpr" : ( { "pointer" : 78, "source_range" : ( { "column" : 7 }, { "column" : 7 } ) }, [ <"DeclRefExpr" : ( { "pointer" : 79, "source_range" : ( { "column" : 7 }, { "column" : 7 } ) }, [ ], { "qual_type" : { "type_ptr" : 37 }, "value_kind" : <"LValue"> }, { "decl_ref" : { "kind" : <"ParmVar">, "decl_pointer" : 71, "name" : { "name" : "i", "qual_name" : [ "i" ] }, "qual_type" : { "type_ptr" : 37 } } } )> ], { "qual_type" : { "type_ptr" : 37 } }, { "cast_kind" : <"LValueToRValue">, "base_path" : [ ] } )>, <"IntegerLiteral" : ( { "pointer" : 80, "source_range" : ( { "column" : 11 }, { "column" : 11 } ) }, [ ], { "qual_type" : { "type_ptr" : 37 } }, { "is_signed" : true, "bitwidth" : 32, "value" : "0" } )> ], { "qual_type" : { "type_ptr" : 37 } }, { "kind" : <"GT"> } )>, <"CompoundStmt" : ( { "pointer" : 81, "source_range" : ( { "column" : 14 }, { "line" : 18, "column" : 3 } ) }, [ <"CallExpr" : ( { "pointer" : 82, "source_range" : ( { "line" : 17, "column" : 5 }, { "column" : 35 } ) }, [ <"ImplicitCastExpr" : ( { "pointer" : 83, "source_range" : ( { "column" : 5 }, { "column" : 5 } ) }, [ <"DeclRefExpr" : ( { "pointer" : 84, "source_range" : ( { "column" : 5 }, { "column" : 5 } ) }, [ ], { "qual_type" : { "type_ptr" : 59 } }, { "decl_ref" : { "kind" : <"Function">, "decl_pointer" : 61, "name" : { "name" : "NSLog", "qual_name" : [ "NSLog" ] }, "qual_type" : { "type_ptr" : 59 } } } )> ], { "qual_type" : { "type_ptr" : 85 } }, { "cast_kind" : <"FunctionToPointerDecay">, "base_path" : [ ] } )>, <"ImplicitCastExpr" : ( { "pointer" : 86, "source_range" : ( { "column" : 11 }, { "column" : 12 } ) }, [ <"ObjCStringLiteral" : ( { "pointer" : 87, "source_range" : ( { "column" : 11 }, { "column" : 12 } ) }, [ <"StringLiteral" : ( { "pointer" : 88, "source_range" : ( { "column" : 12 }, { "column" : 12 } ) }, [ ], { "qual_type" : { "type_ptr" : 89 }, "value_kind" : <"LValue"> }, [ "Hello, world! (%d)" ] )> ], { "qual_type" : { "type_ptr" : 64 } } )> ], { "qual_type" : { "type_ptr" : 7 } }, { "cast_kind" : <"BitCast">, "base_path" : [ ] } )>, <"ImplicitCastExpr" : ( { "pointer" : 90, "source_range" : ( { "column" : 34 }, { "column" : 34 } ) }, [ <"DeclRefExpr" : ( { "pointer" : 91, "source_range" : ( { "column" : 34 }, { "column" : 34 } ) }, [ ], { "qual_type" : { "type_ptr" : 37 }, "value_kind" : <"LValue"> }, { "decl_ref" : { "kind" : <"ParmVar">, "decl_pointer" : 71, "name" : { "name" : "i", "qual_name" : [ "i" ] }, "qual_type" : { "type_ptr" : 37 } } } )> ], { "qual_type" : { "type_ptr" : 37 } }, { "cast_kind" : <"LValueToRValue">, "base_path" : [ ] } )> ], { "qual_type" : { "type_ptr" : 67 } } )> ] )> ], { "cond" : 77, "then" : 81 } )> ] )>, "mangled_name" : "-[Hello say:]" } )> ], { }, { "class_interface" : { "kind" : <"ObjCInterface">, "decl_pointer" : 65, "name" : { "name" : "Hello", "qual_name" : [ "Hello" ] } } } )>, <"FunctionDecl" : ( { "pointer" : 92, "source_range" : ( { "line" : 22, "column" : 1 }, { "line" : 29, "column" : 1 } ) }, { "name" : "main", "qual_name" : [ "main" ] }, { "type_ptr" : 93 }, { "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 94, "source_range" : ( { "line" : 22, "column" : 10 }, { "column" : 14 } ) }, { "name" : "argc", "qual_name" : [ "argc" ] }, { "type_ptr" : 37 }, { "parm_index_in_function" : 0 } )>, <"ParmVarDecl" : ( { "pointer" : 95, "source_range" : ( { "column" : 20 }, { "column" : 31 } ) }, { "name" : "argv", "qual_name" : [ "argv" ] }, { "type_ptr" : 96 }, { "parm_index_in_function" : 1 } )> ], "decl_ptr_with_body" : 92, "body" : <"CompoundStmt" : ( { "pointer" : 97, "source_range" : ( { "column" : 34 }, { "line" : 29, "column" : 1 } ) }, [ <"ForStmt" : ( { "pointer" : 98, "source_range" : ( { "line" : 23, "column" : 3 }, { "line" : 27, "column" : 3 } ) }, [ <"DeclStmt" : ( { "pointer" : 99, "source_range" : ( { "line" : 23, "column" : 8 }, { "column" : 17 } ) }, [ <"IntegerLiteral" : ( { "pointer" : 100, "source_range" : ( { "column" : 16 }, { "column" : 16 } ) }, [ ], { "qual_type" : { "type_ptr" : 37 } }, { "is_signed" : true, "bitwidth" : 32, "value" : "0" } )> ], [ <"VarDecl" : ( { "pointer" : 101, "source_range" : ( { "column" : 8 }, { "column" : 16 } ), "is_used" : true, "is_this_declaration_referenced" : true }, { "name" : "i", "qual_name" : [ "i" ] }, { "type_ptr" : 37 }, { "init_expr" : <"IntegerLiteral" : ( { "pointer" : 100, "source_range" : ( { "column" : 16 }, { "column" : 16 } ) }, [ ], { "qual_type" : { "type_ptr" : 37 } }, { "is_signed" : true, "bitwidth" : 32, "value" : "0" } )> } )> ] )>, <"NullStmt" : ( { "pointer" : 102, "source_range" : ( { }, { } ) }, [ ] )>, <"BinaryOperator" : ( { "pointer" : 103, "source_range" : ( { "column" : 19 }, { "column" : 23 } ) }, [ <"ImplicitCastExpr" : ( { "pointer" : 104, "source_range" : ( { "column" : 19 }, { "column" : 19 } ) }, [ <"DeclRefExpr" : ( { "pointer" : 105, "source_range" : ( { "column" : 19 }, { "column" : 19 } ) }, [ ], { "qual_type" : { "type_ptr" : 37 }, "value_kind" : <"LValue"> }, { "decl_ref" : { "kind" : <"Var">, "decl_pointer" : 101, "name" : { "name" : "i", "qual_name" : [ "i" ] }, "qual_type" : { "type_ptr" : 37 } } } )> ], { "qual_type" : { "type_ptr" : 37 } }, { "cast_kind" : <"LValueToRValue">, "base_path" : [ ] } )>, <"IntegerLiteral" : ( { "pointer" : 106, "source_range" : ( { "column" : 23 }, { "column" : 23 } ) }, [ ], { "qual_type" : { "type_ptr" : 37 } }, { "is_signed" : true, "bitwidth" : 32, "value" : "3" } )> ], { "qual_type" : { "type_ptr" : 37 } }, { "kind" : <"LT"> } )>, <"UnaryOperator" : ( { "pointer" : 107, "source_range" : ( { "column" : 26 }, { "column" : 27 } ) }, [ <"DeclRefExpr" : ( { "pointer" : 108, "source_range" : ( { "column" : 26 }, { "column" : 26 } ) }, [ ], { "qual_type" : { "type_ptr" : 37 }, "value_kind" : <"LValue"> }, { "decl_ref" : { "kind" : <"Var">, "decl_pointer" : 101, "name" : { "name" : "i", "qual_name" : [ "i" ] }, "qual_type" : { "type_ptr" : 37 } } } )> ], { "qual_type" : { "type_ptr" : 37 } }, { "kind" : <"PostInc">, "is_postfix" : true } )>, <"CompoundStmt" : ( { "pointer" : 109, "source_range" : ( { "column" : 31 }, { "line" : 27, "column" : 3 } ) }, [ <"ObjCAutoreleasePoolStmt" : ( { "pointer" : 110, "source_range" : ( { "line" : 24, "column" : 5 }, { "line" : 26, "column" : 5 } ) }, [ <"CompoundStmt" : ( { "pointer" : 111, "source_range" : ( { "line" : 24, "column" : 22 }, { "line" : 26, "column" : 5 } ) }, [ <"ExprWithCleanups" : ( { "pointer" : 112, "source_range" : ( { "line" : 25, "column" : 7 }, { "column" : 25 } ) }, [ <"ObjCMessageExpr" : ( { "pointer" : 113, "source_range" : ( { "column" : 7 }, { "column" : 25 } ) }, [ <"ImplicitCastExpr" : ( { "pointer" : 114, "source_range" : ( { "column" : 8 }, { "column" : 18 } ) }, [ <"ObjCMessageExpr" : ( { "pointer" : 115, "source_range" : ( { "column" : 8 }, { "column" : 18 } ) }, [ ], { "qual_type" : { "type_ptr" : 73 } }, { "selector" : "new", "decl_pointer" : 22, "receiver_kind" : <"Class" : { "type_ptr" : 116 }> } )> ], { "qual_type" : { "type_ptr" : 73 } }, { "cast_kind" : <"ARCConsumeObject">, "base_path" : [ ] } )>, <"ImplicitCastExpr" : ( { "pointer" : 117, "source_range" : ( { "column" : 24 }, { "column" : 24 } ) }, [ <"DeclRefExpr" : ( { "pointer" : 118, "source_range" : ( { "column" : 24 }, { "column" : 24 } ) }, [ ], { "qual_type" : { "type_ptr" : 37 }, "value_kind" : <"LValue"> }, { "decl_ref" : { "kind" : <"Var">, "decl_pointer" : 101, "name" : { "name" : "i", "qual_name" : [ "i" ] }, "qual_type" : { "type_ptr" : 37 } } } )> ], { "qual_type" : { "type_ptr" : 37 } }, { "cast_kind" : <"LValueToRValue">, "base_path" : [ ] } )> ], { "qual_type" : { "type_ptr" : 67 } }, { "selector" : "say:", "is_definition_found" : true, "decl_pointer" : 70 } )> ], { "qual_type" : { "type_ptr" : 67 } }, { } )> ] )> ] )> ] )> ] )>, <"ReturnStmt" : ( { "pointer" : 119, "source_range" : ( { "line" : 28, "column" : 3 }, { "column" : 10 } ) }, [ <"IntegerLiteral" : ( { "pointer" : 120, "source_range" : ( { "column" : 10 }, { "column" : 10 } ) }, [ ], { "qual_type" : { "type_ptr" : 37 } }, { "is_signed" : true, "bitwidth" : 32, "value" : "0" } )> ] )> ] )> } )>, <"TypedefDecl" : ( { "pointer" : 121, "source_range" : ( { }, { } ), "is_implicit" : true }, { "name" : "instancetype", "qual_name" : [ "instancetype" ] }, 21, { } )> ], { }, { "input_path" : "tests/Hello.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" : 67 }, <"Void"> )>, <"BuiltinType" : ( { "pointer" : 122 }, <"Bool"> )>, <"BuiltinType" : ( { "pointer" : 123 }, <"Char_S"> )>, <"BuiltinType" : ( { "pointer" : 124 }, <"SChar"> )>, <"BuiltinType" : ( { "pointer" : 125 }, <"Short"> )>, <"BuiltinType" : ( { "pointer" : 37 }, <"Int"> )>, <"BuiltinType" : ( { "pointer" : 126 }, <"Long"> )>, <"BuiltinType" : ( { "pointer" : 127 }, <"LongLong"> )>, <"BuiltinType" : ( { "pointer" : 128 }, <"UChar"> )>, <"BuiltinType" : ( { "pointer" : 129 }, <"UShort"> )>, <"BuiltinType" : ( { "pointer" : 53 }, <"UInt"> )>, <"BuiltinType" : ( { "pointer" : 130 }, <"ULong"> )>, <"BuiltinType" : ( { "pointer" : 131 }, <"ULongLong"> )>, <"BuiltinType" : ( { "pointer" : 132 }, <"Float"> )>, <"BuiltinType" : ( { "pointer" : 133 }, <"Double"> )>, <"BuiltinType" : ( { "pointer" : 134 }, <"LongDouble"> )>, <"BuiltinType" : ( { "pointer" : 135 }, <"Float128"> )>, <"BuiltinType" : ( { "pointer" : 136 }, <"Float16"> )>, <"BuiltinType" : ( { "pointer" : 137 }, <"ShortAccum"> )>, <"BuiltinType" : ( { "pointer" : 138 }, <"Accum"> )>, <"BuiltinType" : ( { "pointer" : 139 }, <"LongAccum"> )>, <"BuiltinType" : ( { "pointer" : 140 }, <"UShortAccum"> )>, <"BuiltinType" : ( { "pointer" : 141 }, <"UAccum"> )>, <"BuiltinType" : ( { "pointer" : 142 }, <"ULongAccum"> )>, <"BuiltinType" : ( { "pointer" : 143 }, <"ShortFract"> )>, <"BuiltinType" : ( { "pointer" : 144 }, <"Fract"> )>, <"BuiltinType" : ( { "pointer" : 145 }, <"LongFract"> )>, <"BuiltinType" : ( { "pointer" : 146 }, <"UShortFract"> )>, <"BuiltinType" : ( { "pointer" : 147 }, <"UFract"> )>, <"BuiltinType" : ( { "pointer" : 148 }, <"ULongFract"> )>, <"BuiltinType" : ( { "pointer" : 149 }, <"SatShortAccum"> )>, <"BuiltinType" : ( { "pointer" : 150 }, <"SatAccum"> )>, <"BuiltinType" : ( { "pointer" : 151 }, <"SatLongAccum"> )>, <"BuiltinType" : ( { "pointer" : 152 }, <"SatUShortAccum"> )>, <"BuiltinType" : ( { "pointer" : 153 }, <"SatUAccum"> )>, <"BuiltinType" : ( { "pointer" : 154 }, <"SatULongAccum"> )>, <"BuiltinType" : ( { "pointer" : 155 }, <"SatShortFract"> )>, <"BuiltinType" : ( { "pointer" : 156 }, <"SatFract"> )>, <"BuiltinType" : ( { "pointer" : 157 }, <"SatLongFract"> )>, <"BuiltinType" : ( { "pointer" : 158 }, <"SatUShortFract"> )>, <"BuiltinType" : ( { "pointer" : 159 }, <"SatUFract"> )>, <"BuiltinType" : ( { "pointer" : 160 }, <"SatULongFract"> )>, <"BuiltinType" : ( { "pointer" : 161 }, <"Int128"> )>, <"BuiltinType" : ( { "pointer" : 162 }, <"UInt128"> )>, <"BuiltinType" : ( { "pointer" : 163 }, <"WChar_S"> )>, <"BuiltinType" : ( { "pointer" : 164 }, <"Char8"> )>, <"BuiltinType" : ( { "pointer" : 165 }, <"Dependent"> )>, <"BuiltinType" : ( { "pointer" : 166 }, <"Overload"> )>, <"BuiltinType" : ( { "pointer" : 167 }, <"BoundMember"> )>, <"BuiltinType" : ( { "pointer" : 168 }, <"PseudoObject"> )>, <"BuiltinType" : ( { "pointer" : 169 }, <"UnknownAny"> )>, <"BuiltinType" : ( { "pointer" : 170 }, <"ARCUnbridgedCast"> )>, <"BuiltinType" : ( { "pointer" : 171 }, <"BuiltinFn"> )>, <"ComplexType" : ( { "pointer" : 172 } )>, <"ComplexType" : ( { "pointer" : 173 } )>, <"ComplexType" : ( { "pointer" : 174 } )>, <"ComplexType" : ( { "pointer" : 175 } )>, <"BuiltinType" : ( { "pointer" : 176 }, <"ObjCId"> )>, <"BuiltinType" : ( { "pointer" : 177 }, <"ObjCClass"> )>, <"BuiltinType" : ( { "pointer" : 178 }, <"ObjCSel"> )>, <"PointerType" : ( { "pointer" : 179 }, { "type_ptr" : 67 } )>, <"BuiltinType" : ( { "pointer" : 180 }, <"NullPtr"> )>, <"BuiltinType" : ( { "pointer" : 181 }, <"Half"> )>, <"PointerType" : ( { "pointer" : 182 }, { "type_ptr" : 178 } )>, <"ObjCObjectType" : ( { "pointer" : 183 }, { "base_type" : 176 } )>, <"ObjCObjectPointerType" : ( { "pointer" : 184 }, { "type_ptr" : 183 } )>, <"ObjCObjectType" : ( { "pointer" : 185 }, { "base_type" : 177 } )>, <"ObjCObjectPointerType" : ( { "pointer" : 186 }, { "type_ptr" : 185 } )>, <"ObjCInterfaceType" : ( { "pointer" : 187 }, 10 )>, <"RecordType" : ( { "pointer" : 188 }, 189 )>, <"PointerType" : ( { "pointer" : 190 }, { "type_ptr" : 37, "is_const" : true } )>, <"PointerType" : ( { "pointer" : 191 }, { "type_ptr" : 123, "is_const" : true } )>, <"PointerType" : ( { "pointer" : 192 }, { "type_ptr" : 123 } )>, <"RecordType" : ( { "pointer" : 193 }, 194 )>, <"ConstantArrayType" : ( { "pointer" : 195 }, { "element_type" : { "type_ptr" : 193 }, "stride" : 24 }, 1 )>, <"ObjCInterfaceType" : ( { "pointer" : 196 }, 18 )>, <"TypedefType" : ( { "pointer" : 7, "desugared_type" : 184 }, { "child_type" : { "type_ptr" : 184 }, "decl_ptr" : 6 } )>, <"TypedefType" : ( { "pointer" : 21, "desugared_type" : 184 }, { "child_type" : { "type_ptr" : 7 }, "decl_ptr" : 121 } )>, <"TypedefType" : ( { "pointer" : 9, "desugared_type" : 186 }, { "child_type" : { "type_ptr" : 186 }, "decl_ptr" : 8 } )>, <"TypedefType" : ( { "pointer" : 15, "desugared_type" : 37 }, { "child_type" : { "type_ptr" : 37 }, "decl_ptr" : 14 } )>, <"TypedefType" : ( { "pointer" : 5, "desugared_type" : 182 }, { "child_type" : { "type_ptr" : 182 }, "decl_ptr" : 4 } )>, <"ObjCObjectPointerType" : ( { "pointer" : 33 }, { "type_ptr" : 187 } )>, <"ObjCInterfaceType" : ( { "pointer" : 197 }, 34 )>, <"ObjCInterfaceType" : ( { "pointer" : 198 }, 38 )>, <"TypedefType" : ( { "pointer" : 17, "desugared_type" : 53 }, { "child_type" : { "type_ptr" : 53 }, "decl_ptr" : 16 } )>, <"ObjCInterfaceType" : ( { "pointer" : 199 }, 40 )>, <"IncompleteArrayType" : ( { "pointer" : 200 }, { "element_type" : { "type_ptr" : 184 }, "stride" : 8 } )>, <"IncompleteArrayType" : ( { "pointer" : 201 }, { "element_type" : { "type_ptr" : 7, "is_const" : true }, "stride" : 8 } )>, <"IncompleteArrayType" : ( { "pointer" : 202 }, { "element_type" : { "type_ptr" : 7, "is_const" : true }, "stride" : 8 } )>, <"PointerType" : ( { "pointer" : 203 }, { "type_ptr" : 184, "is_const" : true } )>, <"PointerType" : ( { "pointer" : 204 }, { "type_ptr" : 7, "is_const" : true } )>, <"DecayedType" : ( { "pointer" : 43, "desugared_type" : 204 }, { "type_ptr" : 204 } )>, <"ObjCInterfaceType" : ( { "pointer" : 205 }, 48 )>, <"PointerType" : ( { "pointer" : 206 }, { "type_ptr" : 184 } )>, <"PointerType" : ( { "pointer" : 51 }, { "type_ptr" : 7 } )>, <"ObjCInterfaceType" : ( { "pointer" : 207 }, 56 )>, <"ObjCObjectPointerType" : ( { "pointer" : 64 }, { "type_ptr" : 198 } )>, <"FunctionProtoType" : ( { "pointer" : 208 }, { "return_type" : { "type_ptr" : 67 } }, { "params_type" : [ { "type_ptr" : 64 } ] } )>, <"FunctionProtoType" : ( { "pointer" : 209 }, { "return_type" : { "type_ptr" : 67 } }, { "params_type" : [ { "type_ptr" : 64 } ] } )>, <"FunctionProtoType" : ( { "pointer" : 210 }, { "return_type" : { "type_ptr" : 67 } }, { "params_type" : [ { "type_ptr" : 184 } ] } )>, <"FunctionProtoType" : ( { "pointer" : 59 }, { "return_type" : { "type_ptr" : 67 } }, { "params_type" : [ { "type_ptr" : 7 } ] } )>, <"ObjCInterfaceType" : ( { "pointer" : 116 }, 65 )>, <"ObjCObjectPointerType" : ( { "pointer" : 73 }, { "type_ptr" : 116 } )>, <"ConstantArrayType" : ( { "pointer" : 89 }, { "element_type" : { "type_ptr" : 123 }, "stride" : 1 }, 19 )>, <"PointerType" : ( { "pointer" : 211 }, { "type_ptr" : 210 } )>, <"PointerType" : ( { "pointer" : 85 }, { "type_ptr" : 59 } )>, <"IncompleteArrayType" : ( { "pointer" : 212 }, { "element_type" : { "type_ptr" : 192 }, "stride" : 8 } )>, <"PointerType" : ( { "pointer" : 213 }, { "type_ptr" : 192 } )>, <"DecayedType" : ( { "pointer" : 96, "desugared_type" : 213 }, { "type_ptr" : 213 } )>, <"FunctionProtoType" : ( { "pointer" : 214 }, { "return_type" : { "type_ptr" : 37 } }, { "params_type" : [ { "type_ptr" : 37 }, { "type_ptr" : 213 } ] } )>, <"FunctionProtoType" : ( { "pointer" : 93 }, { "return_type" : { "type_ptr" : 37 } }, { "params_type" : [ { "type_ptr" : 37 }, { "type_ptr" : 96 } ] } )>, <"NoneType" : ( { "pointer" : 0 } )> ] } )>