["TranslationUnitDecl" , [ { "pointer" : 1, "source_range" : [ { }, { } ] }, [ ["TypedefDecl" , [ { "pointer" : 2, "source_range" : [ { }, { } ], "is_implicit" : true }, { "name" : "__int128_t", "qual_name" : [ "__int128_t" ] }, 0, { } ]], ["TypedefDecl" , [ { "pointer" : 3, "source_range" : [ { }, { } ], "is_implicit" : true }, { "name" : "__uint128_t", "qual_name" : [ "__uint128_t" ] }, 0, { } ]], ["TypedefDecl" , [ { "pointer" : 4, "source_range" : [ { }, { } ], "is_implicit" : true }, { "name" : "__NSConstantString", "qual_name" : [ "__NSConstantString" ] }, 0, { } ]], ["TypedefDecl" , [ { "pointer" : 5, "source_range" : [ { }, { } ], "is_implicit" : true }, { "name" : "__builtin_ms_va_list", "qual_name" : [ "__builtin_ms_va_list" ] }, 0, { } ]], ["TypedefDecl" , [ { "pointer" : 6, "source_range" : [ { }, { } ], "is_implicit" : true }, { "name" : "__builtin_va_list", "qual_name" : [ "__builtin_va_list" ] }, 0, { } ]], ["ClassTemplateDecl" , [ { "pointer" : 7, "source_range" : [ { "file" : "tests/template_instantiations.cpp", "line" : 7, "column" : 1 }, { "line" : 8, "column" : 15 } ] }, { "name" : "Tuple", "qual_name" : [ "Tuple" ] }, { "specializations" : [ ["ClassTemplateSpecializationDecl" , [ { "pointer" : 8, "parent_pointer" : 1, "source_range" : [ { "line" : 7, "column" : 1 }, { "line" : 8, "column" : 15 } ] }, { "name" : "Tuple", "qual_name" : [ "Tuple" ] }, 9, [ ], { }, "TTK_Struct", { "definition_ptr" : 0 }, { }, "", { "template_decl" : 7, "specialization_args" : [ ["Pack" , [ ["Type" , { "type_ptr" : 10 }] ]] ] } ]], ["ClassTemplateSpecializationDecl" , [ { "pointer" : 11, "parent_pointer" : 1, "source_range" : [ { "line" : 7, "column" : 1 }, { "line" : 8, "column" : 15 } ] }, { "name" : "Tuple", "qual_name" : [ "Tuple >" ] }, 12, [ ["CXXRecordDecl" , [ { "pointer" : 13, "parent_pointer" : 11, "source_range" : [ { "column" : 1 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "Tuple", "qual_name" : [ "Tuple", "Tuple >" ] }, 12, [ ], { }, "TTK_Struct", { "definition_ptr" : 11 }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 14, "parent_pointer" : 11, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "is_used" : true, "is_this_declaration_referenced" : true, "access" : "Public" }, { "name" : "Tuple", "qual_name" : [ "Tuple", "Tuple >" ] }, { "type_ptr" : 15 }, { "mangled_name" : "15507823120941368224", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "decl_ptr_with_body" : 14, "body" : ["CompoundStmt" , [ { "pointer" : 16, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, [ ] ]] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 17, "parent_pointer" : 11, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "Tuple", "qual_name" : [ "Tuple", "Tuple >" ] }, { "type_ptr" : 18 }, { "mangled_name" : "651618469270041090", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 19, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 20 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 21, "parent_pointer" : 11, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "Tuple", "qual_name" : [ "Tuple", "Tuple >" ] }, { "type_ptr" : 22 }, { "mangled_name" : "14649822005097330172", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 23, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 24 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]] ], { }, "TTK_Struct", { "definition_ptr" : 11, "is_complete_definition" : true }, { "is_pod" : true }, "", { "template_decl" : 7, "specialization_args" : [ ["Pack" , [ ["Type" , { "type_ptr" : 9 }] ]] ] } ]] ] } ]], ["VarDecl" , [ { "pointer" : 25, "source_range" : [ { "line" : 10, "column" : 1 }, { "column" : 19 } ] }, { "name" : "x", "qual_name" : [ "x" ] }, { "type_ptr" : 26 }, { "is_global" : true, "init_expr" : ["CXXConstructExpr" , [ { "pointer" : 27, "source_range" : [ { "column" : 19 }, { "column" : 19 } ] }, [ ], { "qual_type" : { "type_ptr" : 26 } }, { "decl_ref" : { "kind" : "CXXConstructor", "decl_pointer" : 14, "name" : { "name" : "Tuple", "qual_name" : [ "Tuple", "Tuple >" ] }, "qual_type" : { "type_ptr" : 15 } } } ]] } ]], ["TypedefDecl" , [ { "pointer" : 28, "source_range" : [ { "line" : 12, "column" : 1 }, { "column" : 27 } ], "is_this_declaration_referenced" : true }, { "name" : "nullptr_t", "qual_name" : [ "nullptr_t" ] }, 29, { } ]], ["ClassTemplateDecl" , [ { "pointer" : 30, "source_range" : [ { "line" : 13, "column" : 1 }, { "line" : 14, "column" : 25 } ] }, { "name" : "NullPtrTemplate", "qual_name" : [ "NullPtrTemplate" ] }, { "specializations" : [ ["ClassTemplateSpecializationDecl" , [ { "pointer" : 31, "parent_pointer" : 1, "source_range" : [ { "line" : 13, "column" : 1 }, { "line" : 14, "column" : 25 } ] }, { "name" : "NullPtrTemplate", "qual_name" : [ "NullPtrTemplate" ] }, 32, [ ["CXXRecordDecl" , [ { "pointer" : 33, "parent_pointer" : 31, "source_range" : [ { "column" : 1 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "NullPtrTemplate", "qual_name" : [ "NullPtrTemplate", "NullPtrTemplate" ] }, 32, [ ], { }, "TTK_Struct", { "definition_ptr" : 31 }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 34, "parent_pointer" : 31, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "is_used" : true, "is_this_declaration_referenced" : true, "access" : "Public" }, { "name" : "NullPtrTemplate", "qual_name" : [ "NullPtrTemplate", "NullPtrTemplate" ] }, { "type_ptr" : 15 }, { "mangled_name" : "9282946488688737892", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "decl_ptr_with_body" : 34, "body" : ["CompoundStmt" , [ { "pointer" : 35, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, [ ] ]] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 36, "parent_pointer" : 31, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "NullPtrTemplate", "qual_name" : [ "NullPtrTemplate", "NullPtrTemplate" ] }, { "type_ptr" : 37 }, { "mangled_name" : "4835163870722214719", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 38, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 39 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 40, "parent_pointer" : 31, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "NullPtrTemplate", "qual_name" : [ "NullPtrTemplate", "NullPtrTemplate" ] }, { "type_ptr" : 41 }, { "mangled_name" : "14658047667100730153", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 42, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 43 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]] ], { }, "TTK_Struct", { "definition_ptr" : 31, "is_complete_definition" : true }, { "is_pod" : true }, "", { "template_decl" : 30, "specialization_args" : [ "NullPtr" ] } ]] ] } ]], ["VarDecl" , [ { "pointer" : 44, "source_range" : [ { "line" : 16, "column" : 1 }, { "column" : 26 } ] }, { "name" : "x1", "qual_name" : [ "x1" ] }, { "type_ptr" : 45 }, { "is_global" : true, "init_expr" : ["CXXConstructExpr" , [ { "pointer" : 46, "source_range" : [ { "column" : 26 }, { "column" : 26 } ] }, [ ], { "qual_type" : { "type_ptr" : 45 } }, { "decl_ref" : { "kind" : "CXXConstructor", "decl_pointer" : 34, "name" : { "name" : "NullPtrTemplate", "qual_name" : [ "NullPtrTemplate", "NullPtrTemplate" ] }, "qual_type" : { "type_ptr" : 15 } } } ]] } ]], ["ClassTemplateDecl" , [ { "pointer" : 47, "source_range" : [ { "line" : 18, "column" : 1 }, { "line" : 19, "column" : 21 } ] }, { "name" : "IntTemplate", "qual_name" : [ "IntTemplate" ] }, { "specializations" : [ ["ClassTemplateSpecializationDecl" , [ { "pointer" : 48, "parent_pointer" : 1, "source_range" : [ { "line" : 18, "column" : 1 }, { "line" : 19, "column" : 21 } ] }, { "name" : "IntTemplate", "qual_name" : [ "IntTemplate<0>" ] }, 49, [ ["CXXRecordDecl" , [ { "pointer" : 50, "parent_pointer" : 48, "source_range" : [ { "column" : 1 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "IntTemplate", "qual_name" : [ "IntTemplate", "IntTemplate<0>" ] }, 49, [ ], { }, "TTK_Struct", { "definition_ptr" : 48 }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 51, "parent_pointer" : 48, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "is_used" : true, "is_this_declaration_referenced" : true, "access" : "Public" }, { "name" : "IntTemplate", "qual_name" : [ "IntTemplate", "IntTemplate<0>" ] }, { "type_ptr" : 15 }, { "mangled_name" : "18054455536952808167", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "decl_ptr_with_body" : 51, "body" : ["CompoundStmt" , [ { "pointer" : 52, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, [ ] ]] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 53, "parent_pointer" : 48, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "IntTemplate", "qual_name" : [ "IntTemplate", "IntTemplate<0>" ] }, { "type_ptr" : 54 }, { "mangled_name" : "12602934757794480668", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 55, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 56 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 57, "parent_pointer" : 48, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "IntTemplate", "qual_name" : [ "IntTemplate", "IntTemplate<0>" ] }, { "type_ptr" : 58 }, { "mangled_name" : "3579925925305368200", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 59, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 60 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]] ], { }, "TTK_Struct", { "definition_ptr" : 48, "is_complete_definition" : true }, { "is_pod" : true }, "", { "template_decl" : 47, "specialization_args" : [ ["Integral" , "0"] ] } ]] ] } ]], ["ClassTemplateDecl" , [ { "pointer" : 61, "source_range" : [ { "line" : 21, "column" : 1 }, { "line" : 22, "column" : 22 } ] }, { "name" : "CharTemplate", "qual_name" : [ "CharTemplate" ] }, { "specializations" : [ ["ClassTemplateSpecializationDecl" , [ { "pointer" : 62, "parent_pointer" : 1, "source_range" : [ { "line" : 21, "column" : 1 }, { "line" : 22, "column" : 22 } ] }, { "name" : "CharTemplate", "qual_name" : [ "CharTemplate<'c'>" ] }, 63, [ ["CXXRecordDecl" , [ { "pointer" : 64, "parent_pointer" : 62, "source_range" : [ { "column" : 1 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "CharTemplate", "qual_name" : [ "CharTemplate", "CharTemplate<'c'>" ] }, 63, [ ], { }, "TTK_Struct", { "definition_ptr" : 62 }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 65, "parent_pointer" : 62, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "is_used" : true, "is_this_declaration_referenced" : true, "access" : "Public" }, { "name" : "CharTemplate", "qual_name" : [ "CharTemplate", "CharTemplate<'c'>" ] }, { "type_ptr" : 15 }, { "mangled_name" : "16721342488904302213", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "decl_ptr_with_body" : 65, "body" : ["CompoundStmt" , [ { "pointer" : 66, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, [ ] ]] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 67, "parent_pointer" : 62, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "CharTemplate", "qual_name" : [ "CharTemplate", "CharTemplate<'c'>" ] }, { "type_ptr" : 68 }, { "mangled_name" : "6201193260347400774", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 69, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 70 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 71, "parent_pointer" : 62, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "CharTemplate", "qual_name" : [ "CharTemplate", "CharTemplate<'c'>" ] }, { "type_ptr" : 72 }, { "mangled_name" : "17328475686832768154", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 73, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 74 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]] ], { }, "TTK_Struct", { "definition_ptr" : 62, "is_complete_definition" : true }, { "is_pod" : true }, "", { "template_decl" : 61, "specialization_args" : [ ["Integral" , "99"] ] } ]] ] } ]], ["ClassTemplateDecl" , [ { "pointer" : 75, "source_range" : [ { "line" : 23, "column" : 1 }, { "line" : 24, "column" : 22 } ] }, { "name" : "LongTemplate", "qual_name" : [ "LongTemplate" ] }, { "specializations" : [ ["ClassTemplateSpecializationDecl" , [ { "pointer" : 76, "parent_pointer" : 1, "source_range" : [ { "line" : 23, "column" : 1 }, { "line" : 24, "column" : 22 } ] }, { "name" : "LongTemplate", "qual_name" : [ "LongTemplate<78187493520>" ] }, 77, [ ["CXXRecordDecl" , [ { "pointer" : 78, "parent_pointer" : 76, "source_range" : [ { "column" : 1 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "LongTemplate", "qual_name" : [ "LongTemplate", "LongTemplate<78187493520>" ] }, 77, [ ], { }, "TTK_Struct", { "definition_ptr" : 76 }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 79, "parent_pointer" : 76, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "is_used" : true, "is_this_declaration_referenced" : true, "access" : "Public" }, { "name" : "LongTemplate", "qual_name" : [ "LongTemplate", "LongTemplate<78187493520>" ] }, { "type_ptr" : 15 }, { "mangled_name" : "17996233516732688870", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "decl_ptr_with_body" : 79, "body" : ["CompoundStmt" , [ { "pointer" : 80, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, [ ] ]] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 81, "parent_pointer" : 76, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "LongTemplate", "qual_name" : [ "LongTemplate", "LongTemplate<78187493520>" ] }, { "type_ptr" : 82 }, { "mangled_name" : "8170411964911509925", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 83, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 84 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 85, "parent_pointer" : 76, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "LongTemplate", "qual_name" : [ "LongTemplate", "LongTemplate<78187493520>" ] }, { "type_ptr" : 86 }, { "mangled_name" : "16625409861663294039", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 87, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 88 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]] ], { }, "TTK_Struct", { "definition_ptr" : 76, "is_complete_definition" : true }, { "is_pod" : true }, "", { "template_decl" : 75, "specialization_args" : [ ["Integral" , "78187493520"] ] } ]] ] } ]], ["VarDecl" , [ { "pointer" : 89, "source_range" : [ { "line" : 26, "column" : 1 }, { "column" : 16 } ] }, { "name" : "x2", "qual_name" : [ "x2" ] }, { "type_ptr" : 90 }, { "is_global" : true, "init_expr" : ["CXXConstructExpr" , [ { "pointer" : 91, "source_range" : [ { "column" : 16 }, { "column" : 16 } ] }, [ ], { "qual_type" : { "type_ptr" : 90 } }, { "decl_ref" : { "kind" : "CXXConstructor", "decl_pointer" : 51, "name" : { "name" : "IntTemplate", "qual_name" : [ "IntTemplate", "IntTemplate<0>" ] }, "qual_type" : { "type_ptr" : 15 } } } ]] } ]], ["VarDecl" , [ { "pointer" : 92, "source_range" : [ { "line" : 27, "column" : 1 }, { "column" : 19 } ] }, { "name" : "x3", "qual_name" : [ "x3" ] }, { "type_ptr" : 93 }, { "is_global" : true, "init_expr" : ["CXXConstructExpr" , [ { "pointer" : 94, "source_range" : [ { "column" : 19 }, { "column" : 19 } ] }, [ ], { "qual_type" : { "type_ptr" : 93 } }, { "decl_ref" : { "kind" : "CXXConstructor", "decl_pointer" : 65, "name" : { "name" : "CharTemplate", "qual_name" : [ "CharTemplate", "CharTemplate<'c'>" ] }, "qual_type" : { "type_ptr" : 15 } } } ]] } ]], ["VarDecl" , [ { "pointer" : 95, "source_range" : [ { "line" : 28, "column" : 1 }, { "column" : 29 } ] }, { "name" : "x4", "qual_name" : [ "x4" ] }, { "type_ptr" : 96 }, { "is_global" : true, "init_expr" : ["CXXConstructExpr" , [ { "pointer" : 97, "source_range" : [ { "column" : 29 }, { "column" : 29 } ] }, [ ], { "qual_type" : { "type_ptr" : 96 } }, { "decl_ref" : { "kind" : "CXXConstructor", "decl_pointer" : 79, "name" : { "name" : "LongTemplate", "qual_name" : [ "LongTemplate", "LongTemplate<78187493520>" ] }, "qual_type" : { "type_ptr" : 15 } } } ]] } ]], ["ClassTemplateDecl" , [ { "pointer" : 98, "source_range" : [ { "line" : 30, "column" : 1 }, { "line" : 31, "column" : 11 } ] }, { "name" : "X", "qual_name" : [ "X" ] }, { "specializations" : [ ["ClassTemplateSpecializationDecl" , [ { "pointer" : 99, "parent_pointer" : 1, "source_range" : [ { "line" : 30, "column" : 1 }, { "line" : 31, "column" : 11 } ] }, { "name" : "X", "qual_name" : [ "X<&x5>" ] }, 100, [ ["CXXRecordDecl" , [ { "pointer" : 101, "parent_pointer" : 99, "source_range" : [ { "column" : 1 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "X", "qual_name" : [ "X", "X<&x5>" ] }, 100, [ ], { }, "TTK_Struct", { "definition_ptr" : 99 }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 102, "parent_pointer" : 99, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "is_used" : true, "is_this_declaration_referenced" : true, "access" : "Public" }, { "name" : "X", "qual_name" : [ "X", "X<&x5>" ] }, { "type_ptr" : 15 }, { "mangled_name" : "7942647797612205972", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "decl_ptr_with_body" : 102, "body" : ["CompoundStmt" , [ { "pointer" : 103, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, [ ] ]] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 104, "parent_pointer" : 99, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "X", "qual_name" : [ "X", "X<&x5>" ] }, { "type_ptr" : 105 }, { "mangled_name" : "13792914784228561871", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 106, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 107 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 108, "parent_pointer" : 99, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "X", "qual_name" : [ "X", "X<&x5>" ] }, { "type_ptr" : 109 }, { "mangled_name" : "6395019852822673209", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 110, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 111 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]] ], { }, "TTK_Struct", { "definition_ptr" : 99, "is_complete_definition" : true }, { "is_pod" : true }, "", { "template_decl" : 98, "specialization_args" : [ ["Declaration" , 112] ] } ]] ] } ]], ["VarDecl" , [ { "pointer" : 112, "source_range" : [ { "line" : 32, "column" : 1 }, { "column" : 10 } ], "is_used" : true, "is_this_declaration_referenced" : true }, { "name" : "x5", "qual_name" : [ "x5" ] }, { "type_ptr" : 113 }, { "is_global" : true } ]], ["CXXRecordDecl" , [ { "pointer" : 114, "parent_pointer" : 1, "source_range" : [ { "line" : 34, "column" : 1 }, { "column" : 11 } ], "is_this_declaration_referenced" : true }, { "name" : "Y", "qual_name" : [ "Y" ] }, 115, [ ["CXXRecordDecl" , [ { "pointer" : 116, "parent_pointer" : 114, "source_range" : [ { "column" : 1 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "Y", "qual_name" : [ "Y", "Y" ] }, 115, [ ], { }, "TTK_Struct", { "definition_ptr" : 0 }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 117, "parent_pointer" : 114, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "is_used" : true, "is_this_declaration_referenced" : true, "access" : "Public" }, { "name" : "Y", "qual_name" : [ "Y", "Y" ] }, { "type_ptr" : 15 }, { "mangled_name" : "16769433076588921314", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "decl_ptr_with_body" : 117, "body" : ["CompoundStmt" , [ { "pointer" : 118, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, [ ] ]] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 119, "parent_pointer" : 114, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "Y", "qual_name" : [ "Y", "Y" ] }, { "type_ptr" : 120 }, { "mangled_name" : "18119742553314115417", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 121, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 122 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 123, "parent_pointer" : 114, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "Y", "qual_name" : [ "Y", "Y" ] }, { "type_ptr" : 124 }, { "mangled_name" : "14901405322990444079", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 125, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 126 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]] ], { }, "TTK_Struct", { "definition_ptr" : 114, "is_complete_definition" : true }, { "is_pod" : true } ]], ["ClassTemplateDecl" , [ { "pointer" : 127, "source_range" : [ { "line" : 35, "column" : 1 }, { "line" : 36, "column" : 11 } ] }, { "name" : "Z", "qual_name" : [ "Z" ] }, { "specializations" : [ ["ClassTemplateSpecializationDecl" , [ { "pointer" : 128, "parent_pointer" : 1, "source_range" : [ { "line" : 35, "column" : 1 }, { "line" : 36, "column" : 11 } ] }, { "name" : "Z", "qual_name" : [ "Z" ] }, 129, [ ["CXXRecordDecl" , [ { "pointer" : 130, "parent_pointer" : 128, "source_range" : [ { "column" : 1 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "Z", "qual_name" : [ "Z", "Z" ] }, 129, [ ], { }, "TTK_Struct", { "definition_ptr" : 128 }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 131, "parent_pointer" : 128, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "is_used" : true, "is_this_declaration_referenced" : true, "access" : "Public" }, { "name" : "Z", "qual_name" : [ "Z", "Z" ] }, { "type_ptr" : 15 }, { "mangled_name" : "499240077376103735", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "decl_ptr_with_body" : 131, "body" : ["CompoundStmt" , [ { "pointer" : 132, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, [ ] ]] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 133, "parent_pointer" : 128, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "Z", "qual_name" : [ "Z", "Z" ] }, { "type_ptr" : 134 }, { "mangled_name" : "17768891565958800780", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 135, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 136 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 137, "parent_pointer" : 128, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "Z", "qual_name" : [ "Z", "Z" ] }, { "type_ptr" : 138 }, { "mangled_name" : "5257127409284049912", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 139, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 140 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]] ], { }, "TTK_Struct", { "definition_ptr" : 128, "is_complete_definition" : true }, { "is_pod" : true }, "", { "template_decl" : 127, "specialization_args" : [ ["Declaration" , 141] ] } ]] ] } ]], ["VarDecl" , [ { "pointer" : 141, "source_range" : [ { "line" : 37, "column" : 1 }, { "column" : 3 } ], "is_used" : true, "is_this_declaration_referenced" : true }, { "name" : "y", "qual_name" : [ "y" ] }, { "type_ptr" : 115 }, { "is_global" : true, "init_expr" : ["CXXConstructExpr" , [ { "pointer" : 142, "source_range" : [ { "column" : 3 }, { "column" : 3 } ] }, [ ], { "qual_type" : { "type_ptr" : 115 } }, { "decl_ref" : { "kind" : "CXXConstructor", "decl_pointer" : 117, "name" : { "name" : "Y", "qual_name" : [ "Y", "Y" ] }, "qual_type" : { "type_ptr" : 15 } } } ]] } ]], ["ClassTemplateDecl" , [ { "pointer" : 143, "source_range" : [ { "line" : 39, "column" : 1 }, { "line" : 40, "column" : 11 } ] }, { "name" : "W", "qual_name" : [ "W" ] }, { "specializations" : [ ["ClassTemplateSpecializationDecl" , [ { "pointer" : 144, "parent_pointer" : 1, "source_range" : [ { "line" : 39, "column" : 1 }, { "line" : 40, "column" : 11 } ] }, { "name" : "W", "qual_name" : [ "W" ] }, 145, [ ["CXXRecordDecl" , [ { "pointer" : 146, "parent_pointer" : 144, "source_range" : [ { "column" : 1 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "W", "qual_name" : [ "W", "W" ] }, 145, [ ], { }, "TTK_Struct", { "definition_ptr" : 144 }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 147, "parent_pointer" : 144, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "is_used" : true, "is_this_declaration_referenced" : true, "access" : "Public" }, { "name" : "W", "qual_name" : [ "W", "W" ] }, { "type_ptr" : 15 }, { "mangled_name" : "8268180592181082237", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "decl_ptr_with_body" : 147, "body" : ["CompoundStmt" , [ { "pointer" : 148, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, [ ] ]] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 149, "parent_pointer" : 144, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "W", "qual_name" : [ "W", "W" ] }, { "type_ptr" : 150 }, { "mangled_name" : "15184425556926585790", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 151, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 152 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 153, "parent_pointer" : 144, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "W", "qual_name" : [ "W", "W" ] }, { "type_ptr" : 154 }, { "mangled_name" : "2251022854406196514", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 155, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 156 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]] ], { }, "TTK_Struct", { "definition_ptr" : 144, "is_complete_definition" : true }, { "is_pod" : true }, "", { "template_decl" : 143, "specialization_args" : [ ["Declaration" , 157] ] } ]] ] } ]], ["VarDecl" , [ { "pointer" : 157, "source_range" : [ { "line" : 41, "column" : 1 }, { "column" : 8 } ], "is_used" : true, "is_this_declaration_referenced" : true }, { "name" : "b", "qual_name" : [ "b" ] }, { "type_ptr" : 158 }, { "is_global" : true } ]], ["FunctionDecl" , [ { "pointer" : 159, "source_range" : [ { "line" : 43, "column" : 1 }, { "column" : 11 } ], "is_used" : true, "is_this_declaration_referenced" : true }, { "name" : "f", "qual_name" : [ "f" ] }, { "type_ptr" : 160 }, { "mangled_name" : "4928047469659938654", "is_cpp" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 161, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 10 }, { "parm_index_in_function" : 0 } ]] ] } ]], ["ClassTemplateDecl" , [ { "pointer" : 162, "source_range" : [ { "line" : 44, "column" : 1 }, { "line" : 45, "column" : 11 } ] }, { "name" : "A", "qual_name" : [ "A" ] }, { "specializations" : [ ["ClassTemplateSpecializationDecl" , [ { "pointer" : 163, "parent_pointer" : 1, "source_range" : [ { "line" : 44, "column" : 1 }, { "line" : 45, "column" : 11 } ] }, { "name" : "A", "qual_name" : [ "A<&f>" ] }, 164, [ ["CXXRecordDecl" , [ { "pointer" : 165, "parent_pointer" : 163, "source_range" : [ { "column" : 1 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "A", "qual_name" : [ "A", "A<&f>" ] }, 164, [ ], { }, "TTK_Struct", { "definition_ptr" : 163 }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 166, "parent_pointer" : 163, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "is_used" : true, "is_this_declaration_referenced" : true, "access" : "Public" }, { "name" : "A", "qual_name" : [ "A", "A<&f>" ] }, { "type_ptr" : 15 }, { "mangled_name" : "3162969511250741948", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "decl_ptr_with_body" : 166, "body" : ["CompoundStmt" , [ { "pointer" : 167, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, [ ] ]] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 168, "parent_pointer" : 163, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "A", "qual_name" : [ "A", "A<&f>" ] }, { "type_ptr" : 169 }, { "mangled_name" : "943561519717330679", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 170, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 171 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]], ["CXXConstructorDecl" , [ { "pointer" : 172, "parent_pointer" : 163, "source_range" : [ { "column" : 8 }, { "column" : 8 } ], "is_implicit" : true, "access" : "Public" }, { "name" : "A", "qual_name" : [ "A", "A<&f>" ] }, { "type_ptr" : 173 }, { "mangled_name" : "16348915219842036529", "is_cpp" : true, "is_inline" : true, "is_constexpr" : true, "parameters" : [ ["ParmVarDecl" , [ { "pointer" : 174, "source_range" : [ { "column" : 8 }, { "column" : 8 } ] }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 175 }, { "parm_index_in_function" : 0 } ]] ] }, { } ]] ], { }, "TTK_Struct", { "definition_ptr" : 163, "is_complete_definition" : true }, { "is_pod" : true }, "", { "template_decl" : 162, "specialization_args" : [ ["Declaration" , 159] ] } ]] ] } ]], ["VarDecl" , [ { "pointer" : 176, "source_range" : [ { "line" : 47, "column" : 1 }, { "column" : 7 } ] }, { "name" : "xi", "qual_name" : [ "xi" ] }, { "type_ptr" : 177 }, { "is_global" : true, "init_expr" : ["CXXConstructExpr" , [ { "pointer" : 178, "source_range" : [ { "column" : 7 }, { "column" : 7 } ] }, [ ], { "qual_type" : { "type_ptr" : 177 } }, { "decl_ref" : { "kind" : "CXXConstructor", "decl_pointer" : 102, "name" : { "name" : "X", "qual_name" : [ "X", "X<&x5>" ] }, "qual_type" : { "type_ptr" : 15 } } } ]] } ]], ["VarDecl" , [ { "pointer" : 179, "source_range" : [ { "line" : 48, "column" : 1 }, { "column" : 6 } ] }, { "name" : "z", "qual_name" : [ "z" ] }, { "type_ptr" : 180 }, { "is_global" : true, "init_expr" : ["CXXConstructExpr" , [ { "pointer" : 181, "source_range" : [ { "column" : 6 }, { "column" : 6 } ] }, [ ], { "qual_type" : { "type_ptr" : 180 } }, { "decl_ref" : { "kind" : "CXXConstructor", "decl_pointer" : 131, "name" : { "name" : "Z", "qual_name" : [ "Z", "Z" ] }, "qual_type" : { "type_ptr" : 15 } } } ]] } ]], ["VarDecl" , [ { "pointer" : 182, "source_range" : [ { "line" : 49, "column" : 1 }, { "column" : 6 } ] }, { "name" : "w", "qual_name" : [ "w" ] }, { "type_ptr" : 183 }, { "is_global" : true, "init_expr" : ["CXXConstructExpr" , [ { "pointer" : 184, "source_range" : [ { "column" : 6 }, { "column" : 6 } ] }, [ ], { "qual_type" : { "type_ptr" : 183 } }, { "decl_ref" : { "kind" : "CXXConstructor", "decl_pointer" : 147, "name" : { "name" : "W", "qual_name" : [ "W", "W" ] }, "qual_type" : { "type_ptr" : 15 } } } ]] } ]], ["VarDecl" , [ { "pointer" : 185, "source_range" : [ { "line" : 50, "column" : 1 }, { "column" : 7 } ] }, { "name" : "a", "qual_name" : [ "a" ] }, { "type_ptr" : 186 }, { "is_global" : true, "init_expr" : ["CXXConstructExpr" , [ { "pointer" : 187, "source_range" : [ { "column" : 7 }, { "column" : 7 } ] }, [ ], { "qual_type" : { "type_ptr" : 186 } }, { "decl_ref" : { "kind" : "CXXConstructor", "decl_pointer" : 166, "name" : { "name" : "A", "qual_name" : [ "A", "A<&f>" ] }, "qual_type" : { "type_ptr" : 15 } } } ]] } ]], ["TypedefDecl" , [ { "pointer" : 188, "source_range" : [ { }, { } ], "is_implicit" : true }, { "name" : "instancetype", "qual_name" : [ "instancetype" ] }, 189, { } ]] ], { }, { "input_path" : "tests/template_instantiations.cpp", "input_kind" : "IK_CXX", "integer_type_widths" : { "char_type" : 8, "short_type" : 16, "int_type" : 32, "long_type" : 64, "longlong_type" : 64 }, "types" : [ ["BuiltinType" , [ { "pointer" : 190 }, "Void" ]], ["BuiltinType" , [ { "pointer" : 191 }, "Bool" ]], ["BuiltinType" , [ { "pointer" : 192 }, "Char_S" ]], ["BuiltinType" , [ { "pointer" : 193 }, "SChar" ]], ["BuiltinType" , [ { "pointer" : 194 }, "Short" ]], ["BuiltinType" , [ { "pointer" : 10 }, "Int" ]], ["BuiltinType" , [ { "pointer" : 195 }, "Long" ]], ["BuiltinType" , [ { "pointer" : 196 }, "LongLong" ]], ["BuiltinType" , [ { "pointer" : 197 }, "UChar" ]], ["BuiltinType" , [ { "pointer" : 198 }, "UShort" ]], ["BuiltinType" , [ { "pointer" : 199 }, "UInt" ]], ["BuiltinType" , [ { "pointer" : 200 }, "ULong" ]], ["BuiltinType" , [ { "pointer" : 201 }, "ULongLong" ]], ["BuiltinType" , [ { "pointer" : 202 }, "Float" ]], ["BuiltinType" , [ { "pointer" : 203 }, "Double" ]], ["BuiltinType" , [ { "pointer" : 204 }, "LongDouble" ]], ["BuiltinType" , [ { "pointer" : 205 }, "Float128" ]], ["BuiltinType" , [ { "pointer" : 206 }, "Float16" ]], ["BuiltinType" , [ { "pointer" : 207 }, "ShortAccum" ]], ["BuiltinType" , [ { "pointer" : 208 }, "Accum" ]], ["BuiltinType" , [ { "pointer" : 209 }, "LongAccum" ]], ["BuiltinType" , [ { "pointer" : 210 }, "UShortAccum" ]], ["BuiltinType" , [ { "pointer" : 211 }, "UAccum" ]], ["BuiltinType" , [ { "pointer" : 212 }, "ULongAccum" ]], ["BuiltinType" , [ { "pointer" : 213 }, "ShortFract" ]], ["BuiltinType" , [ { "pointer" : 214 }, "Fract" ]], ["BuiltinType" , [ { "pointer" : 215 }, "LongFract" ]], ["BuiltinType" , [ { "pointer" : 216 }, "UShortFract" ]], ["BuiltinType" , [ { "pointer" : 217 }, "UFract" ]], ["BuiltinType" , [ { "pointer" : 218 }, "ULongFract" ]], ["BuiltinType" , [ { "pointer" : 219 }, "SatShortAccum" ]], ["BuiltinType" , [ { "pointer" : 220 }, "SatAccum" ]], ["BuiltinType" , [ { "pointer" : 221 }, "SatLongAccum" ]], ["BuiltinType" , [ { "pointer" : 222 }, "SatUShortAccum" ]], ["BuiltinType" , [ { "pointer" : 223 }, "SatUAccum" ]], ["BuiltinType" , [ { "pointer" : 224 }, "SatULongAccum" ]], ["BuiltinType" , [ { "pointer" : 225 }, "SatShortFract" ]], ["BuiltinType" , [ { "pointer" : 226 }, "SatFract" ]], ["BuiltinType" , [ { "pointer" : 227 }, "SatLongFract" ]], ["BuiltinType" , [ { "pointer" : 228 }, "SatUShortFract" ]], ["BuiltinType" , [ { "pointer" : 229 }, "SatUFract" ]], ["BuiltinType" , [ { "pointer" : 230 }, "SatULongFract" ]], ["BuiltinType" , [ { "pointer" : 231 }, "Int128" ]], ["BuiltinType" , [ { "pointer" : 232 }, "UInt128" ]], ["BuiltinType" , [ { "pointer" : 233 }, "WChar_S" ]], ["BuiltinType" , [ { "pointer" : 234 }, "Char8" ]], ["BuiltinType" , [ { "pointer" : 235 }, "Char16" ]], ["BuiltinType" , [ { "pointer" : 236 }, "Char32" ]], ["BuiltinType" , [ { "pointer" : 237 }, "Dependent" ]], ["BuiltinType" , [ { "pointer" : 238 }, "Overload" ]], ["BuiltinType" , [ { "pointer" : 239 }, "BoundMember" ]], ["BuiltinType" , [ { "pointer" : 240 }, "PseudoObject" ]], ["BuiltinType" , [ { "pointer" : 241 }, "UnknownAny" ]], ["BuiltinType" , [ { "pointer" : 242 }, "ARCUnbridgedCast" ]], ["BuiltinType" , [ { "pointer" : 243 }, "BuiltinFn" ]], ["ComplexType" , [ { "pointer" : 244 } ]], ["ComplexType" , [ { "pointer" : 245 } ]], ["ComplexType" , [ { "pointer" : 246 } ]], ["ComplexType" , [ { "pointer" : 247 } ]], ["BuiltinType" , [ { "pointer" : 248 }, "ObjCId" ]], ["BuiltinType" , [ { "pointer" : 249 }, "ObjCClass" ]], ["BuiltinType" , [ { "pointer" : 250 }, "ObjCSel" ]], ["PointerType" , [ { "pointer" : 251 }, { "type_ptr" : 190 } ]], ["BuiltinType" , [ { "pointer" : 252 }, "NullPtr" ]], ["BuiltinType" , [ { "pointer" : 253 }, "Half" ]], ["BuiltinType" , [ { "pointer" : 254 }, "BFloat16" ]], ["RecordType" , [ { "pointer" : 255 }, 256 ]], ["PointerType" , [ { "pointer" : 257 }, { "type_ptr" : 10, "is_const" : true } ]], ["PointerType" , [ { "pointer" : 258 }, { "type_ptr" : 192, "is_const" : true } ]], ["PointerType" , [ { "pointer" : 259 }, { "type_ptr" : 192 } ]], ["RecordType" , [ { "pointer" : 260 }, 261 ]], ["ConstantArrayType" , [ { "pointer" : 262 }, { "element_type" : { "type_ptr" : 260 }, "stride" : 24 }, 1 ]], ["TemplateTypeParmType" , [ { "pointer" : 263 } ]], ["TemplateTypeParmType" , [ { "pointer" : 264 } ]], ["PackExpansionType" , [ { "pointer" : 265 } ]], ["PackExpansionType" , [ { "pointer" : 266 } ]], ["TemplateSpecializationType" , [ { "pointer" : 267 } ]], ["TemplateSpecializationType" , [ { "pointer" : 268 } ]], ["InjectedClassNameType" , [ { "pointer" : 269 } ]], ["RecordType" , [ { "pointer" : 9 }, 8 ]], ["TemplateSpecializationType" , [ { "pointer" : 270, "desugared_type" : 9 } ]], ["RecordType" , [ { "pointer" : 12 }, 11 ]], ["TemplateSpecializationType" , [ { "pointer" : 26, "desugared_type" : 12 } ]], ["FunctionProtoType" , [ { "pointer" : 271 }, { "return_type" : { "type_ptr" : 190 } }, { } ]], ["FunctionProtoType" , [ { "pointer" : 272 }, { "return_type" : { "type_ptr" : 190 } }, { } ]], ["LValueReferenceType" , [ { "pointer" : 20 }, { "type_ptr" : 12, "is_const" : true } ]], ["FunctionProtoType" , [ { "pointer" : 273 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 20 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 18 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 20 } ] } ]], ["RValueReferenceType" , [ { "pointer" : 24 }, { "type_ptr" : 12 } ]], ["FunctionProtoType" , [ { "pointer" : 274 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 24 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 22 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 24 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 15 }, { "return_type" : { "type_ptr" : 190 } }, { } ]], ["DecltypeType" , [ { "pointer" : 275, "desugared_type" : 252 }, { "type_ptr" : 252 } ]], ["TypedefType" , [ { "pointer" : 29, "desugared_type" : 252 }, { "child_type" : { "type_ptr" : 275 }, "decl_ptr" : 28 } ]], ["TemplateSpecializationType" , [ { "pointer" : 276 } ]], ["TemplateSpecializationType" , [ { "pointer" : 277 } ]], ["InjectedClassNameType" , [ { "pointer" : 278 } ]], ["RecordType" , [ { "pointer" : 32 }, 31 ]], ["TemplateSpecializationType" , [ { "pointer" : 45, "desugared_type" : 32 } ]], ["FunctionProtoType" , [ { "pointer" : 279 }, { "return_type" : { "type_ptr" : 190 } }, { } ]], ["LValueReferenceType" , [ { "pointer" : 39 }, { "type_ptr" : 32, "is_const" : true } ]], ["FunctionProtoType" , [ { "pointer" : 280 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 39 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 37 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 39 } ] } ]], ["RValueReferenceType" , [ { "pointer" : 43 }, { "type_ptr" : 32 } ]], ["FunctionProtoType" , [ { "pointer" : 281 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 43 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 41 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 43 } ] } ]], ["TemplateSpecializationType" , [ { "pointer" : 282 } ]], ["TemplateSpecializationType" , [ { "pointer" : 283 } ]], ["InjectedClassNameType" , [ { "pointer" : 284 } ]], ["TemplateSpecializationType" , [ { "pointer" : 285 } ]], ["TemplateSpecializationType" , [ { "pointer" : 286 } ]], ["InjectedClassNameType" , [ { "pointer" : 287 } ]], ["TemplateSpecializationType" , [ { "pointer" : 288 } ]], ["TemplateSpecializationType" , [ { "pointer" : 289 } ]], ["InjectedClassNameType" , [ { "pointer" : 290 } ]], ["RecordType" , [ { "pointer" : 49 }, 48 ]], ["TemplateSpecializationType" , [ { "pointer" : 90, "desugared_type" : 49 } ]], ["FunctionProtoType" , [ { "pointer" : 291 }, { "return_type" : { "type_ptr" : 190 } }, { } ]], ["LValueReferenceType" , [ { "pointer" : 56 }, { "type_ptr" : 49, "is_const" : true } ]], ["FunctionProtoType" , [ { "pointer" : 292 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 56 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 54 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 56 } ] } ]], ["RValueReferenceType" , [ { "pointer" : 60 }, { "type_ptr" : 49 } ]], ["FunctionProtoType" , [ { "pointer" : 293 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 60 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 58 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 60 } ] } ]], ["RecordType" , [ { "pointer" : 63 }, 62 ]], ["TemplateSpecializationType" , [ { "pointer" : 93, "desugared_type" : 63 } ]], ["FunctionProtoType" , [ { "pointer" : 294 }, { "return_type" : { "type_ptr" : 190 } }, { } ]], ["LValueReferenceType" , [ { "pointer" : 70 }, { "type_ptr" : 63, "is_const" : true } ]], ["FunctionProtoType" , [ { "pointer" : 295 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 70 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 68 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 70 } ] } ]], ["RValueReferenceType" , [ { "pointer" : 74 }, { "type_ptr" : 63 } ]], ["FunctionProtoType" , [ { "pointer" : 296 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 74 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 72 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 74 } ] } ]], ["RecordType" , [ { "pointer" : 77 }, 76 ]], ["TemplateSpecializationType" , [ { "pointer" : 96, "desugared_type" : 77 } ]], ["FunctionProtoType" , [ { "pointer" : 297 }, { "return_type" : { "type_ptr" : 190 } }, { } ]], ["LValueReferenceType" , [ { "pointer" : 84 }, { "type_ptr" : 77, "is_const" : true } ]], ["FunctionProtoType" , [ { "pointer" : 298 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 84 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 82 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 84 } ] } ]], ["RValueReferenceType" , [ { "pointer" : 88 }, { "type_ptr" : 77 } ]], ["FunctionProtoType" , [ { "pointer" : 299 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 88 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 86 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 88 } ] } ]], ["TemplateSpecializationType" , [ { "pointer" : 300 } ]], ["TemplateSpecializationType" , [ { "pointer" : 301 } ]], ["InjectedClassNameType" , [ { "pointer" : 302 } ]], ["ConstantArrayType" , [ { "pointer" : 113 }, { "element_type" : { "type_ptr" : 10 }, "stride" : 4 }, 42 ]], ["RecordType" , [ { "pointer" : 115 }, 114 ]], ["LValueReferenceType" , [ { "pointer" : 122 }, { "type_ptr" : 115, "is_const" : true } ]], ["TemplateSpecializationType" , [ { "pointer" : 303 } ]], ["TemplateSpecializationType" , [ { "pointer" : 304 } ]], ["InjectedClassNameType" , [ { "pointer" : 305 } ]], ["FunctionProtoType" , [ { "pointer" : 306 }, { "return_type" : { "type_ptr" : 190 } }, { } ]], ["FunctionProtoType" , [ { "pointer" : 307 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 122 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 120 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 122 } ] } ]], ["RValueReferenceType" , [ { "pointer" : 126 }, { "type_ptr" : 115 } ]], ["FunctionProtoType" , [ { "pointer" : 308 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 126 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 124 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 126 } ] } ]], ["ConstantArrayType" , [ { "pointer" : 158 }, { "element_type" : { "type_ptr" : 10 }, "stride" : 4 }, 5 ]], ["ParenType" , [ { "pointer" : 309, "desugared_type" : 158 }, { "type_ptr" : 158 } ]], ["LValueReferenceType" , [ { "pointer" : 310 }, { "type_ptr" : 158 } ]], ["LValueReferenceType" , [ { "pointer" : 311 }, { "type_ptr" : 309 } ]], ["TemplateSpecializationType" , [ { "pointer" : 312 } ]], ["TemplateSpecializationType" , [ { "pointer" : 313 } ]], ["InjectedClassNameType" , [ { "pointer" : 314 } ]], ["FunctionProtoType" , [ { "pointer" : 160 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 10 } ] } ]], ["ParenType" , [ { "pointer" : 315, "desugared_type" : 160 }, { "type_ptr" : 160 } ]], ["PointerType" , [ { "pointer" : 316 }, { "type_ptr" : 160 } ]], ["PointerType" , [ { "pointer" : 317 }, { "type_ptr" : 315 } ]], ["TemplateSpecializationType" , [ { "pointer" : 318 } ]], ["TemplateSpecializationType" , [ { "pointer" : 319 } ]], ["InjectedClassNameType" , [ { "pointer" : 320 } ]], ["PointerType" , [ { "pointer" : 321 }, { "type_ptr" : 10 } ]], ["RecordType" , [ { "pointer" : 100 }, 99 ]], ["TemplateSpecializationType" , [ { "pointer" : 177, "desugared_type" : 100 } ]], ["FunctionProtoType" , [ { "pointer" : 322 }, { "return_type" : { "type_ptr" : 190 } }, { } ]], ["LValueReferenceType" , [ { "pointer" : 107 }, { "type_ptr" : 100, "is_const" : true } ]], ["FunctionProtoType" , [ { "pointer" : 323 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 107 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 105 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 107 } ] } ]], ["RValueReferenceType" , [ { "pointer" : 111 }, { "type_ptr" : 100 } ]], ["FunctionProtoType" , [ { "pointer" : 324 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 111 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 109 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 111 } ] } ]], ["RecordType" , [ { "pointer" : 129 }, 128 ]], ["TemplateSpecializationType" , [ { "pointer" : 180, "desugared_type" : 129 } ]], ["FunctionProtoType" , [ { "pointer" : 325 }, { "return_type" : { "type_ptr" : 190 } }, { } ]], ["LValueReferenceType" , [ { "pointer" : 136 }, { "type_ptr" : 129, "is_const" : true } ]], ["FunctionProtoType" , [ { "pointer" : 326 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 136 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 134 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 136 } ] } ]], ["RValueReferenceType" , [ { "pointer" : 140 }, { "type_ptr" : 129 } ]], ["FunctionProtoType" , [ { "pointer" : 327 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 140 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 138 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 140 } ] } ]], ["RecordType" , [ { "pointer" : 145 }, 144 ]], ["TemplateSpecializationType" , [ { "pointer" : 183, "desugared_type" : 145 } ]], ["FunctionProtoType" , [ { "pointer" : 328 }, { "return_type" : { "type_ptr" : 190 } }, { } ]], ["LValueReferenceType" , [ { "pointer" : 152 }, { "type_ptr" : 145, "is_const" : true } ]], ["FunctionProtoType" , [ { "pointer" : 329 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 152 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 150 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 152 } ] } ]], ["RValueReferenceType" , [ { "pointer" : 156 }, { "type_ptr" : 145 } ]], ["FunctionProtoType" , [ { "pointer" : 330 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 156 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 154 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 156 } ] } ]], ["RecordType" , [ { "pointer" : 164 }, 163 ]], ["TemplateSpecializationType" , [ { "pointer" : 186, "desugared_type" : 164 } ]], ["FunctionProtoType" , [ { "pointer" : 331 }, { "return_type" : { "type_ptr" : 190 } }, { } ]], ["LValueReferenceType" , [ { "pointer" : 171 }, { "type_ptr" : 164, "is_const" : true } ]], ["FunctionProtoType" , [ { "pointer" : 332 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 171 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 169 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 171 } ] } ]], ["RValueReferenceType" , [ { "pointer" : 175 }, { "type_ptr" : 164 } ]], ["FunctionProtoType" , [ { "pointer" : 333 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 175 } ] } ]], ["FunctionProtoType" , [ { "pointer" : 173 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 175 } ] } ]], ["ObjCObjectType" , [ { "pointer" : 334 }, { "base_type" : 248 } ]], ["ObjCObjectPointerType" , [ { "pointer" : 335 }, { "type_ptr" : 334 } ]], ["TypedefType" , [ { "pointer" : 336, "desugared_type" : 335 }, { "child_type" : { "type_ptr" : 335 }, "decl_ptr" : 337 } ]], ["TypedefType" , [ { "pointer" : 189, "desugared_type" : 335 }, { "child_type" : { "type_ptr" : 336 }, "decl_ptr" : 188 } ]], ["NoneType" , [ { "pointer" : 0 } ]] ] } ]]