3133 lines · cpp
1// RUN: %clang_cc1 -std=c++17 -triple x86_64-unknown-unknown -ast-dump=json %s | FileCheck -strict-whitespace %s2 3template <typename Ty>4void a(Ty);5 6template <typename... Ty>7void b(Ty...);8 9template <class Ty, typename Uy>10void c(Ty);11 12template <>13void c<float, int>(float);14 15template <typename Ty, template<typename> typename Uy>16void d(Ty, Uy<Ty>);17 18template <class Ty>19void e(Ty);20 21template <int N>22void f(int i = N);23 24template <typename Ty = int>25void g(Ty);26 27template <typename = void>28void h();29 30template <typename Ty>31struct R {};32 33template <>34struct R<int> {};35 36template <typename Ty, class Uy>37struct S {};38 39template <typename Ty>40struct S<Ty, int> {};41 42template <auto>43struct T {};44 45template <decltype(auto)>46struct U {};47 48template <typename Ty>49struct V {50 template <typename Uy>51 void f();52};53 54template <typename Ty>55template <typename Uy>56void V<Ty>::f() {}57 58template <template <typename> class = R>59void i();60 61template <int A> class W{62};63W(int)->W<1>;64 65// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py66 67 68// CHECK-NOT: {{^}}Dumping69// CHECK: "kind": "TranslationUnitDecl",70// CHECK-NEXT: "loc": {},71// CHECK-NEXT: "range": {72// CHECK-NEXT: "begin": {},73// CHECK-NEXT: "end": {}74// CHECK-NEXT: },75// CHECK-NEXT: "inner": [76// CHECK-NEXT: {77// CHECK-NEXT: "id": "0x{{.*}}",78// CHECK-NEXT: "kind": "TypedefDecl",79// CHECK-NEXT: "loc": {},80// CHECK-NEXT: "range": {81// CHECK-NEXT: "begin": {},82// CHECK-NEXT: "end": {}83// CHECK-NEXT: },84// CHECK-NEXT: "isImplicit": true,85// CHECK-NEXT: "name": "__int128_t",86// CHECK-NEXT: "type": {87// CHECK-NEXT: "qualType": "__int128"88// CHECK-NEXT: },89// CHECK-NEXT: "inner": [90// CHECK-NEXT: {91// CHECK-NEXT: "id": "0x{{.*}}",92// CHECK-NEXT: "kind": "BuiltinType",93// CHECK-NEXT: "type": {94// CHECK-NEXT: "qualType": "__int128"95// CHECK-NEXT: }96// CHECK-NEXT: }97// CHECK-NEXT: ]98// CHECK-NEXT: },99// CHECK-NEXT: {100// CHECK-NEXT: "id": "0x{{.*}}",101// CHECK-NEXT: "kind": "TypedefDecl",102// CHECK-NEXT: "loc": {},103// CHECK-NEXT: "range": {104// CHECK-NEXT: "begin": {},105// CHECK-NEXT: "end": {}106// CHECK-NEXT: },107// CHECK-NEXT: "isImplicit": true,108// CHECK-NEXT: "name": "__uint128_t",109// CHECK-NEXT: "type": {110// CHECK-NEXT: "qualType": "unsigned __int128"111// CHECK-NEXT: },112// CHECK-NEXT: "inner": [113// CHECK-NEXT: {114// CHECK-NEXT: "id": "0x{{.*}}",115// CHECK-NEXT: "kind": "BuiltinType",116// CHECK-NEXT: "type": {117// CHECK-NEXT: "qualType": "unsigned __int128"118// CHECK-NEXT: }119// CHECK-NEXT: }120// CHECK-NEXT: ]121// CHECK-NEXT: },122// CHECK-NEXT: {123// CHECK-NEXT: "id": "0x{{.*}}",124// CHECK-NEXT: "kind": "TypedefDecl",125// CHECK-NEXT: "loc": {},126// CHECK-NEXT: "range": {127// CHECK-NEXT: "begin": {},128// CHECK-NEXT: "end": {}129// CHECK-NEXT: },130// CHECK-NEXT: "isImplicit": true,131// CHECK-NEXT: "name": "__NSConstantString",132// CHECK-NEXT: "type": {133// CHECK-NEXT: "qualType": "__NSConstantString_tag"134// CHECK-NEXT: },135// CHECK-NEXT: "inner": [136// CHECK-NEXT: {137// CHECK-NEXT: "id": "0x{{.*}}",138// CHECK-NEXT: "kind": "RecordType",139// CHECK-NEXT: "type": {140// CHECK-NEXT: "qualType": "__NSConstantString_tag"141// CHECK-NEXT: },142// CHECK-NEXT: "decl": {143// CHECK-NEXT: "id": "0x{{.*}}",144// CHECK-NEXT: "kind": "CXXRecordDecl",145// CHECK-NEXT: "name": "__NSConstantString_tag"146// CHECK-NEXT: }147// CHECK-NEXT: }148// CHECK-NEXT: ]149// CHECK-NEXT: },150// CHECK-NEXT: {151// CHECK-NEXT: "id": "0x{{.*}}",152// CHECK-NEXT: "kind": "TypedefDecl",153// CHECK-NEXT: "loc": {},154// CHECK-NEXT: "range": {155// CHECK-NEXT: "begin": {},156// CHECK-NEXT: "end": {}157// CHECK-NEXT: },158// CHECK-NEXT: "isImplicit": true,159// CHECK-NEXT: "name": "__builtin_ms_va_list",160// CHECK-NEXT: "type": {161// CHECK-NEXT: "qualType": "char *"162// CHECK-NEXT: },163// CHECK-NEXT: "inner": [164// CHECK-NEXT: {165// CHECK-NEXT: "id": "0x{{.*}}",166// CHECK-NEXT: "kind": "PointerType",167// CHECK-NEXT: "type": {168// CHECK-NEXT: "qualType": "char *"169// CHECK-NEXT: },170// CHECK-NEXT: "inner": [171// CHECK-NEXT: {172// CHECK-NEXT: "id": "0x{{.*}}",173// CHECK-NEXT: "kind": "BuiltinType",174// CHECK-NEXT: "type": {175// CHECK-NEXT: "qualType": "char"176// CHECK-NEXT: }177// CHECK-NEXT: }178// CHECK-NEXT: ]179// CHECK-NEXT: }180// CHECK-NEXT: ]181// CHECK-NEXT: },182// CHECK-NEXT: {183// CHECK-NEXT: "id": "0x{{.*}}",184// CHECK-NEXT: "kind": "TypedefDecl",185// CHECK-NEXT: "loc": {},186// CHECK-NEXT: "range": {187// CHECK-NEXT: "begin": {},188// CHECK-NEXT: "end": {}189// CHECK-NEXT: },190// CHECK-NEXT: "isImplicit": true,191// CHECK-NEXT: "name": "__builtin_va_list",192// CHECK-NEXT: "type": {193// CHECK-NEXT: "qualType": "__va_list_tag[1]"194// CHECK-NEXT: },195// CHECK-NEXT: "inner": [196// CHECK-NEXT: {197// CHECK-NEXT: "id": "0x{{.*}}",198// CHECK-NEXT: "kind": "ConstantArrayType",199// CHECK-NEXT: "type": {200// CHECK-NEXT: "qualType": "__va_list_tag[1]"201// CHECK-NEXT: },202// CHECK-NEXT: "size": 1,203// CHECK-NEXT: "inner": [204// CHECK-NEXT: {205// CHECK-NEXT: "id": "0x{{.*}}",206// CHECK-NEXT: "kind": "RecordType",207// CHECK-NEXT: "type": {208// CHECK-NEXT: "qualType": "__va_list_tag"209// CHECK-NEXT: },210// CHECK-NEXT: "decl": {211// CHECK-NEXT: "id": "0x{{.*}}",212// CHECK-NEXT: "kind": "CXXRecordDecl",213// CHECK-NEXT: "name": "__va_list_tag"214// CHECK-NEXT: }215// CHECK-NEXT: }216// CHECK-NEXT: ]217// CHECK-NEXT: }218// CHECK-NEXT: ]219// CHECK-NEXT: },220// CHECK-NEXT: {221// CHECK-NEXT: "id": "0x{{.*}}",222// CHECK-NEXT: "kind": "FunctionTemplateDecl",223// CHECK-NEXT: "loc": {224// CHECK-NEXT: "offset": {{[0-9]+}},225// CHECK-NEXT: "file": "{{.*}}",226// CHECK-NEXT: "line": 4,227// CHECK-NEXT: "col": 6,228// CHECK-NEXT: "tokLen": 1229// CHECK-NEXT: },230// CHECK-NEXT: "range": {231// CHECK-NEXT: "begin": {232// CHECK-NEXT: "offset": {{[0-9]+}},233// CHECK-NEXT: "line": 3,234// CHECK-NEXT: "col": 1,235// CHECK-NEXT: "tokLen": 8236// CHECK-NEXT: },237// CHECK-NEXT: "end": {238// CHECK-NEXT: "offset": {{[0-9]+}},239// CHECK-NEXT: "line": 4,240// CHECK-NEXT: "col": 10,241// CHECK-NEXT: "tokLen": 1242// CHECK-NEXT: }243// CHECK-NEXT: },244// CHECK-NEXT: "name": "a",245// CHECK-NEXT: "inner": [246// CHECK-NEXT: {247// CHECK-NEXT: "id": "0x{{.*}}",248// CHECK-NEXT: "kind": "TemplateTypeParmDecl",249// CHECK-NEXT: "loc": {250// CHECK-NEXT: "offset": {{[0-9]+}},251// CHECK-NEXT: "line": 3,252// CHECK-NEXT: "col": 20,253// CHECK-NEXT: "tokLen": 2254// CHECK-NEXT: },255// CHECK-NEXT: "range": {256// CHECK-NEXT: "begin": {257// CHECK-NEXT: "offset": {{[0-9]+}},258// CHECK-NEXT: "col": 11,259// CHECK-NEXT: "tokLen": 8260// CHECK-NEXT: },261// CHECK-NEXT: "end": {262// CHECK-NEXT: "offset": {{[0-9]+}},263// CHECK-NEXT: "col": 20,264// CHECK-NEXT: "tokLen": 2265// CHECK-NEXT: }266// CHECK-NEXT: },267// CHECK-NEXT: "isReferenced": true,268// CHECK-NEXT: "name": "Ty",269// CHECK-NEXT: "tagUsed": "typename",270// CHECK-NEXT: "depth": 0,271// CHECK-NEXT: "index": 0272// CHECK-NEXT: },273// CHECK-NEXT: {274// CHECK-NEXT: "id": "0x{{.*}}",275// CHECK-NEXT: "kind": "FunctionDecl",276// CHECK-NEXT: "loc": {277// CHECK-NEXT: "offset": {{[0-9]+}},278// CHECK-NEXT: "line": 4,279// CHECK-NEXT: "col": 6,280// CHECK-NEXT: "tokLen": 1281// CHECK-NEXT: },282// CHECK-NEXT: "range": {283// CHECK-NEXT: "begin": {284// CHECK-NEXT: "offset": {{[0-9]+}},285// CHECK-NEXT: "col": 1,286// CHECK-NEXT: "tokLen": 4287// CHECK-NEXT: },288// CHECK-NEXT: "end": {289// CHECK-NEXT: "offset": {{[0-9]+}},290// CHECK-NEXT: "col": 10,291// CHECK-NEXT: "tokLen": 1292// CHECK-NEXT: }293// CHECK-NEXT: },294// CHECK-NEXT: "name": "a",295// CHECK-NEXT: "type": {296// CHECK-NEXT: "qualType": "void (Ty)"297// CHECK-NEXT: },298// CHECK-NEXT: "inner": [299// CHECK-NEXT: {300// CHECK-NEXT: "id": "0x{{.*}}",301// CHECK-NEXT: "kind": "ParmVarDecl",302// CHECK-NEXT: "loc": {303// CHECK-NEXT: "offset": {{[0-9]+}},304// CHECK-NEXT: "col": 10,305// CHECK-NEXT: "tokLen": 1306// CHECK-NEXT: },307// CHECK-NEXT: "range": {308// CHECK-NEXT: "begin": {309// CHECK-NEXT: "offset": {{[0-9]+}},310// CHECK-NEXT: "col": 8,311// CHECK-NEXT: "tokLen": 2312// CHECK-NEXT: },313// CHECK-NEXT: "end": {314// CHECK-NEXT: "offset": {{[0-9]+}},315// CHECK-NEXT: "col": 8,316// CHECK-NEXT: "tokLen": 2317// CHECK-NEXT: }318// CHECK-NEXT: },319// CHECK-NEXT: "type": {320// CHECK-NEXT: "qualType": "Ty"321// CHECK-NEXT: }322// CHECK-NEXT: }323// CHECK-NEXT: ]324// CHECK-NEXT: }325// CHECK-NEXT: ]326// CHECK-NEXT: },327// CHECK-NEXT: {328// CHECK-NEXT: "id": "0x{{.*}}",329// CHECK-NEXT: "kind": "FunctionTemplateDecl",330// CHECK-NEXT: "loc": {331// CHECK-NEXT: "offset": {{[0-9]+}},332// CHECK-NEXT: "line": 7,333// CHECK-NEXT: "col": 6,334// CHECK-NEXT: "tokLen": 1335// CHECK-NEXT: },336// CHECK-NEXT: "range": {337// CHECK-NEXT: "begin": {338// CHECK-NEXT: "offset": {{[0-9]+}},339// CHECK-NEXT: "line": 6,340// CHECK-NEXT: "col": 1,341// CHECK-NEXT: "tokLen": 8342// CHECK-NEXT: },343// CHECK-NEXT: "end": {344// CHECK-NEXT: "offset": {{[0-9]+}},345// CHECK-NEXT: "line": 7,346// CHECK-NEXT: "col": 13,347// CHECK-NEXT: "tokLen": 1348// CHECK-NEXT: }349// CHECK-NEXT: },350// CHECK-NEXT: "name": "b",351// CHECK-NEXT: "inner": [352// CHECK-NEXT: {353// CHECK-NEXT: "id": "0x{{.*}}",354// CHECK-NEXT: "kind": "TemplateTypeParmDecl",355// CHECK-NEXT: "loc": {356// CHECK-NEXT: "offset": {{[0-9]+}},357// CHECK-NEXT: "line": 6,358// CHECK-NEXT: "col": 23,359// CHECK-NEXT: "tokLen": 2360// CHECK-NEXT: },361// CHECK-NEXT: "range": {362// CHECK-NEXT: "begin": {363// CHECK-NEXT: "offset": {{[0-9]+}},364// CHECK-NEXT: "col": 11,365// CHECK-NEXT: "tokLen": 8366// CHECK-NEXT: },367// CHECK-NEXT: "end": {368// CHECK-NEXT: "offset": {{[0-9]+}},369// CHECK-NEXT: "col": 23,370// CHECK-NEXT: "tokLen": 2371// CHECK-NEXT: }372// CHECK-NEXT: },373// CHECK-NEXT: "isReferenced": true,374// CHECK-NEXT: "name": "Ty",375// CHECK-NEXT: "tagUsed": "typename",376// CHECK-NEXT: "depth": 0,377// CHECK-NEXT: "index": 0,378// CHECK-NEXT: "isParameterPack": true379// CHECK-NEXT: },380// CHECK-NEXT: {381// CHECK-NEXT: "id": "0x{{.*}}",382// CHECK-NEXT: "kind": "FunctionDecl",383// CHECK-NEXT: "loc": {384// CHECK-NEXT: "offset": {{[0-9]+}},385// CHECK-NEXT: "line": 7,386// CHECK-NEXT: "col": 6,387// CHECK-NEXT: "tokLen": 1388// CHECK-NEXT: },389// CHECK-NEXT: "range": {390// CHECK-NEXT: "begin": {391// CHECK-NEXT: "offset": {{[0-9]+}},392// CHECK-NEXT: "col": 1,393// CHECK-NEXT: "tokLen": 4394// CHECK-NEXT: },395// CHECK-NEXT: "end": {396// CHECK-NEXT: "offset": {{[0-9]+}},397// CHECK-NEXT: "col": 13,398// CHECK-NEXT: "tokLen": 1399// CHECK-NEXT: }400// CHECK-NEXT: },401// CHECK-NEXT: "name": "b",402// CHECK-NEXT: "type": {403// CHECK-NEXT: "qualType": "void (Ty...)"404// CHECK-NEXT: },405// CHECK-NEXT: "inner": [406// CHECK-NEXT: {407// CHECK-NEXT: "id": "0x{{.*}}",408// CHECK-NEXT: "kind": "ParmVarDecl",409// CHECK-NEXT: "loc": {410// CHECK-NEXT: "offset": {{[0-9]+}},411// CHECK-NEXT: "col": 13,412// CHECK-NEXT: "tokLen": 1413// CHECK-NEXT: },414// CHECK-NEXT: "range": {415// CHECK-NEXT: "begin": {416// CHECK-NEXT: "offset": {{[0-9]+}},417// CHECK-NEXT: "col": 8,418// CHECK-NEXT: "tokLen": 2419// CHECK-NEXT: },420// CHECK-NEXT: "end": {421// CHECK-NEXT: "offset": {{[0-9]+}},422// CHECK-NEXT: "col": 10,423// CHECK-NEXT: "tokLen": 3424// CHECK-NEXT: }425// CHECK-NEXT: },426// CHECK-NEXT: "type": {427// CHECK-NEXT: "qualType": "Ty..."428// CHECK-NEXT: },429// CHECK-NEXT: "isParameterPack": true430// CHECK-NEXT: }431// CHECK-NEXT: ]432// CHECK-NEXT: }433// CHECK-NEXT: ]434// CHECK-NEXT: },435// CHECK-NEXT: {436// CHECK-NEXT: "id": "0x{{.*}}",437// CHECK-NEXT: "kind": "FunctionTemplateDecl",438// CHECK-NEXT: "loc": {439// CHECK-NEXT: "offset": {{[0-9]+}},440// CHECK-NEXT: "line": 10,441// CHECK-NEXT: "col": 6,442// CHECK-NEXT: "tokLen": 1443// CHECK-NEXT: },444// CHECK-NEXT: "range": {445// CHECK-NEXT: "begin": {446// CHECK-NEXT: "offset": {{[0-9]+}},447// CHECK-NEXT: "line": 9,448// CHECK-NEXT: "col": 1,449// CHECK-NEXT: "tokLen": 8450// CHECK-NEXT: },451// CHECK-NEXT: "end": {452// CHECK-NEXT: "offset": {{[0-9]+}},453// CHECK-NEXT: "line": 10,454// CHECK-NEXT: "col": 10,455// CHECK-NEXT: "tokLen": 1456// CHECK-NEXT: }457// CHECK-NEXT: },458// CHECK-NEXT: "name": "c",459// CHECK-NEXT: "inner": [460// CHECK-NEXT: {461// CHECK-NEXT: "id": "0x{{.*}}",462// CHECK-NEXT: "kind": "TemplateTypeParmDecl",463// CHECK-NEXT: "loc": {464// CHECK-NEXT: "offset": {{[0-9]+}},465// CHECK-NEXT: "line": 9,466// CHECK-NEXT: "col": 17,467// CHECK-NEXT: "tokLen": 2468// CHECK-NEXT: },469// CHECK-NEXT: "range": {470// CHECK-NEXT: "begin": {471// CHECK-NEXT: "offset": {{[0-9]+}},472// CHECK-NEXT: "col": 11,473// CHECK-NEXT: "tokLen": 5474// CHECK-NEXT: },475// CHECK-NEXT: "end": {476// CHECK-NEXT: "offset": {{[0-9]+}},477// CHECK-NEXT: "col": 17,478// CHECK-NEXT: "tokLen": 2479// CHECK-NEXT: }480// CHECK-NEXT: },481// CHECK-NEXT: "isReferenced": true,482// CHECK-NEXT: "name": "Ty",483// CHECK-NEXT: "tagUsed": "class",484// CHECK-NEXT: "depth": 0,485// CHECK-NEXT: "index": 0486// CHECK-NEXT: },487// CHECK-NEXT: {488// CHECK-NEXT: "id": "0x{{.*}}",489// CHECK-NEXT: "kind": "TemplateTypeParmDecl",490// CHECK-NEXT: "loc": {491// CHECK-NEXT: "offset": {{[0-9]+}},492// CHECK-NEXT: "col": 30,493// CHECK-NEXT: "tokLen": 2494// CHECK-NEXT: },495// CHECK-NEXT: "range": {496// CHECK-NEXT: "begin": {497// CHECK-NEXT: "offset": {{[0-9]+}},498// CHECK-NEXT: "col": 21,499// CHECK-NEXT: "tokLen": 8500// CHECK-NEXT: },501// CHECK-NEXT: "end": {502// CHECK-NEXT: "offset": {{[0-9]+}},503// CHECK-NEXT: "col": 30,504// CHECK-NEXT: "tokLen": 2505// CHECK-NEXT: }506// CHECK-NEXT: },507// CHECK-NEXT: "name": "Uy",508// CHECK-NEXT: "tagUsed": "typename",509// CHECK-NEXT: "depth": 0,510// CHECK-NEXT: "index": 1511// CHECK-NEXT: },512// CHECK-NEXT: {513// CHECK-NEXT: "id": "0x{{.*}}",514// CHECK-NEXT: "kind": "FunctionDecl",515// CHECK-NEXT: "loc": {516// CHECK-NEXT: "offset": {{[0-9]+}},517// CHECK-NEXT: "line": 10,518// CHECK-NEXT: "col": 6,519// CHECK-NEXT: "tokLen": 1520// CHECK-NEXT: },521// CHECK-NEXT: "range": {522// CHECK-NEXT: "begin": {523// CHECK-NEXT: "offset": {{[0-9]+}},524// CHECK-NEXT: "col": 1,525// CHECK-NEXT: "tokLen": 4526// CHECK-NEXT: },527// CHECK-NEXT: "end": {528// CHECK-NEXT: "offset": {{[0-9]+}},529// CHECK-NEXT: "col": 10,530// CHECK-NEXT: "tokLen": 1531// CHECK-NEXT: }532// CHECK-NEXT: },533// CHECK-NEXT: "name": "c",534// CHECK-NEXT: "type": {535// CHECK-NEXT: "qualType": "void (Ty)"536// CHECK-NEXT: },537// CHECK-NEXT: "inner": [538// CHECK-NEXT: {539// CHECK-NEXT: "id": "0x{{.*}}",540// CHECK-NEXT: "kind": "ParmVarDecl",541// CHECK-NEXT: "loc": {542// CHECK-NEXT: "offset": {{[0-9]+}},543// CHECK-NEXT: "col": 10,544// CHECK-NEXT: "tokLen": 1545// CHECK-NEXT: },546// CHECK-NEXT: "range": {547// CHECK-NEXT: "begin": {548// CHECK-NEXT: "offset": {{[0-9]+}},549// CHECK-NEXT: "col": 8,550// CHECK-NEXT: "tokLen": 2551// CHECK-NEXT: },552// CHECK-NEXT: "end": {553// CHECK-NEXT: "offset": {{[0-9]+}},554// CHECK-NEXT: "col": 8,555// CHECK-NEXT: "tokLen": 2556// CHECK-NEXT: }557// CHECK-NEXT: },558// CHECK-NEXT: "type": {559// CHECK-NEXT: "qualType": "Ty"560// CHECK-NEXT: }561// CHECK-NEXT: }562// CHECK-NEXT: ]563// CHECK-NEXT: },564// CHECK-NEXT: {565// CHECK-NEXT: "id": "0x{{.*}}",566// CHECK-NEXT: "kind": "FunctionDecl",567// CHECK-NEXT: "name": "c",568// CHECK-NEXT: "type": {569// CHECK-NEXT: "qualType": "void (float)"570// CHECK-NEXT: }571// CHECK-NEXT: }572// CHECK-NEXT: ]573// CHECK-NEXT: },574// CHECK-NEXT: {575// CHECK-NEXT: "id": "0x{{.*}}",576// CHECK-NEXT: "kind": "FunctionDecl",577// CHECK-NEXT: "loc": {578// CHECK-NEXT: "offset": {{[0-9]+}},579// CHECK-NEXT: "line": 13,580// CHECK-NEXT: "col": 6,581// CHECK-NEXT: "tokLen": 1582// CHECK-NEXT: },583// CHECK-NEXT: "range": {584// CHECK-NEXT: "begin": {585// CHECK-NEXT: "offset": {{[0-9]+}},586// CHECK-NEXT: "line": 12,587// CHECK-NEXT: "col": 1,588// CHECK-NEXT: "tokLen": 8589// CHECK-NEXT: },590// CHECK-NEXT: "end": {591// CHECK-NEXT: "offset": {{[0-9]+}},592// CHECK-NEXT: "line": 13,593// CHECK-NEXT: "col": 25,594// CHECK-NEXT: "tokLen": 1595// CHECK-NEXT: }596// CHECK-NEXT: },597// CHECK-NEXT: "previousDecl": "0x{{.*}}",598// CHECK-NEXT: "name": "c",599// CHECK-NEXT: "mangledName": "_Z1cIfiEvT_",600// CHECK-NEXT: "type": {601// CHECK-NEXT: "qualType": "void (float)"602// CHECK-NEXT: },603// CHECK-NEXT: "inner": [604// CHECK-NEXT: {605// CHECK-NEXT: "kind": "TemplateArgument",606// CHECK-NEXT: "type": {607// CHECK-NEXT: "qualType": "float"608// CHECK-NEXT: },609// CHECK-NEXT: "inner": [610// CHECK-NEXT: {611// CHECK-NEXT: "id": "0x{{.*}}",612// CHECK-NEXT: "kind": "BuiltinType",613// CHECK-NEXT: "type": {614// CHECK-NEXT: "qualType": "float"615// CHECK-NEXT: }616// CHECK-NEXT: }617// CHECK-NEXT: ]618// CHECK-NEXT: },619// CHECK-NEXT: {620// CHECK-NEXT: "kind": "TemplateArgument",621// CHECK-NEXT: "type": {622// CHECK-NEXT: "qualType": "int"623// CHECK-NEXT: },624// CHECK-NEXT: "inner": [625// CHECK-NEXT: {626// CHECK-NEXT: "id": "0x{{.*}}",627// CHECK-NEXT: "kind": "BuiltinType",628// CHECK-NEXT: "type": {629// CHECK-NEXT: "qualType": "int"630// CHECK-NEXT: }631// CHECK-NEXT: }632// CHECK-NEXT: ]633// CHECK-NEXT: },634// CHECK-NEXT: {635// CHECK-NEXT: "id": "0x{{.*}}",636// CHECK-NEXT: "kind": "ParmVarDecl",637// CHECK-NEXT: "loc": {638// CHECK-NEXT: "offset": {{[0-9]+}},639// CHECK-NEXT: "col": 25,640// CHECK-NEXT: "tokLen": 1641// CHECK-NEXT: },642// CHECK-NEXT: "range": {643// CHECK-NEXT: "begin": {644// CHECK-NEXT: "offset": {{[0-9]+}},645// CHECK-NEXT: "col": 20,646// CHECK-NEXT: "tokLen": 5647// CHECK-NEXT: },648// CHECK-NEXT: "end": {649// CHECK-NEXT: "offset": {{[0-9]+}},650// CHECK-NEXT: "col": 20,651// CHECK-NEXT: "tokLen": 5652// CHECK-NEXT: }653// CHECK-NEXT: },654// CHECK-NEXT: "type": {655// CHECK-NEXT: "qualType": "float"656// CHECK-NEXT: }657// CHECK-NEXT: }658// CHECK-NEXT: ]659// CHECK-NEXT: },660// CHECK-NEXT: {661// CHECK-NEXT: "id": "0x{{.*}}",662// CHECK-NEXT: "kind": "FunctionTemplateDecl",663// CHECK-NEXT: "loc": {664// CHECK-NEXT: "offset": {{[0-9]+}},665// CHECK-NEXT: "line": 16,666// CHECK-NEXT: "col": 6,667// CHECK-NEXT: "tokLen": 1668// CHECK-NEXT: },669// CHECK-NEXT: "range": {670// CHECK-NEXT: "begin": {671// CHECK-NEXT: "offset": {{[0-9]+}},672// CHECK-NEXT: "line": 15,673// CHECK-NEXT: "col": 1,674// CHECK-NEXT: "tokLen": 8675// CHECK-NEXT: },676// CHECK-NEXT: "end": {677// CHECK-NEXT: "offset": {{[0-9]+}},678// CHECK-NEXT: "line": 16,679// CHECK-NEXT: "col": 18,680// CHECK-NEXT: "tokLen": 1681// CHECK-NEXT: }682// CHECK-NEXT: },683// CHECK-NEXT: "name": "d",684// CHECK-NEXT: "inner": [685// CHECK-NEXT: {686// CHECK-NEXT: "id": "0x{{.*}}",687// CHECK-NEXT: "kind": "TemplateTypeParmDecl",688// CHECK-NEXT: "loc": {689// CHECK-NEXT: "offset": {{[0-9]+}},690// CHECK-NEXT: "line": 15,691// CHECK-NEXT: "col": 20,692// CHECK-NEXT: "tokLen": 2693// CHECK-NEXT: },694// CHECK-NEXT: "range": {695// CHECK-NEXT: "begin": {696// CHECK-NEXT: "offset": {{[0-9]+}},697// CHECK-NEXT: "col": 11,698// CHECK-NEXT: "tokLen": 8699// CHECK-NEXT: },700// CHECK-NEXT: "end": {701// CHECK-NEXT: "offset": {{[0-9]+}},702// CHECK-NEXT: "col": 20,703// CHECK-NEXT: "tokLen": 2704// CHECK-NEXT: }705// CHECK-NEXT: },706// CHECK-NEXT: "isReferenced": true,707// CHECK-NEXT: "name": "Ty",708// CHECK-NEXT: "tagUsed": "typename",709// CHECK-NEXT: "depth": 0,710// CHECK-NEXT: "index": 0711// CHECK-NEXT: },712// CHECK-NEXT: {713// CHECK-NEXT: "id": "0x{{.*}}",714// CHECK-NEXT: "kind": "TemplateTemplateParmDecl",715// CHECK-NEXT: "loc": {716// CHECK-NEXT: "offset": {{[0-9]+}},717// CHECK-NEXT: "col": 52,718// CHECK-NEXT: "tokLen": 2719// CHECK-NEXT: },720// CHECK-NEXT: "range": {721// CHECK-NEXT: "begin": {722// CHECK-NEXT: "offset": {{[0-9]+}},723// CHECK-NEXT: "col": 24,724// CHECK-NEXT: "tokLen": 8725// CHECK-NEXT: },726// CHECK-NEXT: "end": {727// CHECK-NEXT: "offset": {{[0-9]+}},728// CHECK-NEXT: "col": 52,729// CHECK-NEXT: "tokLen": 2730// CHECK-NEXT: }731// CHECK-NEXT: },732// CHECK-NEXT: "name": "Uy",733// CHECK-NEXT: "depth": 0,734// CHECK-NEXT: "index": 1,735// CHECK-NEXT: "inner": [736// CHECK-NEXT: {737// CHECK-NEXT: "id": "0x{{.*}}",738// CHECK-NEXT: "kind": "TemplateTypeParmDecl",739// CHECK-NEXT: "loc": {740// CHECK-NEXT: "offset": {{[0-9]+}},741// CHECK-NEXT: "col": 41,742// CHECK-NEXT: "tokLen": 1743// CHECK-NEXT: },744// CHECK-NEXT: "range": {745// CHECK-NEXT: "begin": {746// CHECK-NEXT: "offset": {{[0-9]+}},747// CHECK-NEXT: "col": 33,748// CHECK-NEXT: "tokLen": 8749// CHECK-NEXT: },750// CHECK-NEXT: "end": {751// CHECK-NEXT: "offset": {{[0-9]+}},752// CHECK-NEXT: "col": 33,753// CHECK-NEXT: "tokLen": 8754// CHECK-NEXT: }755// CHECK-NEXT: },756// CHECK-NEXT: "tagUsed": "typename",757// CHECK-NEXT: "depth": 1,758// CHECK-NEXT: "index": 0759// CHECK-NEXT: }760// CHECK-NEXT: ]761// CHECK-NEXT: },762// CHECK-NEXT: {763// CHECK-NEXT: "id": "0x{{.*}}",764// CHECK-NEXT: "kind": "FunctionDecl",765// CHECK-NEXT: "loc": {766// CHECK-NEXT: "offset": {{[0-9]+}},767// CHECK-NEXT: "line": 16,768// CHECK-NEXT: "col": 6,769// CHECK-NEXT: "tokLen": 1770// CHECK-NEXT: },771// CHECK-NEXT: "range": {772// CHECK-NEXT: "begin": {773// CHECK-NEXT: "offset": {{[0-9]+}},774// CHECK-NEXT: "col": 1,775// CHECK-NEXT: "tokLen": 4776// CHECK-NEXT: },777// CHECK-NEXT: "end": {778// CHECK-NEXT: "offset": {{[0-9]+}},779// CHECK-NEXT: "col": 18,780// CHECK-NEXT: "tokLen": 1781// CHECK-NEXT: }782// CHECK-NEXT: },783// CHECK-NEXT: "name": "d",784// CHECK-NEXT: "type": {785// CHECK-NEXT: "qualType": "void (Ty, Uy<Ty>)"786// CHECK-NEXT: },787// CHECK-NEXT: "inner": [788// CHECK-NEXT: {789// CHECK-NEXT: "id": "0x{{.*}}",790// CHECK-NEXT: "kind": "ParmVarDecl",791// CHECK-NEXT: "loc": {792// CHECK-NEXT: "offset": {{[0-9]+}},793// CHECK-NEXT: "col": 10,794// CHECK-NEXT: "tokLen": 1795// CHECK-NEXT: },796// CHECK-NEXT: "range": {797// CHECK-NEXT: "begin": {798// CHECK-NEXT: "offset": {{[0-9]+}},799// CHECK-NEXT: "col": 8,800// CHECK-NEXT: "tokLen": 2801// CHECK-NEXT: },802// CHECK-NEXT: "end": {803// CHECK-NEXT: "offset": {{[0-9]+}},804// CHECK-NEXT: "col": 8,805// CHECK-NEXT: "tokLen": 2806// CHECK-NEXT: }807// CHECK-NEXT: },808// CHECK-NEXT: "type": {809// CHECK-NEXT: "qualType": "Ty"810// CHECK-NEXT: }811// CHECK-NEXT: },812// CHECK-NEXT: {813// CHECK-NEXT: "id": "0x{{.*}}",814// CHECK-NEXT: "kind": "ParmVarDecl",815// CHECK-NEXT: "loc": {816// CHECK-NEXT: "offset": {{[0-9]+}},817// CHECK-NEXT: "col": 18,818// CHECK-NEXT: "tokLen": 1819// CHECK-NEXT: },820// CHECK-NEXT: "range": {821// CHECK-NEXT: "begin": {822// CHECK-NEXT: "offset": {{[0-9]+}},823// CHECK-NEXT: "col": 12,824// CHECK-NEXT: "tokLen": 2825// CHECK-NEXT: },826// CHECK-NEXT: "end": {827// CHECK-NEXT: "offset": {{[0-9]+}},828// CHECK-NEXT: "col": 17,829// CHECK-NEXT: "tokLen": 1830// CHECK-NEXT: }831// CHECK-NEXT: },832// CHECK-NEXT: "type": {833// CHECK-NEXT: "qualType": "Uy<Ty>"834// CHECK-NEXT: }835// CHECK-NEXT: }836// CHECK-NEXT: ]837// CHECK-NEXT: }838// CHECK-NEXT: ]839// CHECK-NEXT: },840// CHECK-NEXT: {841// CHECK-NEXT: "id": "0x{{.*}}",842// CHECK-NEXT: "kind": "FunctionTemplateDecl",843// CHECK-NEXT: "loc": {844// CHECK-NEXT: "offset": {{[0-9]+}},845// CHECK-NEXT: "line": 19,846// CHECK-NEXT: "col": 6,847// CHECK-NEXT: "tokLen": 1848// CHECK-NEXT: },849// CHECK-NEXT: "range": {850// CHECK-NEXT: "begin": {851// CHECK-NEXT: "offset": {{[0-9]+}},852// CHECK-NEXT: "line": 18,853// CHECK-NEXT: "col": 1,854// CHECK-NEXT: "tokLen": 8855// CHECK-NEXT: },856// CHECK-NEXT: "end": {857// CHECK-NEXT: "offset": {{[0-9]+}},858// CHECK-NEXT: "line": 19,859// CHECK-NEXT: "col": 10,860// CHECK-NEXT: "tokLen": 1861// CHECK-NEXT: }862// CHECK-NEXT: },863// CHECK-NEXT: "name": "e",864// CHECK-NEXT: "inner": [865// CHECK-NEXT: {866// CHECK-NEXT: "id": "0x{{.*}}",867// CHECK-NEXT: "kind": "TemplateTypeParmDecl",868// CHECK-NEXT: "loc": {869// CHECK-NEXT: "offset": {{[0-9]+}},870// CHECK-NEXT: "line": 18,871// CHECK-NEXT: "col": 17,872// CHECK-NEXT: "tokLen": 2873// CHECK-NEXT: },874// CHECK-NEXT: "range": {875// CHECK-NEXT: "begin": {876// CHECK-NEXT: "offset": {{[0-9]+}},877// CHECK-NEXT: "col": 11,878// CHECK-NEXT: "tokLen": 5879// CHECK-NEXT: },880// CHECK-NEXT: "end": {881// CHECK-NEXT: "offset": {{[0-9]+}},882// CHECK-NEXT: "col": 17,883// CHECK-NEXT: "tokLen": 2884// CHECK-NEXT: }885// CHECK-NEXT: },886// CHECK-NEXT: "isReferenced": true,887// CHECK-NEXT: "name": "Ty",888// CHECK-NEXT: "tagUsed": "class",889// CHECK-NEXT: "depth": 0,890// CHECK-NEXT: "index": 0891// CHECK-NEXT: },892// CHECK-NEXT: {893// CHECK-NEXT: "id": "0x{{.*}}",894// CHECK-NEXT: "kind": "FunctionDecl",895// CHECK-NEXT: "loc": {896// CHECK-NEXT: "offset": {{[0-9]+}},897// CHECK-NEXT: "line": 19,898// CHECK-NEXT: "col": 6,899// CHECK-NEXT: "tokLen": 1900// CHECK-NEXT: },901// CHECK-NEXT: "range": {902// CHECK-NEXT: "begin": {903// CHECK-NEXT: "offset": {{[0-9]+}},904// CHECK-NEXT: "col": 1,905// CHECK-NEXT: "tokLen": 4906// CHECK-NEXT: },907// CHECK-NEXT: "end": {908// CHECK-NEXT: "offset": {{[0-9]+}},909// CHECK-NEXT: "col": 10,910// CHECK-NEXT: "tokLen": 1911// CHECK-NEXT: }912// CHECK-NEXT: },913// CHECK-NEXT: "name": "e",914// CHECK-NEXT: "type": {915// CHECK-NEXT: "qualType": "void (Ty)"916// CHECK-NEXT: },917// CHECK-NEXT: "inner": [918// CHECK-NEXT: {919// CHECK-NEXT: "id": "0x{{.*}}",920// CHECK-NEXT: "kind": "ParmVarDecl",921// CHECK-NEXT: "loc": {922// CHECK-NEXT: "offset": {{[0-9]+}},923// CHECK-NEXT: "col": 10,924// CHECK-NEXT: "tokLen": 1925// CHECK-NEXT: },926// CHECK-NEXT: "range": {927// CHECK-NEXT: "begin": {928// CHECK-NEXT: "offset": {{[0-9]+}},929// CHECK-NEXT: "col": 8,930// CHECK-NEXT: "tokLen": 2931// CHECK-NEXT: },932// CHECK-NEXT: "end": {933// CHECK-NEXT: "offset": {{[0-9]+}},934// CHECK-NEXT: "col": 8,935// CHECK-NEXT: "tokLen": 2936// CHECK-NEXT: }937// CHECK-NEXT: },938// CHECK-NEXT: "type": {939// CHECK-NEXT: "qualType": "Ty"940// CHECK-NEXT: }941// CHECK-NEXT: }942// CHECK-NEXT: ]943// CHECK-NEXT: }944// CHECK-NEXT: ]945// CHECK-NEXT: },946// CHECK-NEXT: {947// CHECK-NEXT: "id": "0x{{.*}}",948// CHECK-NEXT: "kind": "FunctionTemplateDecl",949// CHECK-NEXT: "loc": {950// CHECK-NEXT: "offset": {{[0-9]+}},951// CHECK-NEXT: "line": 22,952// CHECK-NEXT: "col": 6,953// CHECK-NEXT: "tokLen": 1954// CHECK-NEXT: },955// CHECK-NEXT: "range": {956// CHECK-NEXT: "begin": {957// CHECK-NEXT: "offset": {{[0-9]+}},958// CHECK-NEXT: "line": 21,959// CHECK-NEXT: "col": 1,960// CHECK-NEXT: "tokLen": 8961// CHECK-NEXT: },962// CHECK-NEXT: "end": {963// CHECK-NEXT: "offset": {{[0-9]+}},964// CHECK-NEXT: "line": 22,965// CHECK-NEXT: "col": 17,966// CHECK-NEXT: "tokLen": 1967// CHECK-NEXT: }968// CHECK-NEXT: },969// CHECK-NEXT: "name": "f",970// CHECK-NEXT: "inner": [971// CHECK-NEXT: {972// CHECK-NEXT: "id": "0x{{.*}}",973// CHECK-NEXT: "kind": "NonTypeTemplateParmDecl",974// CHECK-NEXT: "loc": {975// CHECK-NEXT: "offset": {{[0-9]+}},976// CHECK-NEXT: "line": 21,977// CHECK-NEXT: "col": 15,978// CHECK-NEXT: "tokLen": 1979// CHECK-NEXT: },980// CHECK-NEXT: "range": {981// CHECK-NEXT: "begin": {982// CHECK-NEXT: "offset": {{[0-9]+}},983// CHECK-NEXT: "col": 11,984// CHECK-NEXT: "tokLen": 3985// CHECK-NEXT: },986// CHECK-NEXT: "end": {987// CHECK-NEXT: "offset": {{[0-9]+}},988// CHECK-NEXT: "col": 15,989// CHECK-NEXT: "tokLen": 1990// CHECK-NEXT: }991// CHECK-NEXT: },992// CHECK-NEXT: "isReferenced": true,993// CHECK-NEXT: "name": "N",994// CHECK-NEXT: "type": {995// CHECK-NEXT: "qualType": "int"996// CHECK-NEXT: },997// CHECK-NEXT: "depth": 0,998// CHECK-NEXT: "index": 0999// CHECK-NEXT: },1000// CHECK-NEXT: {1001// CHECK-NEXT: "id": "0x{{.*}}",1002// CHECK-NEXT: "kind": "FunctionDecl",1003// CHECK-NEXT: "loc": {1004// CHECK-NEXT: "offset": {{[0-9]+}},1005// CHECK-NEXT: "line": 22,1006// CHECK-NEXT: "col": 6,1007// CHECK-NEXT: "tokLen": 11008// CHECK-NEXT: },1009// CHECK-NEXT: "range": {1010// CHECK-NEXT: "begin": {1011// CHECK-NEXT: "offset": {{[0-9]+}},1012// CHECK-NEXT: "col": 1,1013// CHECK-NEXT: "tokLen": 41014// CHECK-NEXT: },1015// CHECK-NEXT: "end": {1016// CHECK-NEXT: "offset": {{[0-9]+}},1017// CHECK-NEXT: "col": 17,1018// CHECK-NEXT: "tokLen": 11019// CHECK-NEXT: }1020// CHECK-NEXT: },1021// CHECK-NEXT: "name": "f",1022// CHECK-NEXT: "type": {1023// CHECK-NEXT: "qualType": "void (int)"1024// CHECK-NEXT: },1025// CHECK-NEXT: "inner": [1026// CHECK-NEXT: {1027// CHECK-NEXT: "id": "0x{{.*}}",1028// CHECK-NEXT: "kind": "ParmVarDecl",1029// CHECK-NEXT: "loc": {1030// CHECK-NEXT: "offset": {{[0-9]+}},1031// CHECK-NEXT: "col": 12,1032// CHECK-NEXT: "tokLen": 11033// CHECK-NEXT: },1034// CHECK-NEXT: "range": {1035// CHECK-NEXT: "begin": {1036// CHECK-NEXT: "offset": {{[0-9]+}},1037// CHECK-NEXT: "col": 8,1038// CHECK-NEXT: "tokLen": 31039// CHECK-NEXT: },1040// CHECK-NEXT: "end": {1041// CHECK-NEXT: "offset": {{[0-9]+}},1042// CHECK-NEXT: "col": 16,1043// CHECK-NEXT: "tokLen": 11044// CHECK-NEXT: }1045// CHECK-NEXT: },1046// CHECK-NEXT: "name": "i",1047// CHECK-NEXT: "type": {1048// CHECK-NEXT: "qualType": "int"1049// CHECK-NEXT: },1050// CHECK-NEXT: "init": "c",1051// CHECK-NEXT: "inner": [1052// CHECK-NEXT: {1053// CHECK-NEXT: "id": "0x{{.*}}",1054// CHECK-NEXT: "kind": "DeclRefExpr",1055// CHECK-NEXT: "range": {1056// CHECK-NEXT: "begin": {1057// CHECK-NEXT: "offset": {{[0-9]+}},1058// CHECK-NEXT: "col": 16,1059// CHECK-NEXT: "tokLen": 11060// CHECK-NEXT: },1061// CHECK-NEXT: "end": {1062// CHECK-NEXT: "offset": {{[0-9]+}},1063// CHECK-NEXT: "col": 16,1064// CHECK-NEXT: "tokLen": 11065// CHECK-NEXT: }1066// CHECK-NEXT: },1067// CHECK-NEXT: "type": {1068// CHECK-NEXT: "qualType": "int"1069// CHECK-NEXT: },1070// CHECK-NEXT: "valueCategory": "prvalue",1071// CHECK-NEXT: "referencedDecl": {1072// CHECK-NEXT: "id": "0x{{.*}}",1073// CHECK-NEXT: "kind": "NonTypeTemplateParmDecl",1074// CHECK-NEXT: "name": "N",1075// CHECK-NEXT: "type": {1076// CHECK-NEXT: "qualType": "int"1077// CHECK-NEXT: }1078// CHECK-NEXT: }1079// CHECK-NEXT: }1080// CHECK-NEXT: ]1081// CHECK-NEXT: }1082// CHECK-NEXT: ]1083// CHECK-NEXT: }1084// CHECK-NEXT: ]1085// CHECK-NEXT: },1086// CHECK-NEXT: {1087// CHECK-NEXT: "id": "0x{{.*}}",1088// CHECK-NEXT: "kind": "FunctionTemplateDecl",1089// CHECK-NEXT: "loc": {1090// CHECK-NEXT: "offset": {{[0-9]+}},1091// CHECK-NEXT: "line": 25,1092// CHECK-NEXT: "col": 6,1093// CHECK-NEXT: "tokLen": 11094// CHECK-NEXT: },1095// CHECK-NEXT: "range": {1096// CHECK-NEXT: "begin": {1097// CHECK-NEXT: "offset": {{[0-9]+}},1098// CHECK-NEXT: "line": 24,1099// CHECK-NEXT: "col": 1,1100// CHECK-NEXT: "tokLen": 81101// CHECK-NEXT: },1102// CHECK-NEXT: "end": {1103// CHECK-NEXT: "offset": {{[0-9]+}},1104// CHECK-NEXT: "line": 25,1105// CHECK-NEXT: "col": 10,1106// CHECK-NEXT: "tokLen": 11107// CHECK-NEXT: }1108// CHECK-NEXT: },1109// CHECK-NEXT: "name": "g",1110// CHECK-NEXT: "inner": [1111// CHECK-NEXT: {1112// CHECK-NEXT: "id": "0x{{.*}}",1113// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1114// CHECK-NEXT: "loc": {1115// CHECK-NEXT: "offset": {{[0-9]+}},1116// CHECK-NEXT: "line": 24,1117// CHECK-NEXT: "col": 20,1118// CHECK-NEXT: "tokLen": 21119// CHECK-NEXT: },1120// CHECK-NEXT: "range": {1121// CHECK-NEXT: "begin": {1122// CHECK-NEXT: "offset": {{[0-9]+}},1123// CHECK-NEXT: "col": 11,1124// CHECK-NEXT: "tokLen": 81125// CHECK-NEXT: },1126// CHECK-NEXT: "end": {1127// CHECK-NEXT: "offset": {{[0-9]+}},1128// CHECK-NEXT: "col": 25,1129// CHECK-NEXT: "tokLen": 31130// CHECK-NEXT: }1131// CHECK-NEXT: },1132// CHECK-NEXT: "isReferenced": true,1133// CHECK-NEXT: "name": "Ty",1134// CHECK-NEXT: "tagUsed": "typename",1135// CHECK-NEXT: "depth": 0,1136// CHECK-NEXT: "index": 0,1137// CHECK-NEXT: "defaultArg": {1138// CHECK-NEXT: "kind": "TemplateArgument",1139// CHECK-NEXT: "type": {1140// CHECK-NEXT: "qualType": "int"1141// CHECK-NEXT: }1142// CHECK-NEXT: },1143// CHECK-NEXT: "inner": [1144// CHECK-NEXT: {1145// CHECK-NEXT: "kind": "TemplateArgument",1146// CHECK-NEXT: "type": {1147// CHECK-NEXT: "qualType": "int"1148// CHECK-NEXT: },1149// CHECK-NEXT: "inner": [1150// CHECK-NEXT: {1151// CHECK-NEXT: "id": "0x{{.*}}",1152// CHECK-NEXT: "kind": "BuiltinType",1153// CHECK-NEXT: "type": {1154// CHECK-NEXT: "qualType": "int"1155// CHECK-NEXT: }1156// CHECK-NEXT: }1157// CHECK-NEXT: ]1158// CHECK-NEXT: }1159// CHECK-NEXT: ]1160// CHECK-NEXT: },1161// CHECK-NEXT: {1162// CHECK-NEXT: "id": "0x{{.*}}",1163// CHECK-NEXT: "kind": "FunctionDecl",1164// CHECK-NEXT: "loc": {1165// CHECK-NEXT: "offset": {{[0-9]+}},1166// CHECK-NEXT: "line": 25,1167// CHECK-NEXT: "col": 6,1168// CHECK-NEXT: "tokLen": 11169// CHECK-NEXT: },1170// CHECK-NEXT: "range": {1171// CHECK-NEXT: "begin": {1172// CHECK-NEXT: "offset": {{[0-9]+}},1173// CHECK-NEXT: "col": 1,1174// CHECK-NEXT: "tokLen": 41175// CHECK-NEXT: },1176// CHECK-NEXT: "end": {1177// CHECK-NEXT: "offset": {{[0-9]+}},1178// CHECK-NEXT: "col": 10,1179// CHECK-NEXT: "tokLen": 11180// CHECK-NEXT: }1181// CHECK-NEXT: },1182// CHECK-NEXT: "name": "g",1183// CHECK-NEXT: "type": {1184// CHECK-NEXT: "qualType": "void (Ty)"1185// CHECK-NEXT: },1186// CHECK-NEXT: "inner": [1187// CHECK-NEXT: {1188// CHECK-NEXT: "id": "0x{{.*}}",1189// CHECK-NEXT: "kind": "ParmVarDecl",1190// CHECK-NEXT: "loc": {1191// CHECK-NEXT: "offset": {{[0-9]+}},1192// CHECK-NEXT: "col": 10,1193// CHECK-NEXT: "tokLen": 11194// CHECK-NEXT: },1195// CHECK-NEXT: "range": {1196// CHECK-NEXT: "begin": {1197// CHECK-NEXT: "offset": {{[0-9]+}},1198// CHECK-NEXT: "col": 8,1199// CHECK-NEXT: "tokLen": 21200// CHECK-NEXT: },1201// CHECK-NEXT: "end": {1202// CHECK-NEXT: "offset": {{[0-9]+}},1203// CHECK-NEXT: "col": 8,1204// CHECK-NEXT: "tokLen": 21205// CHECK-NEXT: }1206// CHECK-NEXT: },1207// CHECK-NEXT: "type": {1208// CHECK-NEXT: "qualType": "Ty"1209// CHECK-NEXT: }1210// CHECK-NEXT: }1211// CHECK-NEXT: ]1212// CHECK-NEXT: }1213// CHECK-NEXT: ]1214// CHECK-NEXT: },1215// CHECK-NEXT: {1216// CHECK-NEXT: "id": "0x{{.*}}",1217// CHECK-NEXT: "kind": "FunctionTemplateDecl",1218// CHECK-NEXT: "loc": {1219// CHECK-NEXT: "offset": {{[0-9]+}},1220// CHECK-NEXT: "line": 28,1221// CHECK-NEXT: "col": 6,1222// CHECK-NEXT: "tokLen": 11223// CHECK-NEXT: },1224// CHECK-NEXT: "range": {1225// CHECK-NEXT: "begin": {1226// CHECK-NEXT: "offset": {{[0-9]+}},1227// CHECK-NEXT: "line": 27,1228// CHECK-NEXT: "col": 1,1229// CHECK-NEXT: "tokLen": 81230// CHECK-NEXT: },1231// CHECK-NEXT: "end": {1232// CHECK-NEXT: "offset": {{[0-9]+}},1233// CHECK-NEXT: "line": 28,1234// CHECK-NEXT: "col": 8,1235// CHECK-NEXT: "tokLen": 11236// CHECK-NEXT: }1237// CHECK-NEXT: },1238// CHECK-NEXT: "name": "h",1239// CHECK-NEXT: "inner": [1240// CHECK-NEXT: {1241// CHECK-NEXT: "id": "0x{{.*}}",1242// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1243// CHECK-NEXT: "loc": {1244// CHECK-NEXT: "offset": {{[0-9]+}},1245// CHECK-NEXT: "line": 27,1246// CHECK-NEXT: "col": 20,1247// CHECK-NEXT: "tokLen": 11248// CHECK-NEXT: },1249// CHECK-NEXT: "range": {1250// CHECK-NEXT: "begin": {1251// CHECK-NEXT: "offset": {{[0-9]+}},1252// CHECK-NEXT: "col": 11,1253// CHECK-NEXT: "tokLen": 81254// CHECK-NEXT: },1255// CHECK-NEXT: "end": {1256// CHECK-NEXT: "offset": {{[0-9]+}},1257// CHECK-NEXT: "col": 22,1258// CHECK-NEXT: "tokLen": 41259// CHECK-NEXT: }1260// CHECK-NEXT: },1261// CHECK-NEXT: "tagUsed": "typename",1262// CHECK-NEXT: "depth": 0,1263// CHECK-NEXT: "index": 0,1264// CHECK-NEXT: "defaultArg": {1265// CHECK-NEXT: "kind": "TemplateArgument",1266// CHECK-NEXT: "type": {1267// CHECK-NEXT: "qualType": "void"1268// CHECK-NEXT: }1269// CHECK-NEXT: },1270// CHECK-NEXT: "inner": [1271// CHECK-NEXT: {1272// CHECK-NEXT: "kind": "TemplateArgument",1273// CHECK-NEXT: "type": {1274// CHECK-NEXT: "qualType": "void"1275// CHECK-NEXT: },1276// CHECK-NEXT: "inner": [1277// CHECK-NEXT: {1278// CHECK-NEXT: "id": "0x{{.*}}",1279// CHECK-NEXT: "kind": "BuiltinType",1280// CHECK-NEXT: "type": {1281// CHECK-NEXT: "qualType": "void"1282// CHECK-NEXT: }1283// CHECK-NEXT: }1284// CHECK-NEXT: ]1285// CHECK-NEXT: }1286// CHECK-NEXT: ]1287// CHECK-NEXT: },1288// CHECK-NEXT: {1289// CHECK-NEXT: "id": "0x{{.*}}",1290// CHECK-NEXT: "kind": "FunctionDecl",1291// CHECK-NEXT: "loc": {1292// CHECK-NEXT: "offset": {{[0-9]+}},1293// CHECK-NEXT: "line": 28,1294// CHECK-NEXT: "col": 6,1295// CHECK-NEXT: "tokLen": 11296// CHECK-NEXT: },1297// CHECK-NEXT: "range": {1298// CHECK-NEXT: "begin": {1299// CHECK-NEXT: "offset": {{[0-9]+}},1300// CHECK-NEXT: "col": 1,1301// CHECK-NEXT: "tokLen": 41302// CHECK-NEXT: },1303// CHECK-NEXT: "end": {1304// CHECK-NEXT: "offset": {{[0-9]+}},1305// CHECK-NEXT: "col": 8,1306// CHECK-NEXT: "tokLen": 11307// CHECK-NEXT: }1308// CHECK-NEXT: },1309// CHECK-NEXT: "name": "h",1310// CHECK-NEXT: "type": {1311// CHECK-NEXT: "qualType": "void ()"1312// CHECK-NEXT: }1313// CHECK-NEXT: }1314// CHECK-NEXT: ]1315// CHECK-NEXT: },1316// CHECK-NEXT: {1317// CHECK-NEXT: "id": "0x{{.*}}",1318// CHECK-NEXT: "kind": "ClassTemplateDecl",1319// CHECK-NEXT: "loc": {1320// CHECK-NEXT: "offset": {{[0-9]+}},1321// CHECK-NEXT: "line": 31,1322// CHECK-NEXT: "col": 8,1323// CHECK-NEXT: "tokLen": 11324// CHECK-NEXT: },1325// CHECK-NEXT: "range": {1326// CHECK-NEXT: "begin": {1327// CHECK-NEXT: "offset": {{[0-9]+}},1328// CHECK-NEXT: "line": 30,1329// CHECK-NEXT: "col": 1,1330// CHECK-NEXT: "tokLen": 81331// CHECK-NEXT: },1332// CHECK-NEXT: "end": {1333// CHECK-NEXT: "offset": {{[0-9]+}},1334// CHECK-NEXT: "line": 31,1335// CHECK-NEXT: "col": 11,1336// CHECK-NEXT: "tokLen": 11337// CHECK-NEXT: }1338// CHECK-NEXT: },1339// CHECK-NEXT: "name": "R",1340// CHECK-NEXT: "inner": [1341// CHECK-NEXT: {1342// CHECK-NEXT: "id": "0x{{.*}}",1343// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1344// CHECK-NEXT: "loc": {1345// CHECK-NEXT: "offset": {{[0-9]+}},1346// CHECK-NEXT: "line": 30,1347// CHECK-NEXT: "col": 20,1348// CHECK-NEXT: "tokLen": 21349// CHECK-NEXT: },1350// CHECK-NEXT: "range": {1351// CHECK-NEXT: "begin": {1352// CHECK-NEXT: "offset": {{[0-9]+}},1353// CHECK-NEXT: "col": 11,1354// CHECK-NEXT: "tokLen": 81355// CHECK-NEXT: },1356// CHECK-NEXT: "end": {1357// CHECK-NEXT: "offset": {{[0-9]+}},1358// CHECK-NEXT: "col": 20,1359// CHECK-NEXT: "tokLen": 21360// CHECK-NEXT: }1361// CHECK-NEXT: },1362// CHECK-NEXT: "name": "Ty",1363// CHECK-NEXT: "tagUsed": "typename",1364// CHECK-NEXT: "depth": 0,1365// CHECK-NEXT: "index": 01366// CHECK-NEXT: },1367// CHECK-NEXT: {1368// CHECK-NEXT: "id": "0x{{.*}}",1369// CHECK-NEXT: "kind": "CXXRecordDecl",1370// CHECK-NEXT: "loc": {1371// CHECK-NEXT: "offset": {{[0-9]+}},1372// CHECK-NEXT: "line": 31,1373// CHECK-NEXT: "col": 8,1374// CHECK-NEXT: "tokLen": 11375// CHECK-NEXT: },1376// CHECK-NEXT: "range": {1377// CHECK-NEXT: "begin": {1378// CHECK-NEXT: "offset": {{[0-9]+}},1379// CHECK-NEXT: "col": 1,1380// CHECK-NEXT: "tokLen": 61381// CHECK-NEXT: },1382// CHECK-NEXT: "end": {1383// CHECK-NEXT: "offset": {{[0-9]+}},1384// CHECK-NEXT: "col": 11,1385// CHECK-NEXT: "tokLen": 11386// CHECK-NEXT: }1387// CHECK-NEXT: },1388// CHECK-NEXT: "name": "R",1389// CHECK-NEXT: "tagUsed": "struct",1390// CHECK-NEXT: "completeDefinition": true,1391// CHECK-NEXT: "definitionData": {1392// CHECK-NEXT: "canConstDefaultInit": true,1393// CHECK-NEXT: "copyAssign": {1394// CHECK-NEXT: "hasConstParam": true,1395// CHECK-NEXT: "implicitHasConstParam": true,1396// CHECK-NEXT: "needsImplicit": true,1397// CHECK-NEXT: "simple": true,1398// CHECK-NEXT: "trivial": true1399// CHECK-NEXT: },1400// CHECK-NEXT: "copyCtor": {1401// CHECK-NEXT: "hasConstParam": true,1402// CHECK-NEXT: "implicitHasConstParam": true,1403// CHECK-NEXT: "needsImplicit": true,1404// CHECK-NEXT: "simple": true,1405// CHECK-NEXT: "trivial": true1406// CHECK-NEXT: },1407// CHECK-NEXT: "defaultCtor": {1408// CHECK-NEXT: "defaultedIsConstexpr": true,1409// CHECK-NEXT: "exists": true,1410// CHECK-NEXT: "isConstexpr": true,1411// CHECK-NEXT: "needsImplicit": true,1412// CHECK-NEXT: "trivial": true1413// CHECK-NEXT: },1414// CHECK-NEXT: "dtor": {1415// CHECK-NEXT: "irrelevant": true,1416// CHECK-NEXT: "needsImplicit": true,1417// CHECK-NEXT: "simple": true,1418// CHECK-NEXT: "trivial": true1419// CHECK-NEXT: },1420// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,1421// CHECK-NEXT: "isAggregate": true,1422// CHECK-NEXT: "isEmpty": true,1423// CHECK-NEXT: "isLiteral": true,1424// CHECK-NEXT: "isPOD": true,1425// CHECK-NEXT: "isStandardLayout": true,1426// CHECK-NEXT: "isTrivial": true,1427// CHECK-NEXT: "isTriviallyCopyable": true,1428// CHECK-NEXT: "moveAssign": {1429// CHECK-NEXT: "exists": true,1430// CHECK-NEXT: "needsImplicit": true,1431// CHECK-NEXT: "simple": true,1432// CHECK-NEXT: "trivial": true1433// CHECK-NEXT: },1434// CHECK-NEXT: "moveCtor": {1435// CHECK-NEXT: "exists": true,1436// CHECK-NEXT: "needsImplicit": true,1437// CHECK-NEXT: "simple": true,1438// CHECK-NEXT: "trivial": true1439// CHECK-NEXT: }1440// CHECK-NEXT: },1441// CHECK-NEXT: "inner": [1442// CHECK-NEXT: {1443// CHECK-NEXT: "id": "0x{{.*}}",1444// CHECK-NEXT: "kind": "CXXRecordDecl",1445// CHECK-NEXT: "loc": {1446// CHECK-NEXT: "offset": {{[0-9]+}},1447// CHECK-NEXT: "col": 8,1448// CHECK-NEXT: "tokLen": 11449// CHECK-NEXT: },1450// CHECK-NEXT: "range": {1451// CHECK-NEXT: "begin": {1452// CHECK-NEXT: "offset": {{[0-9]+}},1453// CHECK-NEXT: "col": 1,1454// CHECK-NEXT: "tokLen": 61455// CHECK-NEXT: },1456// CHECK-NEXT: "end": {1457// CHECK-NEXT: "offset": {{[0-9]+}},1458// CHECK-NEXT: "col": 8,1459// CHECK-NEXT: "tokLen": 11460// CHECK-NEXT: }1461// CHECK-NEXT: },1462// CHECK-NEXT: "isImplicit": true,1463// CHECK-NEXT: "name": "R",1464// CHECK-NEXT: "tagUsed": "struct"1465// CHECK-NEXT: }1466// CHECK-NEXT: ]1467// CHECK-NEXT: },1468// CHECK-NEXT: {1469// CHECK-NEXT: "id": "0x{{.*}}",1470// CHECK-NEXT: "kind": "ClassTemplateSpecializationDecl",1471// CHECK-NEXT: "name": "R"1472// CHECK-NEXT: }1473// CHECK-NEXT: ]1474// CHECK-NEXT: },1475// CHECK-NEXT: {1476// CHECK-NEXT: "id": "0x{{.*}}",1477// CHECK-NEXT: "kind": "ClassTemplateSpecializationDecl",1478// CHECK-NEXT: "loc": {1479// CHECK-NEXT: "offset": {{[0-9]+}},1480// CHECK-NEXT: "line": 34,1481// CHECK-NEXT: "col": 8,1482// CHECK-NEXT: "tokLen": 11483// CHECK-NEXT: },1484// CHECK-NEXT: "range": {1485// CHECK-NEXT: "begin": {1486// CHECK-NEXT: "offset": {{[0-9]+}},1487// CHECK-NEXT: "line": 33,1488// CHECK-NEXT: "col": 1,1489// CHECK-NEXT: "tokLen": 81490// CHECK-NEXT: },1491// CHECK-NEXT: "end": {1492// CHECK-NEXT: "offset": {{[0-9]+}},1493// CHECK-NEXT: "line": 34,1494// CHECK-NEXT: "col": 16,1495// CHECK-NEXT: "tokLen": 11496// CHECK-NEXT: }1497// CHECK-NEXT: },1498// CHECK-NEXT: "name": "R",1499// CHECK-NEXT: "tagUsed": "struct",1500// CHECK-NEXT: "completeDefinition": true,1501// CHECK-NEXT: "definitionData": {1502// CHECK-NEXT: "canConstDefaultInit": true,1503// CHECK-NEXT: "canPassInRegisters": true,1504// CHECK-NEXT: "copyAssign": {1505// CHECK-NEXT: "hasConstParam": true,1506// CHECK-NEXT: "implicitHasConstParam": true,1507// CHECK-NEXT: "needsImplicit": true,1508// CHECK-NEXT: "simple": true,1509// CHECK-NEXT: "trivial": true1510// CHECK-NEXT: },1511// CHECK-NEXT: "copyCtor": {1512// CHECK-NEXT: "hasConstParam": true,1513// CHECK-NEXT: "implicitHasConstParam": true,1514// CHECK-NEXT: "needsImplicit": true,1515// CHECK-NEXT: "simple": true,1516// CHECK-NEXT: "trivial": true1517// CHECK-NEXT: },1518// CHECK-NEXT: "defaultCtor": {1519// CHECK-NEXT: "defaultedIsConstexpr": true,1520// CHECK-NEXT: "exists": true,1521// CHECK-NEXT: "isConstexpr": true,1522// CHECK-NEXT: "needsImplicit": true,1523// CHECK-NEXT: "trivial": true1524// CHECK-NEXT: },1525// CHECK-NEXT: "dtor": {1526// CHECK-NEXT: "irrelevant": true,1527// CHECK-NEXT: "needsImplicit": true,1528// CHECK-NEXT: "simple": true,1529// CHECK-NEXT: "trivial": true1530// CHECK-NEXT: },1531// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,1532// CHECK-NEXT: "isAggregate": true,1533// CHECK-NEXT: "isEmpty": true,1534// CHECK-NEXT: "isLiteral": true,1535// CHECK-NEXT: "isPOD": true,1536// CHECK-NEXT: "isStandardLayout": true,1537// CHECK-NEXT: "isTrivial": true,1538// CHECK-NEXT: "isTriviallyCopyable": true,1539// CHECK-NEXT: "moveAssign": {1540// CHECK-NEXT: "exists": true,1541// CHECK-NEXT: "needsImplicit": true,1542// CHECK-NEXT: "simple": true,1543// CHECK-NEXT: "trivial": true1544// CHECK-NEXT: },1545// CHECK-NEXT: "moveCtor": {1546// CHECK-NEXT: "exists": true,1547// CHECK-NEXT: "needsImplicit": true,1548// CHECK-NEXT: "simple": true,1549// CHECK-NEXT: "trivial": true1550// CHECK-NEXT: }1551// CHECK-NEXT: },1552// CHECK-NEXT: "inner": [1553// CHECK-NEXT: {1554// CHECK-NEXT: "kind": "TemplateArgument",1555// CHECK-NEXT: "type": {1556// CHECK-NEXT: "qualType": "int"1557// CHECK-NEXT: },1558// CHECK-NEXT: "inner": [1559// CHECK-NEXT: {1560// CHECK-NEXT: "id": "0x{{.*}}",1561// CHECK-NEXT: "kind": "BuiltinType",1562// CHECK-NEXT: "type": {1563// CHECK-NEXT: "qualType": "int"1564// CHECK-NEXT: }1565// CHECK-NEXT: }1566// CHECK-NEXT: ]1567// CHECK-NEXT: },1568// CHECK-NEXT: {1569// CHECK-NEXT: "id": "0x{{.*}}",1570// CHECK-NEXT: "kind": "CXXRecordDecl",1571// CHECK-NEXT: "loc": {1572// CHECK-NEXT: "offset": {{[0-9]+}},1573// CHECK-NEXT: "col": 8,1574// CHECK-NEXT: "tokLen": 11575// CHECK-NEXT: },1576// CHECK-NEXT: "range": {1577// CHECK-NEXT: "begin": {1578// CHECK-NEXT: "offset": {{[0-9]+}},1579// CHECK-NEXT: "col": 1,1580// CHECK-NEXT: "tokLen": 61581// CHECK-NEXT: },1582// CHECK-NEXT: "end": {1583// CHECK-NEXT: "offset": {{[0-9]+}},1584// CHECK-NEXT: "col": 8,1585// CHECK-NEXT: "tokLen": 11586// CHECK-NEXT: }1587// CHECK-NEXT: },1588// CHECK-NEXT: "isImplicit": true,1589// CHECK-NEXT: "name": "R",1590// CHECK-NEXT: "tagUsed": "struct"1591// CHECK-NEXT: }1592// CHECK-NEXT: ]1593// CHECK-NEXT: },1594// CHECK-NEXT: {1595// CHECK-NEXT: "id": "0x{{.*}}",1596// CHECK-NEXT: "kind": "ClassTemplateDecl",1597// CHECK-NEXT: "loc": {1598// CHECK-NEXT: "offset": {{[0-9]+}},1599// CHECK-NEXT: "line": 37,1600// CHECK-NEXT: "col": 8,1601// CHECK-NEXT: "tokLen": 11602// CHECK-NEXT: },1603// CHECK-NEXT: "range": {1604// CHECK-NEXT: "begin": {1605// CHECK-NEXT: "offset": {{[0-9]+}},1606// CHECK-NEXT: "line": 36,1607// CHECK-NEXT: "col": 1,1608// CHECK-NEXT: "tokLen": 81609// CHECK-NEXT: },1610// CHECK-NEXT: "end": {1611// CHECK-NEXT: "offset": {{[0-9]+}},1612// CHECK-NEXT: "line": 37,1613// CHECK-NEXT: "col": 11,1614// CHECK-NEXT: "tokLen": 11615// CHECK-NEXT: }1616// CHECK-NEXT: },1617// CHECK-NEXT: "name": "S",1618// CHECK-NEXT: "inner": [1619// CHECK-NEXT: {1620// CHECK-NEXT: "id": "0x{{.*}}",1621// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1622// CHECK-NEXT: "loc": {1623// CHECK-NEXT: "offset": {{[0-9]+}},1624// CHECK-NEXT: "line": 36,1625// CHECK-NEXT: "col": 20,1626// CHECK-NEXT: "tokLen": 21627// CHECK-NEXT: },1628// CHECK-NEXT: "range": {1629// CHECK-NEXT: "begin": {1630// CHECK-NEXT: "offset": {{[0-9]+}},1631// CHECK-NEXT: "col": 11,1632// CHECK-NEXT: "tokLen": 81633// CHECK-NEXT: },1634// CHECK-NEXT: "end": {1635// CHECK-NEXT: "offset": {{[0-9]+}},1636// CHECK-NEXT: "col": 20,1637// CHECK-NEXT: "tokLen": 21638// CHECK-NEXT: }1639// CHECK-NEXT: },1640// CHECK-NEXT: "name": "Ty",1641// CHECK-NEXT: "tagUsed": "typename",1642// CHECK-NEXT: "depth": 0,1643// CHECK-NEXT: "index": 01644// CHECK-NEXT: },1645// CHECK-NEXT: {1646// CHECK-NEXT: "id": "0x{{.*}}",1647// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1648// CHECK-NEXT: "loc": {1649// CHECK-NEXT: "offset": {{[0-9]+}},1650// CHECK-NEXT: "col": 30,1651// CHECK-NEXT: "tokLen": 21652// CHECK-NEXT: },1653// CHECK-NEXT: "range": {1654// CHECK-NEXT: "begin": {1655// CHECK-NEXT: "offset": {{[0-9]+}},1656// CHECK-NEXT: "col": 24,1657// CHECK-NEXT: "tokLen": 51658// CHECK-NEXT: },1659// CHECK-NEXT: "end": {1660// CHECK-NEXT: "offset": {{[0-9]+}},1661// CHECK-NEXT: "col": 30,1662// CHECK-NEXT: "tokLen": 21663// CHECK-NEXT: }1664// CHECK-NEXT: },1665// CHECK-NEXT: "name": "Uy",1666// CHECK-NEXT: "tagUsed": "class",1667// CHECK-NEXT: "depth": 0,1668// CHECK-NEXT: "index": 11669// CHECK-NEXT: },1670// CHECK-NEXT: {1671// CHECK-NEXT: "id": "0x{{.*}}",1672// CHECK-NEXT: "kind": "CXXRecordDecl",1673// CHECK-NEXT: "loc": {1674// CHECK-NEXT: "offset": {{[0-9]+}},1675// CHECK-NEXT: "line": 37,1676// CHECK-NEXT: "col": 8,1677// CHECK-NEXT: "tokLen": 11678// CHECK-NEXT: },1679// CHECK-NEXT: "range": {1680// CHECK-NEXT: "begin": {1681// CHECK-NEXT: "offset": {{[0-9]+}},1682// CHECK-NEXT: "col": 1,1683// CHECK-NEXT: "tokLen": 61684// CHECK-NEXT: },1685// CHECK-NEXT: "end": {1686// CHECK-NEXT: "offset": {{[0-9]+}},1687// CHECK-NEXT: "col": 11,1688// CHECK-NEXT: "tokLen": 11689// CHECK-NEXT: }1690// CHECK-NEXT: },1691// CHECK-NEXT: "name": "S",1692// CHECK-NEXT: "tagUsed": "struct",1693// CHECK-NEXT: "completeDefinition": true,1694// CHECK-NEXT: "definitionData": {1695// CHECK-NEXT: "canConstDefaultInit": true,1696// CHECK-NEXT: "copyAssign": {1697// CHECK-NEXT: "hasConstParam": true,1698// CHECK-NEXT: "implicitHasConstParam": true,1699// CHECK-NEXT: "needsImplicit": true,1700// CHECK-NEXT: "simple": true,1701// CHECK-NEXT: "trivial": true1702// CHECK-NEXT: },1703// CHECK-NEXT: "copyCtor": {1704// CHECK-NEXT: "hasConstParam": true,1705// CHECK-NEXT: "implicitHasConstParam": true,1706// CHECK-NEXT: "needsImplicit": true,1707// CHECK-NEXT: "simple": true,1708// CHECK-NEXT: "trivial": true1709// CHECK-NEXT: },1710// CHECK-NEXT: "defaultCtor": {1711// CHECK-NEXT: "defaultedIsConstexpr": true,1712// CHECK-NEXT: "exists": true,1713// CHECK-NEXT: "isConstexpr": true,1714// CHECK-NEXT: "needsImplicit": true,1715// CHECK-NEXT: "trivial": true1716// CHECK-NEXT: },1717// CHECK-NEXT: "dtor": {1718// CHECK-NEXT: "irrelevant": true,1719// CHECK-NEXT: "needsImplicit": true,1720// CHECK-NEXT: "simple": true,1721// CHECK-NEXT: "trivial": true1722// CHECK-NEXT: },1723// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,1724// CHECK-NEXT: "isAggregate": true,1725// CHECK-NEXT: "isEmpty": true,1726// CHECK-NEXT: "isLiteral": true,1727// CHECK-NEXT: "isPOD": true,1728// CHECK-NEXT: "isStandardLayout": true,1729// CHECK-NEXT: "isTrivial": true,1730// CHECK-NEXT: "isTriviallyCopyable": true,1731// CHECK-NEXT: "moveAssign": {1732// CHECK-NEXT: "exists": true,1733// CHECK-NEXT: "needsImplicit": true,1734// CHECK-NEXT: "simple": true,1735// CHECK-NEXT: "trivial": true1736// CHECK-NEXT: },1737// CHECK-NEXT: "moveCtor": {1738// CHECK-NEXT: "exists": true,1739// CHECK-NEXT: "needsImplicit": true,1740// CHECK-NEXT: "simple": true,1741// CHECK-NEXT: "trivial": true1742// CHECK-NEXT: }1743// CHECK-NEXT: },1744// CHECK-NEXT: "inner": [1745// CHECK-NEXT: {1746// CHECK-NEXT: "id": "0x{{.*}}",1747// CHECK-NEXT: "kind": "CXXRecordDecl",1748// CHECK-NEXT: "loc": {1749// CHECK-NEXT: "offset": {{[0-9]+}},1750// CHECK-NEXT: "col": 8,1751// CHECK-NEXT: "tokLen": 11752// CHECK-NEXT: },1753// CHECK-NEXT: "range": {1754// CHECK-NEXT: "begin": {1755// CHECK-NEXT: "offset": {{[0-9]+}},1756// CHECK-NEXT: "col": 1,1757// CHECK-NEXT: "tokLen": 61758// CHECK-NEXT: },1759// CHECK-NEXT: "end": {1760// CHECK-NEXT: "offset": {{[0-9]+}},1761// CHECK-NEXT: "col": 8,1762// CHECK-NEXT: "tokLen": 11763// CHECK-NEXT: }1764// CHECK-NEXT: },1765// CHECK-NEXT: "isImplicit": true,1766// CHECK-NEXT: "name": "S",1767// CHECK-NEXT: "tagUsed": "struct"1768// CHECK-NEXT: }1769// CHECK-NEXT: ]1770// CHECK-NEXT: }1771// CHECK-NEXT: ]1772// CHECK-NEXT: },1773// CHECK-NEXT: {1774// CHECK-NEXT: "id": "0x{{.*}}",1775// CHECK-NEXT: "kind": "ClassTemplatePartialSpecializationDecl",1776// CHECK-NEXT: "loc": {1777// CHECK-NEXT: "offset": {{[0-9]+}},1778// CHECK-NEXT: "line": 40,1779// CHECK-NEXT: "col": 8,1780// CHECK-NEXT: "tokLen": 11781// CHECK-NEXT: },1782// CHECK-NEXT: "range": {1783// CHECK-NEXT: "begin": {1784// CHECK-NEXT: "offset": {{[0-9]+}},1785// CHECK-NEXT: "line": 39,1786// CHECK-NEXT: "col": 1,1787// CHECK-NEXT: "tokLen": 81788// CHECK-NEXT: },1789// CHECK-NEXT: "end": {1790// CHECK-NEXT: "offset": {{[0-9]+}},1791// CHECK-NEXT: "line": 40,1792// CHECK-NEXT: "col": 20,1793// CHECK-NEXT: "tokLen": 11794// CHECK-NEXT: }1795// CHECK-NEXT: },1796// CHECK-NEXT: "name": "S",1797// CHECK-NEXT: "tagUsed": "struct",1798// CHECK-NEXT: "completeDefinition": true,1799// CHECK-NEXT: "definitionData": {1800// CHECK-NEXT: "canConstDefaultInit": true,1801// CHECK-NEXT: "copyAssign": {1802// CHECK-NEXT: "hasConstParam": true,1803// CHECK-NEXT: "implicitHasConstParam": true,1804// CHECK-NEXT: "needsImplicit": true,1805// CHECK-NEXT: "simple": true,1806// CHECK-NEXT: "trivial": true1807// CHECK-NEXT: },1808// CHECK-NEXT: "copyCtor": {1809// CHECK-NEXT: "hasConstParam": true,1810// CHECK-NEXT: "implicitHasConstParam": true,1811// CHECK-NEXT: "needsImplicit": true,1812// CHECK-NEXT: "simple": true,1813// CHECK-NEXT: "trivial": true1814// CHECK-NEXT: },1815// CHECK-NEXT: "defaultCtor": {1816// CHECK-NEXT: "defaultedIsConstexpr": true,1817// CHECK-NEXT: "exists": true,1818// CHECK-NEXT: "isConstexpr": true,1819// CHECK-NEXT: "needsImplicit": true,1820// CHECK-NEXT: "trivial": true1821// CHECK-NEXT: },1822// CHECK-NEXT: "dtor": {1823// CHECK-NEXT: "irrelevant": true,1824// CHECK-NEXT: "needsImplicit": true,1825// CHECK-NEXT: "simple": true,1826// CHECK-NEXT: "trivial": true1827// CHECK-NEXT: },1828// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,1829// CHECK-NEXT: "isAggregate": true,1830// CHECK-NEXT: "isEmpty": true,1831// CHECK-NEXT: "isLiteral": true,1832// CHECK-NEXT: "isPOD": true,1833// CHECK-NEXT: "isStandardLayout": true,1834// CHECK-NEXT: "isTrivial": true,1835// CHECK-NEXT: "isTriviallyCopyable": true,1836// CHECK-NEXT: "moveAssign": {1837// CHECK-NEXT: "exists": true,1838// CHECK-NEXT: "needsImplicit": true,1839// CHECK-NEXT: "simple": true,1840// CHECK-NEXT: "trivial": true1841// CHECK-NEXT: },1842// CHECK-NEXT: "moveCtor": {1843// CHECK-NEXT: "exists": true,1844// CHECK-NEXT: "needsImplicit": true,1845// CHECK-NEXT: "simple": true,1846// CHECK-NEXT: "trivial": true1847// CHECK-NEXT: }1848// CHECK-NEXT: },1849// CHECK-NEXT: "inner": [1850// CHECK-NEXT: {1851// CHECK-NEXT: "kind": "TemplateArgument",1852// CHECK-NEXT: "type": {1853// CHECK-NEXT: "qualType": "type-parameter-0-0"1854// CHECK-NEXT: },1855// CHECK-NEXT: "inner": [1856// CHECK-NEXT: {1857// CHECK-NEXT: "id": "0x{{.*}}",1858// CHECK-NEXT: "kind": "TemplateTypeParmType",1859// CHECK-NEXT: "type": {1860// CHECK-NEXT: "qualType": "type-parameter-0-0"1861// CHECK-NEXT: },1862// CHECK-NEXT: "isDependent": true,1863// CHECK-NEXT: "isInstantiationDependent": true,1864// CHECK-NEXT: "depth": 0,1865// CHECK-NEXT: "index": 0,1866// CHECK-NEXT: "decl": {1867// CHECK-NEXT: "id": "0x0"1868// CHECK-NEXT: }1869// CHECK-NEXT: }1870// CHECK-NEXT: ]1871// CHECK-NEXT: },1872// CHECK-NEXT: {1873// CHECK-NEXT: "kind": "TemplateArgument",1874// CHECK-NEXT: "type": {1875// CHECK-NEXT: "qualType": "int"1876// CHECK-NEXT: },1877// CHECK-NEXT: "inner": [1878// CHECK-NEXT: {1879// CHECK-NEXT: "id": "0x{{.*}}",1880// CHECK-NEXT: "kind": "BuiltinType",1881// CHECK-NEXT: "type": {1882// CHECK-NEXT: "qualType": "int"1883// CHECK-NEXT: }1884// CHECK-NEXT: }1885// CHECK-NEXT: ]1886// CHECK-NEXT: },1887// CHECK-NEXT: {1888// CHECK-NEXT: "id": "0x{{.*}}",1889// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1890// CHECK-NEXT: "loc": {1891// CHECK-NEXT: "offset": {{[0-9]+}},1892// CHECK-NEXT: "line": 39,1893// CHECK-NEXT: "col": 20,1894// CHECK-NEXT: "tokLen": 21895// CHECK-NEXT: },1896// CHECK-NEXT: "range": {1897// CHECK-NEXT: "begin": {1898// CHECK-NEXT: "offset": {{[0-9]+}},1899// CHECK-NEXT: "col": 11,1900// CHECK-NEXT: "tokLen": 81901// CHECK-NEXT: },1902// CHECK-NEXT: "end": {1903// CHECK-NEXT: "offset": {{[0-9]+}},1904// CHECK-NEXT: "col": 20,1905// CHECK-NEXT: "tokLen": 21906// CHECK-NEXT: }1907// CHECK-NEXT: },1908// CHECK-NEXT: "isReferenced": true,1909// CHECK-NEXT: "name": "Ty",1910// CHECK-NEXT: "tagUsed": "typename",1911// CHECK-NEXT: "depth": 0,1912// CHECK-NEXT: "index": 01913// CHECK-NEXT: },1914// CHECK-NEXT: {1915// CHECK-NEXT: "id": "0x{{.*}}",1916// CHECK-NEXT: "kind": "CXXRecordDecl",1917// CHECK-NEXT: "loc": {1918// CHECK-NEXT: "offset": {{[0-9]+}},1919// CHECK-NEXT: "line": 40,1920// CHECK-NEXT: "col": 8,1921// CHECK-NEXT: "tokLen": 11922// CHECK-NEXT: },1923// CHECK-NEXT: "range": {1924// CHECK-NEXT: "begin": {1925// CHECK-NEXT: "offset": {{[0-9]+}},1926// CHECK-NEXT: "col": 1,1927// CHECK-NEXT: "tokLen": 61928// CHECK-NEXT: },1929// CHECK-NEXT: "end": {1930// CHECK-NEXT: "offset": {{[0-9]+}},1931// CHECK-NEXT: "col": 8,1932// CHECK-NEXT: "tokLen": 11933// CHECK-NEXT: }1934// CHECK-NEXT: },1935// CHECK-NEXT: "isImplicit": true,1936// CHECK-NEXT: "name": "S",1937// CHECK-NEXT: "tagUsed": "struct"1938// CHECK-NEXT: }1939// CHECK-NEXT: ]1940// CHECK-NEXT: },1941// CHECK-NEXT: {1942// CHECK-NEXT: "id": "0x{{.*}}",1943// CHECK-NEXT: "kind": "ClassTemplateDecl",1944// CHECK-NEXT: "loc": {1945// CHECK-NEXT: "offset": {{[0-9]+}},1946// CHECK-NEXT: "line": 43,1947// CHECK-NEXT: "col": 8,1948// CHECK-NEXT: "tokLen": 11949// CHECK-NEXT: },1950// CHECK-NEXT: "range": {1951// CHECK-NEXT: "begin": {1952// CHECK-NEXT: "offset": {{[0-9]+}},1953// CHECK-NEXT: "line": 42,1954// CHECK-NEXT: "col": 1,1955// CHECK-NEXT: "tokLen": 81956// CHECK-NEXT: },1957// CHECK-NEXT: "end": {1958// CHECK-NEXT: "offset": {{[0-9]+}},1959// CHECK-NEXT: "line": 43,1960// CHECK-NEXT: "col": 11,1961// CHECK-NEXT: "tokLen": 11962// CHECK-NEXT: }1963// CHECK-NEXT: },1964// CHECK-NEXT: "name": "T",1965// CHECK-NEXT: "inner": [1966// CHECK-NEXT: {1967// CHECK-NEXT: "id": "0x{{.*}}",1968// CHECK-NEXT: "kind": "NonTypeTemplateParmDecl",1969// CHECK-NEXT: "loc": {1970// CHECK-NEXT: "offset": {{[0-9]+}},1971// CHECK-NEXT: "line": 42,1972// CHECK-NEXT: "col": 15,1973// CHECK-NEXT: "tokLen": 11974// CHECK-NEXT: },1975// CHECK-NEXT: "range": {1976// CHECK-NEXT: "begin": {1977// CHECK-NEXT: "offset": {{[0-9]+}},1978// CHECK-NEXT: "col": 11,1979// CHECK-NEXT: "tokLen": 41980// CHECK-NEXT: },1981// CHECK-NEXT: "end": {1982// CHECK-NEXT: "offset": {{[0-9]+}},1983// CHECK-NEXT: "col": 11,1984// CHECK-NEXT: "tokLen": 41985// CHECK-NEXT: }1986// CHECK-NEXT: },1987// CHECK-NEXT: "type": {1988// CHECK-NEXT: "qualType": "auto"1989// CHECK-NEXT: },1990// CHECK-NEXT: "depth": 0,1991// CHECK-NEXT: "index": 01992// CHECK-NEXT: },1993// CHECK-NEXT: {1994// CHECK-NEXT: "id": "0x{{.*}}",1995// CHECK-NEXT: "kind": "CXXRecordDecl",1996// CHECK-NEXT: "loc": {1997// CHECK-NEXT: "offset": {{[0-9]+}},1998// CHECK-NEXT: "line": 43,1999// CHECK-NEXT: "col": 8,2000// CHECK-NEXT: "tokLen": 12001// CHECK-NEXT: },2002// CHECK-NEXT: "range": {2003// CHECK-NEXT: "begin": {2004// CHECK-NEXT: "offset": {{[0-9]+}},2005// CHECK-NEXT: "col": 1,2006// CHECK-NEXT: "tokLen": 62007// CHECK-NEXT: },2008// CHECK-NEXT: "end": {2009// CHECK-NEXT: "offset": {{[0-9]+}},2010// CHECK-NEXT: "col": 11,2011// CHECK-NEXT: "tokLen": 12012// CHECK-NEXT: }2013// CHECK-NEXT: },2014// CHECK-NEXT: "name": "T",2015// CHECK-NEXT: "tagUsed": "struct",2016// CHECK-NEXT: "completeDefinition": true,2017// CHECK-NEXT: "definitionData": {2018// CHECK-NEXT: "canConstDefaultInit": true,2019// CHECK-NEXT: "copyAssign": {2020// CHECK-NEXT: "hasConstParam": true,2021// CHECK-NEXT: "implicitHasConstParam": true,2022// CHECK-NEXT: "needsImplicit": true,2023// CHECK-NEXT: "simple": true,2024// CHECK-NEXT: "trivial": true2025// CHECK-NEXT: },2026// CHECK-NEXT: "copyCtor": {2027// CHECK-NEXT: "hasConstParam": true,2028// CHECK-NEXT: "implicitHasConstParam": true,2029// CHECK-NEXT: "needsImplicit": true,2030// CHECK-NEXT: "simple": true,2031// CHECK-NEXT: "trivial": true2032// CHECK-NEXT: },2033// CHECK-NEXT: "defaultCtor": {2034// CHECK-NEXT: "defaultedIsConstexpr": true,2035// CHECK-NEXT: "exists": true,2036// CHECK-NEXT: "isConstexpr": true,2037// CHECK-NEXT: "needsImplicit": true,2038// CHECK-NEXT: "trivial": true2039// CHECK-NEXT: },2040// CHECK-NEXT: "dtor": {2041// CHECK-NEXT: "irrelevant": true,2042// CHECK-NEXT: "needsImplicit": true,2043// CHECK-NEXT: "simple": true,2044// CHECK-NEXT: "trivial": true2045// CHECK-NEXT: },2046// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,2047// CHECK-NEXT: "isAggregate": true,2048// CHECK-NEXT: "isEmpty": true,2049// CHECK-NEXT: "isLiteral": true,2050// CHECK-NEXT: "isPOD": true,2051// CHECK-NEXT: "isStandardLayout": true,2052// CHECK-NEXT: "isTrivial": true,2053// CHECK-NEXT: "isTriviallyCopyable": true,2054// CHECK-NEXT: "moveAssign": {2055// CHECK-NEXT: "exists": true,2056// CHECK-NEXT: "needsImplicit": true,2057// CHECK-NEXT: "simple": true,2058// CHECK-NEXT: "trivial": true2059// CHECK-NEXT: },2060// CHECK-NEXT: "moveCtor": {2061// CHECK-NEXT: "exists": true,2062// CHECK-NEXT: "needsImplicit": true,2063// CHECK-NEXT: "simple": true,2064// CHECK-NEXT: "trivial": true2065// CHECK-NEXT: }2066// CHECK-NEXT: },2067// CHECK-NEXT: "inner": [2068// CHECK-NEXT: {2069// CHECK-NEXT: "id": "0x{{.*}}",2070// CHECK-NEXT: "kind": "CXXRecordDecl",2071// CHECK-NEXT: "loc": {2072// CHECK-NEXT: "offset": {{[0-9]+}},2073// CHECK-NEXT: "col": 8,2074// CHECK-NEXT: "tokLen": 12075// CHECK-NEXT: },2076// CHECK-NEXT: "range": {2077// CHECK-NEXT: "begin": {2078// CHECK-NEXT: "offset": {{[0-9]+}},2079// CHECK-NEXT: "col": 1,2080// CHECK-NEXT: "tokLen": 62081// CHECK-NEXT: },2082// CHECK-NEXT: "end": {2083// CHECK-NEXT: "offset": {{[0-9]+}},2084// CHECK-NEXT: "col": 8,2085// CHECK-NEXT: "tokLen": 12086// CHECK-NEXT: }2087// CHECK-NEXT: },2088// CHECK-NEXT: "isImplicit": true,2089// CHECK-NEXT: "name": "T",2090// CHECK-NEXT: "tagUsed": "struct"2091// CHECK-NEXT: }2092// CHECK-NEXT: ]2093// CHECK-NEXT: }2094// CHECK-NEXT: ]2095// CHECK-NEXT: },2096// CHECK-NEXT: {2097// CHECK-NEXT: "id": "0x{{.*}}",2098// CHECK-NEXT: "kind": "ClassTemplateDecl",2099// CHECK-NEXT: "loc": {2100// CHECK-NEXT: "offset": {{[0-9]+}},2101// CHECK-NEXT: "line": 46,2102// CHECK-NEXT: "col": 8,2103// CHECK-NEXT: "tokLen": 12104// CHECK-NEXT: },2105// CHECK-NEXT: "range": {2106// CHECK-NEXT: "begin": {2107// CHECK-NEXT: "offset": {{[0-9]+}},2108// CHECK-NEXT: "line": 45,2109// CHECK-NEXT: "col": 1,2110// CHECK-NEXT: "tokLen": 82111// CHECK-NEXT: },2112// CHECK-NEXT: "end": {2113// CHECK-NEXT: "offset": {{[0-9]+}},2114// CHECK-NEXT: "line": 46,2115// CHECK-NEXT: "col": 11,2116// CHECK-NEXT: "tokLen": 12117// CHECK-NEXT: }2118// CHECK-NEXT: },2119// CHECK-NEXT: "name": "U",2120// CHECK-NEXT: "inner": [2121// CHECK-NEXT: {2122// CHECK-NEXT: "id": "0x{{.*}}",2123// CHECK-NEXT: "kind": "NonTypeTemplateParmDecl",2124// CHECK-NEXT: "loc": {2125// CHECK-NEXT: "offset": {{[0-9]+}},2126// CHECK-NEXT: "line": 45,2127// CHECK-NEXT: "col": 25,2128// CHECK-NEXT: "tokLen": 12129// CHECK-NEXT: },2130// CHECK-NEXT: "range": {2131// CHECK-NEXT: "begin": {2132// CHECK-NEXT: "offset": {{[0-9]+}},2133// CHECK-NEXT: "col": 11,2134// CHECK-NEXT: "tokLen": 82135// CHECK-NEXT: },2136// CHECK-NEXT: "end": {2137// CHECK-NEXT: "offset": {{[0-9]+}},2138// CHECK-NEXT: "col": 24,2139// CHECK-NEXT: "tokLen": 12140// CHECK-NEXT: }2141// CHECK-NEXT: },2142// CHECK-NEXT: "type": {2143// CHECK-NEXT: "qualType": "decltype(auto)"2144// CHECK-NEXT: },2145// CHECK-NEXT: "depth": 0,2146// CHECK-NEXT: "index": 02147// CHECK-NEXT: },2148// CHECK-NEXT: {2149// CHECK-NEXT: "id": "0x{{.*}}",2150// CHECK-NEXT: "kind": "CXXRecordDecl",2151// CHECK-NEXT: "loc": {2152// CHECK-NEXT: "offset": {{[0-9]+}},2153// CHECK-NEXT: "line": 46,2154// CHECK-NEXT: "col": 8,2155// CHECK-NEXT: "tokLen": 12156// CHECK-NEXT: },2157// CHECK-NEXT: "range": {2158// CHECK-NEXT: "begin": {2159// CHECK-NEXT: "offset": {{[0-9]+}},2160// CHECK-NEXT: "col": 1,2161// CHECK-NEXT: "tokLen": 62162// CHECK-NEXT: },2163// CHECK-NEXT: "end": {2164// CHECK-NEXT: "offset": {{[0-9]+}},2165// CHECK-NEXT: "col": 11,2166// CHECK-NEXT: "tokLen": 12167// CHECK-NEXT: }2168// CHECK-NEXT: },2169// CHECK-NEXT: "name": "U",2170// CHECK-NEXT: "tagUsed": "struct",2171// CHECK-NEXT: "completeDefinition": true,2172// CHECK-NEXT: "definitionData": {2173// CHECK-NEXT: "canConstDefaultInit": true,2174// CHECK-NEXT: "copyAssign": {2175// CHECK-NEXT: "hasConstParam": true,2176// CHECK-NEXT: "implicitHasConstParam": true,2177// CHECK-NEXT: "needsImplicit": true,2178// CHECK-NEXT: "simple": true,2179// CHECK-NEXT: "trivial": true2180// CHECK-NEXT: },2181// CHECK-NEXT: "copyCtor": {2182// CHECK-NEXT: "hasConstParam": true,2183// CHECK-NEXT: "implicitHasConstParam": true,2184// CHECK-NEXT: "needsImplicit": true,2185// CHECK-NEXT: "simple": true,2186// CHECK-NEXT: "trivial": true2187// CHECK-NEXT: },2188// CHECK-NEXT: "defaultCtor": {2189// CHECK-NEXT: "defaultedIsConstexpr": true,2190// CHECK-NEXT: "exists": true,2191// CHECK-NEXT: "isConstexpr": true,2192// CHECK-NEXT: "needsImplicit": true,2193// CHECK-NEXT: "trivial": true2194// CHECK-NEXT: },2195// CHECK-NEXT: "dtor": {2196// CHECK-NEXT: "irrelevant": true,2197// CHECK-NEXT: "needsImplicit": true,2198// CHECK-NEXT: "simple": true,2199// CHECK-NEXT: "trivial": true2200// CHECK-NEXT: },2201// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,2202// CHECK-NEXT: "isAggregate": true,2203// CHECK-NEXT: "isEmpty": true,2204// CHECK-NEXT: "isLiteral": true,2205// CHECK-NEXT: "isPOD": true,2206// CHECK-NEXT: "isStandardLayout": true,2207// CHECK-NEXT: "isTrivial": true,2208// CHECK-NEXT: "isTriviallyCopyable": true,2209// CHECK-NEXT: "moveAssign": {2210// CHECK-NEXT: "exists": true,2211// CHECK-NEXT: "needsImplicit": true,2212// CHECK-NEXT: "simple": true,2213// CHECK-NEXT: "trivial": true2214// CHECK-NEXT: },2215// CHECK-NEXT: "moveCtor": {2216// CHECK-NEXT: "exists": true,2217// CHECK-NEXT: "needsImplicit": true,2218// CHECK-NEXT: "simple": true,2219// CHECK-NEXT: "trivial": true2220// CHECK-NEXT: }2221// CHECK-NEXT: },2222// CHECK-NEXT: "inner": [2223// CHECK-NEXT: {2224// CHECK-NEXT: "id": "0x{{.*}}",2225// CHECK-NEXT: "kind": "CXXRecordDecl",2226// CHECK-NEXT: "loc": {2227// CHECK-NEXT: "offset": {{[0-9]+}},2228// CHECK-NEXT: "col": 8,2229// CHECK-NEXT: "tokLen": 12230// CHECK-NEXT: },2231// CHECK-NEXT: "range": {2232// CHECK-NEXT: "begin": {2233// CHECK-NEXT: "offset": {{[0-9]+}},2234// CHECK-NEXT: "col": 1,2235// CHECK-NEXT: "tokLen": 62236// CHECK-NEXT: },2237// CHECK-NEXT: "end": {2238// CHECK-NEXT: "offset": {{[0-9]+}},2239// CHECK-NEXT: "col": 8,2240// CHECK-NEXT: "tokLen": 12241// CHECK-NEXT: }2242// CHECK-NEXT: },2243// CHECK-NEXT: "isImplicit": true,2244// CHECK-NEXT: "name": "U",2245// CHECK-NEXT: "tagUsed": "struct"2246// CHECK-NEXT: }2247// CHECK-NEXT: ]2248// CHECK-NEXT: }2249// CHECK-NEXT: ]2250// CHECK-NEXT: },2251// CHECK-NEXT: {2252// CHECK-NEXT: "id": "0x{{.*}}",2253// CHECK-NEXT: "kind": "ClassTemplateDecl",2254// CHECK-NEXT: "loc": {2255// CHECK-NEXT: "offset": {{[0-9]+}},2256// CHECK-NEXT: "line": 49,2257// CHECK-NEXT: "col": 8,2258// CHECK-NEXT: "tokLen": 12259// CHECK-NEXT: },2260// CHECK-NEXT: "range": {2261// CHECK-NEXT: "begin": {2262// CHECK-NEXT: "offset": {{[0-9]+}},2263// CHECK-NEXT: "line": 48,2264// CHECK-NEXT: "col": 1,2265// CHECK-NEXT: "tokLen": 82266// CHECK-NEXT: },2267// CHECK-NEXT: "end": {2268// CHECK-NEXT: "offset": {{[0-9]+}},2269// CHECK-NEXT: "line": 52,2270// CHECK-NEXT: "col": 1,2271// CHECK-NEXT: "tokLen": 12272// CHECK-NEXT: }2273// CHECK-NEXT: },2274// CHECK-NEXT: "name": "V",2275// CHECK-NEXT: "inner": [2276// CHECK-NEXT: {2277// CHECK-NEXT: "id": "0x{{.*}}",2278// CHECK-NEXT: "kind": "TemplateTypeParmDecl",2279// CHECK-NEXT: "loc": {2280// CHECK-NEXT: "offset": {{[0-9]+}},2281// CHECK-NEXT: "line": 48,2282// CHECK-NEXT: "col": 20,2283// CHECK-NEXT: "tokLen": 22284// CHECK-NEXT: },2285// CHECK-NEXT: "range": {2286// CHECK-NEXT: "begin": {2287// CHECK-NEXT: "offset": {{[0-9]+}},2288// CHECK-NEXT: "col": 11,2289// CHECK-NEXT: "tokLen": 82290// CHECK-NEXT: },2291// CHECK-NEXT: "end": {2292// CHECK-NEXT: "offset": {{[0-9]+}},2293// CHECK-NEXT: "col": 20,2294// CHECK-NEXT: "tokLen": 22295// CHECK-NEXT: }2296// CHECK-NEXT: },2297// CHECK-NEXT: "name": "Ty",2298// CHECK-NEXT: "tagUsed": "typename",2299// CHECK-NEXT: "depth": 0,2300// CHECK-NEXT: "index": 02301// CHECK-NEXT: },2302// CHECK-NEXT: {2303// CHECK-NEXT: "id": "0x{{.*}}",2304// CHECK-NEXT: "kind": "CXXRecordDecl",2305// CHECK-NEXT: "loc": {2306// CHECK-NEXT: "offset": {{[0-9]+}},2307// CHECK-NEXT: "line": 49,2308// CHECK-NEXT: "col": 8,2309// CHECK-NEXT: "tokLen": 12310// CHECK-NEXT: },2311// CHECK-NEXT: "range": {2312// CHECK-NEXT: "begin": {2313// CHECK-NEXT: "offset": {{[0-9]+}},2314// CHECK-NEXT: "col": 1,2315// CHECK-NEXT: "tokLen": 62316// CHECK-NEXT: },2317// CHECK-NEXT: "end": {2318// CHECK-NEXT: "offset": {{[0-9]+}},2319// CHECK-NEXT: "line": 52,2320// CHECK-NEXT: "col": 1,2321// CHECK-NEXT: "tokLen": 12322// CHECK-NEXT: }2323// CHECK-NEXT: },2324// CHECK-NEXT: "name": "V",2325// CHECK-NEXT: "tagUsed": "struct",2326// CHECK-NEXT: "completeDefinition": true,2327// CHECK-NEXT: "definitionData": {2328// CHECK-NEXT: "canConstDefaultInit": true,2329// CHECK-NEXT: "copyAssign": {2330// CHECK-NEXT: "hasConstParam": true,2331// CHECK-NEXT: "implicitHasConstParam": true,2332// CHECK-NEXT: "needsImplicit": true,2333// CHECK-NEXT: "simple": true,2334// CHECK-NEXT: "trivial": true2335// CHECK-NEXT: },2336// CHECK-NEXT: "copyCtor": {2337// CHECK-NEXT: "hasConstParam": true,2338// CHECK-NEXT: "implicitHasConstParam": true,2339// CHECK-NEXT: "needsImplicit": true,2340// CHECK-NEXT: "simple": true,2341// CHECK-NEXT: "trivial": true2342// CHECK-NEXT: },2343// CHECK-NEXT: "defaultCtor": {2344// CHECK-NEXT: "defaultedIsConstexpr": true,2345// CHECK-NEXT: "exists": true,2346// CHECK-NEXT: "isConstexpr": true,2347// CHECK-NEXT: "needsImplicit": true,2348// CHECK-NEXT: "trivial": true2349// CHECK-NEXT: },2350// CHECK-NEXT: "dtor": {2351// CHECK-NEXT: "irrelevant": true,2352// CHECK-NEXT: "needsImplicit": true,2353// CHECK-NEXT: "simple": true,2354// CHECK-NEXT: "trivial": true2355// CHECK-NEXT: },2356// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,2357// CHECK-NEXT: "isAggregate": true,2358// CHECK-NEXT: "isEmpty": true,2359// CHECK-NEXT: "isLiteral": true,2360// CHECK-NEXT: "isPOD": true,2361// CHECK-NEXT: "isStandardLayout": true,2362// CHECK-NEXT: "isTrivial": true,2363// CHECK-NEXT: "isTriviallyCopyable": true,2364// CHECK-NEXT: "moveAssign": {2365// CHECK-NEXT: "exists": true,2366// CHECK-NEXT: "needsImplicit": true,2367// CHECK-NEXT: "simple": true,2368// CHECK-NEXT: "trivial": true2369// CHECK-NEXT: },2370// CHECK-NEXT: "moveCtor": {2371// CHECK-NEXT: "exists": true,2372// CHECK-NEXT: "needsImplicit": true,2373// CHECK-NEXT: "simple": true,2374// CHECK-NEXT: "trivial": true2375// CHECK-NEXT: }2376// CHECK-NEXT: },2377// CHECK-NEXT: "inner": [2378// CHECK-NEXT: {2379// CHECK-NEXT: "id": "0x{{.*}}",2380// CHECK-NEXT: "kind": "CXXRecordDecl",2381// CHECK-NEXT: "loc": {2382// CHECK-NEXT: "offset": {{[0-9]+}},2383// CHECK-NEXT: "line": 49,2384// CHECK-NEXT: "col": 8,2385// CHECK-NEXT: "tokLen": 12386// CHECK-NEXT: },2387// CHECK-NEXT: "range": {2388// CHECK-NEXT: "begin": {2389// CHECK-NEXT: "offset": {{[0-9]+}},2390// CHECK-NEXT: "col": 1,2391// CHECK-NEXT: "tokLen": 62392// CHECK-NEXT: },2393// CHECK-NEXT: "end": {2394// CHECK-NEXT: "offset": {{[0-9]+}},2395// CHECK-NEXT: "col": 8,2396// CHECK-NEXT: "tokLen": 12397// CHECK-NEXT: }2398// CHECK-NEXT: },2399// CHECK-NEXT: "isImplicit": true,2400// CHECK-NEXT: "name": "V",2401// CHECK-NEXT: "tagUsed": "struct"2402// CHECK-NEXT: },2403// CHECK-NEXT: {2404// CHECK-NEXT: "id": "0x{{.*}}",2405// CHECK-NEXT: "kind": "FunctionTemplateDecl",2406// CHECK-NEXT: "loc": {2407// CHECK-NEXT: "offset": {{[0-9]+}},2408// CHECK-NEXT: "line": 51,2409// CHECK-NEXT: "col": 8,2410// CHECK-NEXT: "tokLen": 12411// CHECK-NEXT: },2412// CHECK-NEXT: "range": {2413// CHECK-NEXT: "begin": {2414// CHECK-NEXT: "offset": {{[0-9]+}},2415// CHECK-NEXT: "line": 50,2416// CHECK-NEXT: "col": 3,2417// CHECK-NEXT: "tokLen": 82418// CHECK-NEXT: },2419// CHECK-NEXT: "end": {2420// CHECK-NEXT: "offset": {{[0-9]+}},2421// CHECK-NEXT: "line": 51,2422// CHECK-NEXT: "col": 10,2423// CHECK-NEXT: "tokLen": 12424// CHECK-NEXT: }2425// CHECK-NEXT: },2426// CHECK-NEXT: "name": "f",2427// CHECK-NEXT: "inner": [2428// CHECK-NEXT: {2429// CHECK-NEXT: "id": "0x{{.*}}",2430// CHECK-NEXT: "kind": "TemplateTypeParmDecl",2431// CHECK-NEXT: "loc": {2432// CHECK-NEXT: "offset": {{[0-9]+}},2433// CHECK-NEXT: "line": 50,2434// CHECK-NEXT: "col": 22,2435// CHECK-NEXT: "tokLen": 22436// CHECK-NEXT: },2437// CHECK-NEXT: "range": {2438// CHECK-NEXT: "begin": {2439// CHECK-NEXT: "offset": {{[0-9]+}},2440// CHECK-NEXT: "col": 13,2441// CHECK-NEXT: "tokLen": 82442// CHECK-NEXT: },2443// CHECK-NEXT: "end": {2444// CHECK-NEXT: "offset": {{[0-9]+}},2445// CHECK-NEXT: "col": 22,2446// CHECK-NEXT: "tokLen": 22447// CHECK-NEXT: }2448// CHECK-NEXT: },2449// CHECK-NEXT: "name": "Uy",2450// CHECK-NEXT: "tagUsed": "typename",2451// CHECK-NEXT: "depth": 1,2452// CHECK-NEXT: "index": 02453// CHECK-NEXT: },2454// CHECK-NEXT: {2455// CHECK-NEXT: "id": "0x{{.*}}",2456// CHECK-NEXT: "kind": "CXXMethodDecl",2457// CHECK-NEXT: "loc": {2458// CHECK-NEXT: "offset": {{[0-9]+}},2459// CHECK-NEXT: "line": 51,2460// CHECK-NEXT: "col": 8,2461// CHECK-NEXT: "tokLen": 12462// CHECK-NEXT: },2463// CHECK-NEXT: "range": {2464// CHECK-NEXT: "begin": {2465// CHECK-NEXT: "offset": {{[0-9]+}},2466// CHECK-NEXT: "col": 3,2467// CHECK-NEXT: "tokLen": 42468// CHECK-NEXT: },2469// CHECK-NEXT: "end": {2470// CHECK-NEXT: "offset": {{[0-9]+}},2471// CHECK-NEXT: "col": 10,2472// CHECK-NEXT: "tokLen": 12473// CHECK-NEXT: }2474// CHECK-NEXT: },2475// CHECK-NEXT: "name": "f",2476// CHECK-NEXT: "type": {2477// CHECK-NEXT: "qualType": "void ()"2478// CHECK-NEXT: }2479// CHECK-NEXT: }2480// CHECK-NEXT: ]2481// CHECK-NEXT: }2482// CHECK-NEXT: ]2483// CHECK-NEXT: }2484// CHECK-NEXT: ]2485// CHECK-NEXT: },2486// CHECK-NEXT: {2487// CHECK-NEXT: "id": "0x{{.*}}",2488// CHECK-NEXT: "kind": "FunctionTemplateDecl",2489// CHECK-NEXT: "loc": {2490// CHECK-NEXT: "offset": {{[0-9]+}},2491// CHECK-NEXT: "line": 56,2492// CHECK-NEXT: "col": 13,2493// CHECK-NEXT: "tokLen": 12494// CHECK-NEXT: },2495// CHECK-NEXT: "range": {2496// CHECK-NEXT: "begin": {2497// CHECK-NEXT: "offset": {{[0-9]+}},2498// CHECK-NEXT: "line": 55,2499// CHECK-NEXT: "col": 1,2500// CHECK-NEXT: "tokLen": 82501// CHECK-NEXT: },2502// CHECK-NEXT: "end": {2503// CHECK-NEXT: "offset": {{[0-9]+}},2504// CHECK-NEXT: "line": 56,2505// CHECK-NEXT: "col": 18,2506// CHECK-NEXT: "tokLen": 12507// CHECK-NEXT: }2508// CHECK-NEXT: },2509// CHECK-NEXT: "parentDeclContextId": "0x{{.*}}",2510// CHECK-NEXT: "previousDecl": "0x{{.*}}",2511// CHECK-NEXT: "name": "f",2512// CHECK-NEXT: "inner": [2513// CHECK-NEXT: {2514// CHECK-NEXT: "id": "0x{{.*}}",2515// CHECK-NEXT: "kind": "TemplateTypeParmDecl",2516// CHECK-NEXT: "loc": {2517// CHECK-NEXT: "offset": {{[0-9]+}},2518// CHECK-NEXT: "line": 55,2519// CHECK-NEXT: "col": 20,2520// CHECK-NEXT: "tokLen": 22521// CHECK-NEXT: },2522// CHECK-NEXT: "range": {2523// CHECK-NEXT: "begin": {2524// CHECK-NEXT: "offset": {{[0-9]+}},2525// CHECK-NEXT: "col": 11,2526// CHECK-NEXT: "tokLen": 82527// CHECK-NEXT: },2528// CHECK-NEXT: "end": {2529// CHECK-NEXT: "offset": {{[0-9]+}},2530// CHECK-NEXT: "col": 20,2531// CHECK-NEXT: "tokLen": 22532// CHECK-NEXT: }2533// CHECK-NEXT: },2534// CHECK-NEXT: "name": "Uy",2535// CHECK-NEXT: "tagUsed": "typename",2536// CHECK-NEXT: "depth": 1,2537// CHECK-NEXT: "index": 02538// CHECK-NEXT: },2539// CHECK-NEXT: {2540// CHECK-NEXT: "id": "0x{{.*}}",2541// CHECK-NEXT: "kind": "CXXMethodDecl",2542// CHECK-NEXT: "loc": {2543// CHECK-NEXT: "offset": {{[0-9]+}},2544// CHECK-NEXT: "line": 56,2545// CHECK-NEXT: "col": 13,2546// CHECK-NEXT: "tokLen": 12547// CHECK-NEXT: },2548// CHECK-NEXT: "range": {2549// CHECK-NEXT: "begin": {2550// CHECK-NEXT: "offset": {{[0-9]+}},2551// CHECK-NEXT: "line": 54,2552// CHECK-NEXT: "col": 1,2553// CHECK-NEXT: "tokLen": 82554// CHECK-NEXT: },2555// CHECK-NEXT: "end": {2556// CHECK-NEXT: "offset": {{[0-9]+}},2557// CHECK-NEXT: "line": 56,2558// CHECK-NEXT: "col": 18,2559// CHECK-NEXT: "tokLen": 12560// CHECK-NEXT: }2561// CHECK-NEXT: },2562// CHECK-NEXT: "parentDeclContextId": "0x{{.*}}",2563// CHECK-NEXT: "previousDecl": "0x{{.*}}",2564// CHECK-NEXT: "name": "f",2565// CHECK-NEXT: "type": {2566// CHECK-NEXT: "qualType": "void ()"2567// CHECK-NEXT: },2568// CHECK-NEXT: "inner": [2569// CHECK-NEXT: {2570// CHECK-NEXT: "id": "0x{{.*}}",2571// CHECK-NEXT: "kind": "CompoundStmt",2572// CHECK-NEXT: "range": {2573// CHECK-NEXT: "begin": {2574// CHECK-NEXT: "offset": {{[0-9]+}},2575// CHECK-NEXT: "col": 17,2576// CHECK-NEXT: "tokLen": 12577// CHECK-NEXT: },2578// CHECK-NEXT: "end": {2579// CHECK-NEXT: "offset": {{[0-9]+}},2580// CHECK-NEXT: "col": 18,2581// CHECK-NEXT: "tokLen": 12582// CHECK-NEXT: }2583// CHECK-NEXT: }2584// CHECK-NEXT: }2585// CHECK-NEXT: ]2586// CHECK-NEXT: }2587// CHECK-NEXT: ]2588// CHECK-NEXT: },2589// CHECK-NEXT: {2590// CHECK-NEXT: "id": "0x{{.*}}",2591// CHECK-NEXT: "kind": "FunctionTemplateDecl",2592// CHECK-NEXT: "loc": {2593// CHECK-NEXT: "offset": {{[0-9]+}},2594// CHECK-NEXT: "line": 59,2595// CHECK-NEXT: "col": 6,2596// CHECK-NEXT: "tokLen": 12597// CHECK-NEXT: },2598// CHECK-NEXT: "range": {2599// CHECK-NEXT: "begin": {2600// CHECK-NEXT: "offset": {{[0-9]+}},2601// CHECK-NEXT: "line": 58,2602// CHECK-NEXT: "col": 1,2603// CHECK-NEXT: "tokLen": 82604// CHECK-NEXT: },2605// CHECK-NEXT: "end": {2606// CHECK-NEXT: "offset": {{[0-9]+}},2607// CHECK-NEXT: "line": 59,2608// CHECK-NEXT: "col": 8,2609// CHECK-NEXT: "tokLen": 12610// CHECK-NEXT: }2611// CHECK-NEXT: },2612// CHECK-NEXT: "name": "i",2613// CHECK-NEXT: "inner": [2614// CHECK-NEXT: {2615// CHECK-NEXT: "id": "0x{{.*}}",2616// CHECK-NEXT: "kind": "TemplateTemplateParmDecl",2617// CHECK-NEXT: "loc": {2618// CHECK-NEXT: "offset": {{[0-9]+}},2619// CHECK-NEXT: "line": 58,2620// CHECK-NEXT: "col": 37,2621// CHECK-NEXT: "tokLen": 12622// CHECK-NEXT: },2623// CHECK-NEXT: "range": {2624// CHECK-NEXT: "begin": {2625// CHECK-NEXT: "offset": {{[0-9]+}},2626// CHECK-NEXT: "col": 11,2627// CHECK-NEXT: "tokLen": 82628// CHECK-NEXT: },2629// CHECK-NEXT: "end": {2630// CHECK-NEXT: "offset": {{[0-9]+}},2631// CHECK-NEXT: "col": 39,2632// CHECK-NEXT: "tokLen": 12633// CHECK-NEXT: }2634// CHECK-NEXT: },2635// CHECK-NEXT: "depth": 0,2636// CHECK-NEXT: "index": 0,2637// CHECK-NEXT: "defaultArg": {2638// CHECK-NEXT: "kind": "TemplateArgument"2639// CHECK-NEXT: },2640// CHECK-NEXT: "inner": [2641// CHECK-NEXT: {2642// CHECK-NEXT: "id": "0x{{.*}}",2643// CHECK-NEXT: "kind": "TemplateTypeParmDecl",2644// CHECK-NEXT: "loc": {2645// CHECK-NEXT: "offset": {{[0-9]+}},2646// CHECK-NEXT: "col": 29,2647// CHECK-NEXT: "tokLen": 12648// CHECK-NEXT: },2649// CHECK-NEXT: "range": {2650// CHECK-NEXT: "begin": {2651// CHECK-NEXT: "offset": {{[0-9]+}},2652// CHECK-NEXT: "col": 21,2653// CHECK-NEXT: "tokLen": 82654// CHECK-NEXT: },2655// CHECK-NEXT: "end": {2656// CHECK-NEXT: "offset": {{[0-9]+}},2657// CHECK-NEXT: "col": 21,2658// CHECK-NEXT: "tokLen": 82659// CHECK-NEXT: }2660// CHECK-NEXT: },2661// CHECK-NEXT: "tagUsed": "typename",2662// CHECK-NEXT: "depth": 1,2663// CHECK-NEXT: "index": 02664// CHECK-NEXT: },2665// CHECK-NEXT: {2666// CHECK-NEXT: "kind": "TemplateArgument",2667// CHECK-NEXT: "range": {2668// CHECK-NEXT: "begin": {2669// CHECK-NEXT: "offset": {{[0-9]+}},2670// CHECK-NEXT: "col": 39,2671// CHECK-NEXT: "tokLen": 12672// CHECK-NEXT: },2673// CHECK-NEXT: "end": {2674// CHECK-NEXT: "offset": {{[0-9]+}},2675// CHECK-NEXT: "col": 39,2676// CHECK-NEXT: "tokLen": 12677// CHECK-NEXT: }2678// CHECK-NEXT: }2679// CHECK-NEXT: }2680// CHECK-NEXT: ]2681// CHECK-NEXT: },2682// CHECK-NEXT: {2683// CHECK-NEXT: "id": "0x{{.*}}",2684// CHECK-NEXT: "kind": "FunctionDecl",2685// CHECK-NEXT: "loc": {2686// CHECK-NEXT: "offset": {{[0-9]+}},2687// CHECK-NEXT: "line": 59,2688// CHECK-NEXT: "col": 6,2689// CHECK-NEXT: "tokLen": 12690// CHECK-NEXT: },2691// CHECK-NEXT: "range": {2692// CHECK-NEXT: "begin": {2693// CHECK-NEXT: "offset": {{[0-9]+}},2694// CHECK-NEXT: "col": 1,2695// CHECK-NEXT: "tokLen": 42696// CHECK-NEXT: },2697// CHECK-NEXT: "end": {2698// CHECK-NEXT: "offset": {{[0-9]+}},2699// CHECK-NEXT: "col": 8,2700// CHECK-NEXT: "tokLen": 12701// CHECK-NEXT: }2702// CHECK-NEXT: },2703// CHECK-NEXT: "name": "i",2704// CHECK-NEXT: "type": {2705// CHECK-NEXT: "qualType": "void ()"2706// CHECK-NEXT: }2707// CHECK-NEXT: }2708// CHECK-NEXT: ]2709// CHECK-NEXT: },2710// CHECK-NEXT: {2711// CHECK-NEXT: "id": "0x{{.*}}",2712// CHECK-NEXT: "kind": "ClassTemplateDecl",2713// CHECK-NEXT: "loc": {2714// CHECK-NEXT: "offset": {{[0-9]+}},2715// CHECK-NEXT: "line": 61,2716// CHECK-NEXT: "col": 24,2717// CHECK-NEXT: "tokLen": 12718// CHECK-NEXT: },2719// CHECK-NEXT: "range": {2720// CHECK-NEXT: "begin": {2721// CHECK-NEXT: "offset": {{[0-9]+}},2722// CHECK-NEXT: "col": 1,2723// CHECK-NEXT: "tokLen": 82724// CHECK-NEXT: },2725// CHECK-NEXT: "end": {2726// CHECK-NEXT: "offset": {{[0-9]+}},2727// CHECK-NEXT: "line": 62,2728// CHECK-NEXT: "col": 1,2729// CHECK-NEXT: "tokLen": 12730// CHECK-NEXT: }2731// CHECK-NEXT: },2732// CHECK-NEXT: "name": "W",2733// CHECK-NEXT: "inner": [2734// CHECK-NEXT: {2735// CHECK-NEXT: "id": "0x{{.*}}",2736// CHECK-NEXT: "kind": "NonTypeTemplateParmDecl",2737// CHECK-NEXT: "loc": {2738// CHECK-NEXT: "offset": {{[0-9]+}},2739// CHECK-NEXT: "line": 61,2740// CHECK-NEXT: "col": 15,2741// CHECK-NEXT: "tokLen": 12742// CHECK-NEXT: },2743// CHECK-NEXT: "range": {2744// CHECK-NEXT: "begin": {2745// CHECK-NEXT: "offset": {{[0-9]+}},2746// CHECK-NEXT: "col": 11,2747// CHECK-NEXT: "tokLen": 32748// CHECK-NEXT: },2749// CHECK-NEXT: "end": {2750// CHECK-NEXT: "offset": {{[0-9]+}},2751// CHECK-NEXT: "col": 15,2752// CHECK-NEXT: "tokLen": 12753// CHECK-NEXT: }2754// CHECK-NEXT: },2755// CHECK-NEXT: "name": "A",2756// CHECK-NEXT: "type": {2757// CHECK-NEXT: "qualType": "int"2758// CHECK-NEXT: },2759// CHECK-NEXT: "depth": 0,2760// CHECK-NEXT: "index": 02761// CHECK-NEXT: },2762// CHECK-NEXT: {2763// CHECK-NEXT: "id": "0x{{.*}}",2764// CHECK-NEXT: "kind": "CXXRecordDecl",2765// CHECK-NEXT: "loc": {2766// CHECK-NEXT: "offset": {{[0-9]+}},2767// CHECK-NEXT: "col": 24,2768// CHECK-NEXT: "tokLen": 12769// CHECK-NEXT: },2770// CHECK-NEXT: "range": {2771// CHECK-NEXT: "begin": {2772// CHECK-NEXT: "offset": {{[0-9]+}},2773// CHECK-NEXT: "col": 18,2774// CHECK-NEXT: "tokLen": 52775// CHECK-NEXT: },2776// CHECK-NEXT: "end": {2777// CHECK-NEXT: "offset": {{[0-9]+}},2778// CHECK-NEXT: "line": 62,2779// CHECK-NEXT: "col": 1,2780// CHECK-NEXT: "tokLen": 12781// CHECK-NEXT: }2782// CHECK-NEXT: },2783// CHECK-NEXT: "name": "W",2784// CHECK-NEXT: "tagUsed": "class",2785// CHECK-NEXT: "completeDefinition": true,2786// CHECK-NEXT: "definitionData": {2787// CHECK-NEXT: "canConstDefaultInit": true,2788// CHECK-NEXT: "copyAssign": {2789// CHECK-NEXT: "hasConstParam": true,2790// CHECK-NEXT: "implicitHasConstParam": true,2791// CHECK-NEXT: "needsImplicit": true,2792// CHECK-NEXT: "simple": true,2793// CHECK-NEXT: "trivial": true2794// CHECK-NEXT: },2795// CHECK-NEXT: "copyCtor": {2796// CHECK-NEXT: "hasConstParam": true,2797// CHECK-NEXT: "implicitHasConstParam": true,2798// CHECK-NEXT: "needsImplicit": true,2799// CHECK-NEXT: "simple": true,2800// CHECK-NEXT: "trivial": true2801// CHECK-NEXT: },2802// CHECK-NEXT: "defaultCtor": {2803// CHECK-NEXT: "defaultedIsConstexpr": true,2804// CHECK-NEXT: "exists": true,2805// CHECK-NEXT: "isConstexpr": true,2806// CHECK-NEXT: "needsImplicit": true,2807// CHECK-NEXT: "trivial": true2808// CHECK-NEXT: },2809// CHECK-NEXT: "dtor": {2810// CHECK-NEXT: "irrelevant": true,2811// CHECK-NEXT: "needsImplicit": true,2812// CHECK-NEXT: "simple": true,2813// CHECK-NEXT: "trivial": true2814// CHECK-NEXT: },2815// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,2816// CHECK-NEXT: "isAggregate": true,2817// CHECK-NEXT: "isEmpty": true,2818// CHECK-NEXT: "isLiteral": true,2819// CHECK-NEXT: "isPOD": true,2820// CHECK-NEXT: "isStandardLayout": true,2821// CHECK-NEXT: "isTrivial": true,2822// CHECK-NEXT: "isTriviallyCopyable": true,2823// CHECK-NEXT: "moveAssign": {2824// CHECK-NEXT: "exists": true,2825// CHECK-NEXT: "needsImplicit": true,2826// CHECK-NEXT: "simple": true,2827// CHECK-NEXT: "trivial": true2828// CHECK-NEXT: },2829// CHECK-NEXT: "moveCtor": {2830// CHECK-NEXT: "exists": true,2831// CHECK-NEXT: "needsImplicit": true,2832// CHECK-NEXT: "simple": true,2833// CHECK-NEXT: "trivial": true2834// CHECK-NEXT: }2835// CHECK-NEXT: },2836// CHECK-NEXT: "inner": [2837// CHECK-NEXT: {2838// CHECK-NEXT: "id": "0x{{.*}}",2839// CHECK-NEXT: "kind": "CXXRecordDecl",2840// CHECK-NEXT: "loc": {2841// CHECK-NEXT: "offset": {{[0-9]+}},2842// CHECK-NEXT: "line": 61,2843// CHECK-NEXT: "col": 24,2844// CHECK-NEXT: "tokLen": 12845// CHECK-NEXT: },2846// CHECK-NEXT: "range": {2847// CHECK-NEXT: "begin": {2848// CHECK-NEXT: "offset": {{[0-9]+}},2849// CHECK-NEXT: "col": 18,2850// CHECK-NEXT: "tokLen": 52851// CHECK-NEXT: },2852// CHECK-NEXT: "end": {2853// CHECK-NEXT: "offset": {{[0-9]+}},2854// CHECK-NEXT: "col": 24,2855// CHECK-NEXT: "tokLen": 12856// CHECK-NEXT: }2857// CHECK-NEXT: },2858// CHECK-NEXT: "isImplicit": true,2859// CHECK-NEXT: "name": "W",2860// CHECK-NEXT: "tagUsed": "class"2861// CHECK-NEXT: }2862// CHECK-NEXT: ]2863// CHECK-NEXT: },2864// CHECK-NEXT: {2865// CHECK-NEXT: "id": "0x{{.*}}",2866// CHECK-NEXT: "kind": "ClassTemplateSpecializationDecl",2867// CHECK-NEXT: "loc": {2868// CHECK-NEXT: "offset": {{[0-9]+}},2869// CHECK-NEXT: "col": 24,2870// CHECK-NEXT: "tokLen": 12871// CHECK-NEXT: },2872// CHECK-NEXT: "range": {2873// CHECK-NEXT: "begin": {2874// CHECK-NEXT: "offset": {{[0-9]+}},2875// CHECK-NEXT: "col": 1,2876// CHECK-NEXT: "tokLen": 82877// CHECK-NEXT: },2878// CHECK-NEXT: "end": {2879// CHECK-NEXT: "offset": {{[0-9]+}},2880// CHECK-NEXT: "line": 62,2881// CHECK-NEXT: "col": 1,2882// CHECK-NEXT: "tokLen": 12883// CHECK-NEXT: }2884// CHECK-NEXT: },2885// CHECK-NEXT: "name": "W",2886// CHECK-NEXT: "tagUsed": "class",2887// CHECK-NEXT: "inner": [2888// CHECK-NEXT: {2889// CHECK-NEXT: "kind": "TemplateArgument",2890// CHECK-NEXT: "value": 12891// CHECK-NEXT: }2892// CHECK-NEXT: ]2893// CHECK-NEXT: }2894// CHECK-NEXT: ]2895// CHECK-NEXT: },2896// CHECK-NEXT: {2897// CHECK-NEXT: "id": "0x{{.*}}",2898// CHECK-NEXT: "kind": "FunctionTemplateDecl",2899// CHECK-NEXT: "loc": {2900// CHECK-NEXT: "offset": {{[0-9]+}},2901// CHECK-NEXT: "line": 61,2902// CHECK-NEXT: "col": 24,2903// CHECK-NEXT: "tokLen": 12904// CHECK-NEXT: },2905// CHECK-NEXT: "range": {2906// CHECK-NEXT: "begin": {2907// CHECK-NEXT: "offset": {{[0-9]+}},2908// CHECK-NEXT: "col": 1,2909// CHECK-NEXT: "tokLen": 82910// CHECK-NEXT: },2911// CHECK-NEXT: "end": {2912// CHECK-NEXT: "offset": {{[0-9]+}},2913// CHECK-NEXT: "col": 24,2914// CHECK-NEXT: "tokLen": 12915// CHECK-NEXT: }2916// CHECK-NEXT: },2917// CHECK-NEXT: "isImplicit": true,2918// CHECK-NEXT: "name": "<deduction guide for W>",2919// CHECK-NEXT: "inner": [2920// CHECK-NEXT: {2921// CHECK-NEXT: "id": "0x{{.*}}",2922// CHECK-NEXT: "kind": "NonTypeTemplateParmDecl",2923// CHECK-NEXT: "loc": {2924// CHECK-NEXT: "offset": {{[0-9]+}},2925// CHECK-NEXT: "col": 15,2926// CHECK-NEXT: "tokLen": 12927// CHECK-NEXT: },2928// CHECK-NEXT: "range": {2929// CHECK-NEXT: "begin": {2930// CHECK-NEXT: "offset": {{[0-9]+}},2931// CHECK-NEXT: "col": 11,2932// CHECK-NEXT: "tokLen": 32933// CHECK-NEXT: },2934// CHECK-NEXT: "end": {2935// CHECK-NEXT: "offset": {{[0-9]+}},2936// CHECK-NEXT: "col": 15,2937// CHECK-NEXT: "tokLen": 12938// CHECK-NEXT: }2939// CHECK-NEXT: },2940// CHECK-NEXT: "name": "A",2941// CHECK-NEXT: "type": {2942// CHECK-NEXT: "qualType": "int"2943// CHECK-NEXT: },2944// CHECK-NEXT: "depth": 0,2945// CHECK-NEXT: "index": 02946// CHECK-NEXT: },2947// CHECK-NEXT: {2948// CHECK-NEXT: "id": "0x{{.*}}",2949// CHECK-NEXT: "kind": "CXXDeductionGuideDecl",2950// CHECK-NEXT: "loc": {2951// CHECK-NEXT: "offset": {{[0-9]+}},2952// CHECK-NEXT: "col": 24,2953// CHECK-NEXT: "tokLen": 12954// CHECK-NEXT: },2955// CHECK-NEXT: "range": {2956// CHECK-NEXT: "begin": {2957// CHECK-NEXT: "offset": {{[0-9]+}},2958// CHECK-NEXT: "col": 24,2959// CHECK-NEXT: "tokLen": 12960// CHECK-NEXT: },2961// CHECK-NEXT: "end": {2962// CHECK-NEXT: "offset": {{[0-9]+}},2963// CHECK-NEXT: "col": 24,2964// CHECK-NEXT: "tokLen": 12965// CHECK-NEXT: }2966// CHECK-NEXT: },2967// CHECK-NEXT: "isImplicit": true,2968// CHECK-NEXT: "name": "<deduction guide for W>",2969// CHECK-NEXT: "type": {2970// CHECK-NEXT: "qualType": "auto () -> W<A>"2971// CHECK-NEXT: }2972// CHECK-NEXT: }2973// CHECK-NEXT: ]2974// CHECK-NEXT: },2975// CHECK-NEXT: {2976// CHECK-NEXT: "id": "0x{{.*}}",2977// CHECK-NEXT: "kind": "FunctionTemplateDecl",2978// CHECK-NEXT: "loc": {2979// CHECK-NEXT: "offset": {{[0-9]+}},2980// CHECK-NEXT: "col": 24,2981// CHECK-NEXT: "tokLen": 12982// CHECK-NEXT: },2983// CHECK-NEXT: "range": {2984// CHECK-NEXT: "begin": {2985// CHECK-NEXT: "offset": {{[0-9]+}},2986// CHECK-NEXT: "col": 1,2987// CHECK-NEXT: "tokLen": 82988// CHECK-NEXT: },2989// CHECK-NEXT: "end": {2990// CHECK-NEXT: "offset": {{[0-9]+}},2991// CHECK-NEXT: "col": 24,2992// CHECK-NEXT: "tokLen": 12993// CHECK-NEXT: }2994// CHECK-NEXT: },2995// CHECK-NEXT: "isImplicit": true,2996// CHECK-NEXT: "name": "<deduction guide for W>",2997// CHECK-NEXT: "inner": [2998// CHECK-NEXT: {2999// CHECK-NEXT: "id": "0x{{.*}}",3000// CHECK-NEXT: "kind": "NonTypeTemplateParmDecl",3001// CHECK-NEXT: "loc": {3002// CHECK-NEXT: "offset": {{[0-9]+}},3003// CHECK-NEXT: "col": 15,3004// CHECK-NEXT: "tokLen": 13005// CHECK-NEXT: },3006// CHECK-NEXT: "range": {3007// CHECK-NEXT: "begin": {3008// CHECK-NEXT: "offset": {{[0-9]+}},3009// CHECK-NEXT: "col": 11,3010// CHECK-NEXT: "tokLen": 33011// CHECK-NEXT: },3012// CHECK-NEXT: "end": {3013// CHECK-NEXT: "offset": {{[0-9]+}},3014// CHECK-NEXT: "col": 15,3015// CHECK-NEXT: "tokLen": 13016// CHECK-NEXT: }3017// CHECK-NEXT: },3018// CHECK-NEXT: "name": "A",3019// CHECK-NEXT: "type": {3020// CHECK-NEXT: "qualType": "int"3021// CHECK-NEXT: },3022// CHECK-NEXT: "depth": 0,3023// CHECK-NEXT: "index": 03024// CHECK-NEXT: },3025// CHECK-NEXT: {3026// CHECK-NEXT: "id": "0x{{.*}}",3027// CHECK-NEXT: "kind": "CXXDeductionGuideDecl",3028// CHECK-NEXT: "loc": {3029// CHECK-NEXT: "offset": {{[0-9]+}},3030// CHECK-NEXT: "col": 24,3031// CHECK-NEXT: "tokLen": 13032// CHECK-NEXT: },3033// CHECK-NEXT: "range": {3034// CHECK-NEXT: "begin": {3035// CHECK-NEXT: "offset": {{[0-9]+}},3036// CHECK-NEXT: "col": 24,3037// CHECK-NEXT: "tokLen": 13038// CHECK-NEXT: },3039// CHECK-NEXT: "end": {3040// CHECK-NEXT: "offset": {{[0-9]+}},3041// CHECK-NEXT: "col": 24,3042// CHECK-NEXT: "tokLen": 13043// CHECK-NEXT: }3044// CHECK-NEXT: },3045// CHECK-NEXT: "isImplicit": true,3046// CHECK-NEXT: "name": "<deduction guide for W>",3047// CHECK-NEXT: "type": {3048// CHECK-NEXT: "qualType": "auto (W<A>) -> W<A>"3049// CHECK-NEXT: },3050// CHECK-NEXT: "inner": [3051// CHECK-NEXT: {3052// CHECK-NEXT: "id": "0x{{.*}}",3053// CHECK-NEXT: "kind": "ParmVarDecl",3054// CHECK-NEXT: "loc": {3055// CHECK-NEXT: "offset": {{[0-9]+}},3056// CHECK-NEXT: "col": 24,3057// CHECK-NEXT: "tokLen": 13058// CHECK-NEXT: },3059// CHECK-NEXT: "range": {3060// CHECK-NEXT: "begin": {3061// CHECK-NEXT: "offset": {{[0-9]+}},3062// CHECK-NEXT: "col": 24,3063// CHECK-NEXT: "tokLen": 13064// CHECK-NEXT: },3065// CHECK-NEXT: "end": {3066// CHECK-NEXT: "offset": {{[0-9]+}},3067// CHECK-NEXT: "col": 24,3068// CHECK-NEXT: "tokLen": 13069// CHECK-NEXT: }3070// CHECK-NEXT: },3071// CHECK-NEXT: "type": {3072// CHECK-NEXT: "qualType": "W<A>"3073// CHECK-NEXT: }3074// CHECK-NEXT: }3075// CHECK-NEXT: ]3076// CHECK-NEXT: }3077// CHECK-NEXT: ]3078// CHECK-NEXT: },3079// CHECK-NEXT: {3080// CHECK-NEXT: "id": "0x{{.*}}",3081// CHECK-NEXT: "kind": "CXXDeductionGuideDecl",3082// CHECK-NEXT: "loc": {3083// CHECK-NEXT: "offset": {{[0-9]+}},3084// CHECK-NEXT: "line": 63,3085// CHECK-NEXT: "col": 1,3086// CHECK-NEXT: "tokLen": 13087// CHECK-NEXT: },3088// CHECK-NEXT: "range": {3089// CHECK-NEXT: "begin": {3090// CHECK-NEXT: "offset": {{[0-9]+}},3091// CHECK-NEXT: "col": 1,3092// CHECK-NEXT: "tokLen": 13093// CHECK-NEXT: },3094// CHECK-NEXT: "end": {3095// CHECK-NEXT: "offset": {{[0-9]+}},3096// CHECK-NEXT: "col": 12,3097// CHECK-NEXT: "tokLen": 13098// CHECK-NEXT: }3099// CHECK-NEXT: },3100// CHECK-NEXT: "name": "<deduction guide for W>",3101// CHECK-NEXT: "type": {3102// CHECK-NEXT: "qualType": "auto (int) -> W<1>"3103// CHECK-NEXT: },3104// CHECK-NEXT: "inner": [3105// CHECK-NEXT: {3106// CHECK-NEXT: "id": "0x{{.*}}",3107// CHECK-NEXT: "kind": "ParmVarDecl",3108// CHECK-NEXT: "loc": {3109// CHECK-NEXT: "offset": {{[0-9]+}},3110// CHECK-NEXT: "col": 6,3111// CHECK-NEXT: "tokLen": 13112// CHECK-NEXT: },3113// CHECK-NEXT: "range": {3114// CHECK-NEXT: "begin": {3115// CHECK-NEXT: "offset": {{[0-9]+}},3116// CHECK-NEXT: "col": 3,3117// CHECK-NEXT: "tokLen": 33118// CHECK-NEXT: },3119// CHECK-NEXT: "end": {3120// CHECK-NEXT: "offset": {{[0-9]+}},3121// CHECK-NEXT: "col": 3,3122// CHECK-NEXT: "tokLen": 33123// CHECK-NEXT: }3124// CHECK-NEXT: },3125// CHECK-NEXT: "type": {3126// CHECK-NEXT: "qualType": "int"3127// CHECK-NEXT: }3128// CHECK-NEXT: }3129// CHECK-NEXT: ]3130// CHECK-NEXT: }3131// CHECK-NEXT: ]3132// CHECK-NEXT: }3133