<"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 }, { }, "2296961816144140105", { "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" : "16263929779680628849", "is_cpp" : true, "is_inline" : true, "decl_ptr_with_body" : 14, "body" : <"CompoundStmt" : ( { "pointer" : 16, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, [ ] )> }, { "is_constexpr" : true } )>, <"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" : "11014497521477142187", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 19, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 20 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )>, <"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" : "15031955784438883279", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 23, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 24 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )> ], { }, <"TTK_Struct">, { "definition_ptr" : 11, "is_complete_definition" : true }, { "is_pod" : true }, "8342447397680512296", { "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" : "10023818314310534501", "is_cpp" : true, "is_inline" : true, "decl_ptr_with_body" : 34, "body" : <"CompoundStmt" : ( { "pointer" : 35, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, [ ] )> }, { "is_constexpr" : true } )>, <"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" : "11471169980769644070", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 38, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 39 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )>, <"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" : "11154857410366551354", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 42, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 43 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )> ], { }, <"TTK_Struct">, { "definition_ptr" : 31, "is_complete_definition" : true }, { "is_pod" : true }, "11141543725649308068", { "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" : "1478228132453016226", "is_cpp" : true, "is_inline" : true, "decl_ptr_with_body" : 51, "body" : <"CompoundStmt" : ( { "pointer" : 52, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, [ ] )> }, { "is_constexpr" : true } )>, <"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" : "11043804702208708385", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 55, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 56 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )>, <"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" : "5185260157533638819", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 59, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 60 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )> ], { }, <"TTK_Struct">, { "definition_ptr" : 48, "is_complete_definition" : true }, { "is_pod" : true }, "18441911275316219119", { "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" : "16225353893069217924", "is_cpp" : true, "is_inline" : true, "decl_ptr_with_body" : 65, "body" : <"CompoundStmt" : ( { "pointer" : 66, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, [ ] )> }, { "is_constexpr" : true } )>, <"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" : "16636418989297388895", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 69, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 70 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )>, <"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" : "2774670671732909065", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 73, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 74 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )> ], { }, <"TTK_Struct">, { "definition_ptr" : 62, "is_complete_definition" : true }, { "is_pod" : true }, "7893038887469539829", { "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" : "16125716847522929195", "is_cpp" : true, "is_inline" : true, "decl_ptr_with_body" : 79, "body" : <"CompoundStmt" : ( { "pointer" : 80, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, [ ] )> }, { "is_constexpr" : true } )>, <"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" : "5156418638880841616", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 83, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 84 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )>, <"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" : "18073023600850944380", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 87, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 88 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )> ], { }, <"TTK_Struct">, { "definition_ptr" : 76, "is_complete_definition" : true }, { "is_pod" : true }, "6282617124311682814", { "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" : "8438636393447290261", "is_cpp" : true, "is_inline" : true, "decl_ptr_with_body" : 102, "body" : <"CompoundStmt" : ( { "pointer" : 103, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, [ ] )> }, { "is_constexpr" : true } )>, <"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" : "304459608885830774", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 106, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 107 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )>, <"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" : "5555169503117312650", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 110, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 111 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )> ], { }, <"TTK_Struct">, { "definition_ptr" : 99, "is_complete_definition" : true }, { "is_pod" : true }, "92945586264616176", { "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" : "14898916407379161639", "is_cpp" : true, "is_inline" : true, "decl_ptr_with_body" : 117, "body" : <"CompoundStmt" : ( { "pointer" : 118, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, [ ] )> }, { "is_constexpr" : true } )>, <"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" : "7125450473324676530", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 121, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 122 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )>, <"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" : "3069361207223136310", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 125, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 126 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )> ], { }, <"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<&y>" ] }, 129, [ <"CXXRecordDecl" : ( { "pointer" : 130, "parent_pointer" : 128, "source_range" : ( { "column" : 1 }, { "column" : 8 } ), "is_implicit" : true, "access" : <"Public"> }, { "name" : "Z", "qual_name" : [ "Z", "Z<&y>" ] }, 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<&y>" ] }, { "type_ptr" : 15 }, { "mangled_name" : "2247315131692507250", "is_cpp" : true, "is_inline" : true, "decl_ptr_with_body" : 131, "body" : <"CompoundStmt" : ( { "pointer" : 132, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, [ ] )> }, { "is_constexpr" : true } )>, <"CXXConstructorDecl" : ( { "pointer" : 133, "parent_pointer" : 128, "source_range" : ( { "column" : 8 }, { "column" : 8 } ), "is_implicit" : true, "access" : <"Public"> }, { "name" : "Z", "qual_name" : [ "Z", "Z<&y>" ] }, { "type_ptr" : 134 }, { "mangled_name" : "7738251501016099665", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 135, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 136 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )>, <"CXXConstructorDecl" : ( { "pointer" : 137, "parent_pointer" : 128, "source_range" : ( { "column" : 8 }, { "column" : 8 } ), "is_implicit" : true, "access" : <"Public"> }, { "name" : "Z", "qual_name" : [ "Z", "Z<&y>" ] }, { "type_ptr" : 138 }, { "mangled_name" : "15832834678910379731", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 139, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 140 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )> ], { }, <"TTK_Struct">, { "definition_ptr" : 128, "is_complete_definition" : true }, { "is_pod" : true }, "4282980438553401163", { "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<&b>" ] }, 145, [ <"CXXRecordDecl" : ( { "pointer" : 146, "parent_pointer" : 144, "source_range" : ( { "column" : 1 }, { "column" : 8 } ), "is_implicit" : true, "access" : <"Public"> }, { "name" : "W", "qual_name" : [ "W", "W<&b>" ] }, 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<&b>" ] }, { "type_ptr" : 15 }, { "mangled_name" : "7772438286950717212", "is_cpp" : true, "is_inline" : true, "decl_ptr_with_body" : 147, "body" : <"CompoundStmt" : ( { "pointer" : 148, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, [ ] )> }, { "is_constexpr" : true } )>, <"CXXConstructorDecl" : ( { "pointer" : 149, "parent_pointer" : 144, "source_range" : ( { "column" : 8 }, { "column" : 8 } ), "is_implicit" : true, "access" : <"Public"> }, { "name" : "W", "qual_name" : [ "W", "W<&b>" ] }, { "type_ptr" : 150 }, { "mangled_name" : "10597356402107300951", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 151, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 152 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )>, <"CXXConstructorDecl" : ( { "pointer" : 153, "parent_pointer" : 144, "source_range" : ( { "column" : 8 }, { "column" : 8 } ), "is_implicit" : true, "access" : <"Public"> }, { "name" : "W", "qual_name" : [ "W", "W<&b>" ] }, { "type_ptr" : 154 }, { "mangled_name" : "9048930144420503889", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 155, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 156 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )> ], { }, <"TTK_Struct">, { "definition_ptr" : 144, "is_complete_definition" : true }, { "is_pod" : true }, "632323835311287041", { "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" : "3658993291457928989", "is_cpp" : true, "is_inline" : true, "decl_ptr_with_body" : 166, "body" : <"CompoundStmt" : ( { "pointer" : 167, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, [ ] )> }, { "is_constexpr" : true } )>, <"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" : "18252192508176638302", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 170, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 171 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )>, <"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" : "9481628931273708930", "is_cpp" : true, "is_inline" : true, "parameters" : [ <"ParmVarDecl" : ( { "pointer" : 174, "source_range" : ( { "column" : 8 }, { "column" : 8 } ) }, { "name" : "", "qual_name" : [ "" ] }, { "type_ptr" : 175 }, { "parm_index_in_function" : 0 } )> ] }, { "is_constexpr" : true } )> ], { }, <"TTK_Struct">, { "definition_ptr" : 163, "is_complete_definition" : true }, { "is_pod" : true }, "6648620333758562824", { "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<&y>" ] }, "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<&b>" ] }, "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"> )>, <"RecordType" : ( { "pointer" : 254 }, 255 )>, <"PointerType" : ( { "pointer" : 256 }, { "type_ptr" : 10, "is_const" : true } )>, <"PointerType" : ( { "pointer" : 257 }, { "type_ptr" : 192, "is_const" : true } )>, <"PointerType" : ( { "pointer" : 258 }, { "type_ptr" : 192 } )>, <"RecordType" : ( { "pointer" : 259 }, 260 )>, <"ConstantArrayType" : ( { "pointer" : 261 }, { "element_type" : { "type_ptr" : 259 }, "stride" : 24 }, 1 )>, <"TemplateTypeParmType" : ( { "pointer" : 262 } )>, <"TemplateTypeParmType" : ( { "pointer" : 263 } )>, <"PackExpansionType" : ( { "pointer" : 264 } )>, <"PackExpansionType" : ( { "pointer" : 265 } )>, <"TemplateSpecializationType" : ( { "pointer" : 266 } )>, <"TemplateSpecializationType" : ( { "pointer" : 267 } )>, <"InjectedClassNameType" : ( { "pointer" : 268 } )>, <"RecordType" : ( { "pointer" : 9 }, 8 )>, <"TemplateSpecializationType" : ( { "pointer" : 269, "desugared_type" : 9 } )>, <"RecordType" : ( { "pointer" : 12 }, 11 )>, <"TemplateSpecializationType" : ( { "pointer" : 26, "desugared_type" : 12 } )>, <"FunctionProtoType" : ( { "pointer" : 270 }, { "return_type" : { "type_ptr" : 190 } }, { } )>, <"FunctionProtoType" : ( { "pointer" : 271 }, { "return_type" : { "type_ptr" : 190 } }, { } )>, <"LValueReferenceType" : ( { "pointer" : 20 }, { "type_ptr" : 12, "is_const" : true } )>, <"FunctionProtoType" : ( { "pointer" : 272 }, { "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" : 273 }, { "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" : 274, "desugared_type" : 252 }, { "type_ptr" : 252 } )>, <"TypedefType" : ( { "pointer" : 29, "desugared_type" : 252 }, { "child_type" : { "type_ptr" : 274 }, "decl_ptr" : 28 } )>, <"TemplateSpecializationType" : ( { "pointer" : 275 } )>, <"TemplateSpecializationType" : ( { "pointer" : 276 } )>, <"InjectedClassNameType" : ( { "pointer" : 277 } )>, <"RecordType" : ( { "pointer" : 32 }, 31 )>, <"TemplateSpecializationType" : ( { "pointer" : 45, "desugared_type" : 32 } )>, <"FunctionProtoType" : ( { "pointer" : 278 }, { "return_type" : { "type_ptr" : 190 } }, { } )>, <"LValueReferenceType" : ( { "pointer" : 39 }, { "type_ptr" : 32, "is_const" : true } )>, <"FunctionProtoType" : ( { "pointer" : 279 }, { "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" : 280 }, { "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" : 281 } )>, <"TemplateSpecializationType" : ( { "pointer" : 282 } )>, <"InjectedClassNameType" : ( { "pointer" : 283 } )>, <"TemplateSpecializationType" : ( { "pointer" : 284 } )>, <"TemplateSpecializationType" : ( { "pointer" : 285 } )>, <"InjectedClassNameType" : ( { "pointer" : 286 } )>, <"TemplateSpecializationType" : ( { "pointer" : 287 } )>, <"TemplateSpecializationType" : ( { "pointer" : 288 } )>, <"InjectedClassNameType" : ( { "pointer" : 289 } )>, <"RecordType" : ( { "pointer" : 49 }, 48 )>, <"TemplateSpecializationType" : ( { "pointer" : 90, "desugared_type" : 49 } )>, <"FunctionProtoType" : ( { "pointer" : 290 }, { "return_type" : { "type_ptr" : 190 } }, { } )>, <"LValueReferenceType" : ( { "pointer" : 56 }, { "type_ptr" : 49, "is_const" : true } )>, <"FunctionProtoType" : ( { "pointer" : 291 }, { "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" : 292 }, { "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" : 293 }, { "return_type" : { "type_ptr" : 190 } }, { } )>, <"LValueReferenceType" : ( { "pointer" : 70 }, { "type_ptr" : 63, "is_const" : true } )>, <"FunctionProtoType" : ( { "pointer" : 294 }, { "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" : 295 }, { "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" : 296 }, { "return_type" : { "type_ptr" : 190 } }, { } )>, <"LValueReferenceType" : ( { "pointer" : 84 }, { "type_ptr" : 77, "is_const" : true } )>, <"FunctionProtoType" : ( { "pointer" : 297 }, { "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" : 298 }, { "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" : 299 } )>, <"TemplateSpecializationType" : ( { "pointer" : 300 } )>, <"InjectedClassNameType" : ( { "pointer" : 301 } )>, <"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" : 302 } )>, <"TemplateSpecializationType" : ( { "pointer" : 303 } )>, <"InjectedClassNameType" : ( { "pointer" : 304 } )>, <"FunctionProtoType" : ( { "pointer" : 305 }, { "return_type" : { "type_ptr" : 190 } }, { } )>, <"FunctionProtoType" : ( { "pointer" : 306 }, { "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" : 307 }, { "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" : 308, "desugared_type" : 158 }, { "type_ptr" : 158 } )>, <"LValueReferenceType" : ( { "pointer" : 309 }, { "type_ptr" : 158 } )>, <"LValueReferenceType" : ( { "pointer" : 310 }, { "type_ptr" : 308 } )>, <"TemplateSpecializationType" : ( { "pointer" : 311 } )>, <"TemplateSpecializationType" : ( { "pointer" : 312 } )>, <"InjectedClassNameType" : ( { "pointer" : 313 } )>, <"FunctionProtoType" : ( { "pointer" : 160 }, { "return_type" : { "type_ptr" : 190 } }, { "params_type" : [ { "type_ptr" : 10 } ] } )>, <"ParenType" : ( { "pointer" : 314, "desugared_type" : 160 }, { "type_ptr" : 160 } )>, <"PointerType" : ( { "pointer" : 315 }, { "type_ptr" : 160 } )>, <"PointerType" : ( { "pointer" : 316 }, { "type_ptr" : 314 } )>, <"TemplateSpecializationType" : ( { "pointer" : 317 } )>, <"TemplateSpecializationType" : ( { "pointer" : 318 } )>, <"InjectedClassNameType" : ( { "pointer" : 319 } )>, <"PointerType" : ( { "pointer" : 320 }, { "type_ptr" : 10 } )>, <"RecordType" : ( { "pointer" : 100 }, 99 )>, <"TemplateSpecializationType" : ( { "pointer" : 177, "desugared_type" : 100 } )>, <"FunctionProtoType" : ( { "pointer" : 321 }, { "return_type" : { "type_ptr" : 190 } }, { } )>, <"LValueReferenceType" : ( { "pointer" : 107 }, { "type_ptr" : 100, "is_const" : true } )>, <"FunctionProtoType" : ( { "pointer" : 322 }, { "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" : 323 }, { "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" : 324 }, { "return_type" : { "type_ptr" : 190 } }, { } )>, <"LValueReferenceType" : ( { "pointer" : 136 }, { "type_ptr" : 129, "is_const" : true } )>, <"FunctionProtoType" : ( { "pointer" : 325 }, { "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" : 326 }, { "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" : 327 }, { "return_type" : { "type_ptr" : 190 } }, { } )>, <"LValueReferenceType" : ( { "pointer" : 152 }, { "type_ptr" : 145, "is_const" : true } )>, <"FunctionProtoType" : ( { "pointer" : 328 }, { "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" : 329 }, { "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" : 330 }, { "return_type" : { "type_ptr" : 190 } }, { } )>, <"LValueReferenceType" : ( { "pointer" : 171 }, { "type_ptr" : 164, "is_const" : true } )>, <"FunctionProtoType" : ( { "pointer" : 331 }, { "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" : 332 }, { "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" : 333 }, { "base_type" : 248 } )>, <"ObjCObjectPointerType" : ( { "pointer" : 334 }, { "type_ptr" : 333 } )>, <"TypedefType" : ( { "pointer" : 335, "desugared_type" : 334 }, { "child_type" : { "type_ptr" : 334 }, "decl_ptr" : 336 } )>, <"TypedefType" : ( { "pointer" : 189, "desugared_type" : 334 }, { "child_type" : { "type_ptr" : 335 }, "decl_ptr" : 188 } )>, <"NoneType" : ( { "pointer" : 0 } )> ] } )>