3220 lines · cpp
1// RUN: %clang_cc1 -triple x86_64-pc-win32 -ast-dump=json %s | FileCheck %s2 3#define _INLINE_VAR inline4#define _NODISCARD [[nodiscard]]5 6template <class _Ty, _Ty _Val>7struct integral_constant {8 static constexpr _Ty value = _Val;9 10 using value_type = _Ty;11 using type = integral_constant;12 13 constexpr operator value_type() const noexcept {14 return value;15 }16 17 _NODISCARD constexpr value_type operator()() const noexcept {18 return value;19 }20};21 22template <bool _Val>23using bool_constant = integral_constant<bool, _Val>;24 25template <class>26_INLINE_VAR constexpr bool is_const_v = false; // determine whether type argument is const qualified27 28template <class _Ty>29_INLINE_VAR constexpr bool is_const_v<const _Ty> = true;30 31template <class>32_INLINE_VAR constexpr bool is_reference_v = false; // determine whether type argument is a reference33 34template <class _Ty>35_INLINE_VAR constexpr bool is_reference_v<_Ty&> = true;36 37template <class _Ty>38_INLINE_VAR constexpr bool is_reference_v<_Ty&&> = true;39 40template <class _Ty>41struct is_reference : bool_constant<is_reference_v<_Ty>> {};42 43template <class _Ty>44_INLINE_VAR constexpr bool is_function_v = // only function types and reference types can't be const qualified45 !is_const_v<const _Ty> && !is_reference_v<_Ty>;46 47template <class _Ty>48struct is_function : bool_constant<is_function_v<_Ty>> {};49 50template <class>51struct _Is_member_object_pointer {52 static constexpr bool value = false;53};54 55template <class _Ty1, class _Ty2>56struct _Is_member_object_pointer<_Ty1 _Ty2::*> {57 static constexpr bool value = !is_function_v<_Ty1>;58 using _Class_type = _Ty2;59};60 61template <class _Ty>62_INLINE_VAR constexpr bool is_member_object_pointer_v = __is_member_object_pointer(_Ty);63 64template <class _Ty>65struct is_member_object_pointer : bool_constant<is_member_object_pointer_v<_Ty>> {};66 67template <class _Ty>68_INLINE_VAR constexpr bool is_member_pointer_v = __is_member_pointer(_Ty);69 70int main()71{72 return 0;73}74// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py75 76 77// CHECK-NOT: {{^}}Dumping78// CHECK: "kind": "TranslationUnitDecl",79// CHECK-NEXT: "loc": {},80// CHECK-NEXT: "range": {81// CHECK-NEXT: "begin": {},82// CHECK-NEXT: "end": {}83// CHECK-NEXT: },84// CHECK-NEXT: "inner": [85// CHECK-NEXT: {86// CHECK-NEXT: "id": "0x{{.*}}",87// CHECK-NEXT: "kind": "TypedefDecl",88// CHECK-NEXT: "loc": {},89// CHECK-NEXT: "range": {90// CHECK-NEXT: "begin": {},91// CHECK-NEXT: "end": {}92// CHECK-NEXT: },93// CHECK-NEXT: "isImplicit": true,94// CHECK-NEXT: "name": "__int128_t",95// CHECK-NEXT: "type": {96// CHECK-NEXT: "qualType": "__int128"97// CHECK-NEXT: },98// CHECK-NEXT: "inner": [99// CHECK-NEXT: {100// CHECK-NEXT: "id": "0x{{.*}}",101// CHECK-NEXT: "kind": "BuiltinType",102// CHECK-NEXT: "type": {103// CHECK-NEXT: "qualType": "__int128"104// CHECK-NEXT: }105// CHECK-NEXT: }106// CHECK-NEXT: ]107// CHECK-NEXT: },108// CHECK-NEXT: {109// CHECK-NEXT: "id": "0x{{.*}}",110// CHECK-NEXT: "kind": "TypedefDecl",111// CHECK-NEXT: "loc": {},112// CHECK-NEXT: "range": {113// CHECK-NEXT: "begin": {},114// CHECK-NEXT: "end": {}115// CHECK-NEXT: },116// CHECK-NEXT: "isImplicit": true,117// CHECK-NEXT: "name": "__uint128_t",118// CHECK-NEXT: "type": {119// CHECK-NEXT: "qualType": "unsigned __int128"120// CHECK-NEXT: },121// CHECK-NEXT: "inner": [122// CHECK-NEXT: {123// CHECK-NEXT: "id": "0x{{.*}}",124// CHECK-NEXT: "kind": "BuiltinType",125// CHECK-NEXT: "type": {126// CHECK-NEXT: "qualType": "unsigned __int128"127// CHECK-NEXT: }128// CHECK-NEXT: }129// CHECK-NEXT: ]130// CHECK-NEXT: },131// CHECK-NEXT: {132// CHECK-NEXT: "id": "0x{{.*}}",133// CHECK-NEXT: "kind": "TypedefDecl",134// CHECK-NEXT: "loc": {},135// CHECK-NEXT: "range": {136// CHECK-NEXT: "begin": {},137// CHECK-NEXT: "end": {}138// CHECK-NEXT: },139// CHECK-NEXT: "isImplicit": true,140// CHECK-NEXT: "name": "__NSConstantString",141// CHECK-NEXT: "type": {142// CHECK-NEXT: "qualType": "__NSConstantString_tag"143// CHECK-NEXT: },144// CHECK-NEXT: "inner": [145// CHECK-NEXT: {146// CHECK-NEXT: "id": "0x{{.*}}",147// CHECK-NEXT: "kind": "RecordType",148// CHECK-NEXT: "type": {149// CHECK-NEXT: "qualType": "__NSConstantString_tag"150// CHECK-NEXT: },151// CHECK-NEXT: "decl": {152// CHECK-NEXT: "id": "0x{{.*}}",153// CHECK-NEXT: "kind": "CXXRecordDecl",154// CHECK-NEXT: "name": "__NSConstantString_tag"155// CHECK-NEXT: }156// CHECK-NEXT: }157// CHECK-NEXT: ]158// CHECK-NEXT: },159// CHECK-NEXT: {160// CHECK-NEXT: "id": "0x{{.*}}",161// CHECK-NEXT: "kind": "TypedefDecl",162// CHECK-NEXT: "loc": {},163// CHECK-NEXT: "range": {164// CHECK-NEXT: "begin": {},165// CHECK-NEXT: "end": {}166// CHECK-NEXT: },167// CHECK-NEXT: "isImplicit": true,168// CHECK-NEXT: "name": "__builtin_ms_va_list",169// CHECK-NEXT: "type": {170// CHECK-NEXT: "qualType": "char *"171// CHECK-NEXT: },172// CHECK-NEXT: "inner": [173// CHECK-NEXT: {174// CHECK-NEXT: "id": "0x{{.*}}",175// CHECK-NEXT: "kind": "PointerType",176// CHECK-NEXT: "type": {177// CHECK-NEXT: "qualType": "char *"178// CHECK-NEXT: },179// CHECK-NEXT: "inner": [180// CHECK-NEXT: {181// CHECK-NEXT: "id": "0x{{.*}}",182// CHECK-NEXT: "kind": "BuiltinType",183// CHECK-NEXT: "type": {184// CHECK-NEXT: "qualType": "char"185// CHECK-NEXT: }186// CHECK-NEXT: }187// CHECK-NEXT: ]188// CHECK-NEXT: }189// CHECK-NEXT: ]190// CHECK-NEXT: },191// CHECK-NEXT: {192// CHECK-NEXT: "id": "0x{{.*}}",193// CHECK-NEXT: "kind": "TypedefDecl",194// CHECK-NEXT: "loc": {},195// CHECK-NEXT: "range": {196// CHECK-NEXT: "begin": {},197// CHECK-NEXT: "end": {}198// CHECK-NEXT: },199// CHECK-NEXT: "isImplicit": true,200// CHECK-NEXT: "name": "__builtin_va_list",201// CHECK-NEXT: "type": {202// CHECK-NEXT: "qualType": "char *"203// CHECK-NEXT: },204// CHECK-NEXT: "inner": [205// CHECK-NEXT: {206// CHECK-NEXT: "id": "0x{{.*}}",207// CHECK-NEXT: "kind": "PointerType",208// CHECK-NEXT: "type": {209// CHECK-NEXT: "qualType": "char *"210// CHECK-NEXT: },211// CHECK-NEXT: "inner": [212// CHECK-NEXT: {213// CHECK-NEXT: "id": "0x{{.*}}",214// CHECK-NEXT: "kind": "BuiltinType",215// CHECK-NEXT: "type": {216// CHECK-NEXT: "qualType": "char"217// CHECK-NEXT: }218// CHECK-NEXT: }219// CHECK-NEXT: ]220// CHECK-NEXT: }221// CHECK-NEXT: ]222// CHECK-NEXT: },223// CHECK-NEXT: {224// CHECK-NEXT: "id": "0x{{.*}}",225// CHECK-NEXT: "kind": "ClassTemplateDecl",226// CHECK-NEXT: "loc": {227// CHECK-NEXT: "offset": 176,228// CHECK-NEXT: "file": "{{.*}}",229// CHECK-NEXT: "line": 7,230// CHECK-NEXT: "col": 8,231// CHECK-NEXT: "tokLen": 17232// CHECK-NEXT: },233// CHECK-NEXT: "range": {234// CHECK-NEXT: "begin": {235// CHECK-NEXT: "offset": 138,236// CHECK-NEXT: "line": 6,237// CHECK-NEXT: "col": 1,238// CHECK-NEXT: "tokLen": 8239// CHECK-NEXT: },240// CHECK-NEXT: "end": {241// CHECK-NEXT: "offset": 483,242// CHECK-NEXT: "line": 20,243// CHECK-NEXT: "col": 1,244// CHECK-NEXT: "tokLen": 1245// CHECK-NEXT: }246// CHECK-NEXT: },247// CHECK-NEXT: "name": "integral_constant",248// CHECK-NEXT: "inner": [249// CHECK-NEXT: {250// CHECK-NEXT: "id": "0x{{.*}}",251// CHECK-NEXT: "kind": "TemplateTypeParmDecl",252// CHECK-NEXT: "loc": {253// CHECK-NEXT: "offset": 154,254// CHECK-NEXT: "line": 6,255// CHECK-NEXT: "col": 17,256// CHECK-NEXT: "tokLen": 3257// CHECK-NEXT: },258// CHECK-NEXT: "range": {259// CHECK-NEXT: "begin": {260// CHECK-NEXT: "offset": 148,261// CHECK-NEXT: "col": 11,262// CHECK-NEXT: "tokLen": 5263// CHECK-NEXT: },264// CHECK-NEXT: "end": {265// CHECK-NEXT: "offset": 154,266// CHECK-NEXT: "col": 17,267// CHECK-NEXT: "tokLen": 3268// CHECK-NEXT: }269// CHECK-NEXT: },270// CHECK-NEXT: "isReferenced": true,271// CHECK-NEXT: "name": "_Ty",272// CHECK-NEXT: "tagUsed": "class",273// CHECK-NEXT: "depth": 0,274// CHECK-NEXT: "index": 0275// CHECK-NEXT: },276// CHECK-NEXT: {277// CHECK-NEXT: "id": "0x{{.*}}",278// CHECK-NEXT: "kind": "NonTypeTemplateParmDecl",279// CHECK-NEXT: "loc": {280// CHECK-NEXT: "offset": 163,281// CHECK-NEXT: "col": 26,282// CHECK-NEXT: "tokLen": 4283// CHECK-NEXT: },284// CHECK-NEXT: "range": {285// CHECK-NEXT: "begin": {286// CHECK-NEXT: "offset": 159,287// CHECK-NEXT: "col": 22,288// CHECK-NEXT: "tokLen": 3289// CHECK-NEXT: },290// CHECK-NEXT: "end": {291// CHECK-NEXT: "offset": 163,292// CHECK-NEXT: "col": 26,293// CHECK-NEXT: "tokLen": 4294// CHECK-NEXT: }295// CHECK-NEXT: },296// CHECK-NEXT: "isReferenced": true,297// CHECK-NEXT: "name": "_Val",298// CHECK-NEXT: "type": {299// CHECK-NEXT: "qualType": "_Ty"300// CHECK-NEXT: },301// CHECK-NEXT: "depth": 0,302// CHECK-NEXT: "index": 1303// CHECK-NEXT: },304// CHECK-NEXT: {305// CHECK-NEXT: "id": "0x{{.*}}",306// CHECK-NEXT: "kind": "CXXRecordDecl",307// CHECK-NEXT: "loc": {308// CHECK-NEXT: "offset": 176,309// CHECK-NEXT: "line": 7,310// CHECK-NEXT: "col": 8,311// CHECK-NEXT: "tokLen": 17312// CHECK-NEXT: },313// CHECK-NEXT: "range": {314// CHECK-NEXT: "begin": {315// CHECK-NEXT: "offset": 169,316// CHECK-NEXT: "col": 1,317// CHECK-NEXT: "tokLen": 6318// CHECK-NEXT: },319// CHECK-NEXT: "end": {320// CHECK-NEXT: "offset": 483,321// CHECK-NEXT: "line": 20,322// CHECK-NEXT: "col": 1,323// CHECK-NEXT: "tokLen": 1324// CHECK-NEXT: }325// CHECK-NEXT: },326// CHECK-NEXT: "name": "integral_constant",327// CHECK-NEXT: "tagUsed": "struct",328// CHECK-NEXT: "completeDefinition": true,329// CHECK-NEXT: "definitionData": {330// CHECK-NEXT: "canConstDefaultInit": true,331// CHECK-NEXT: "copyAssign": {332// CHECK-NEXT: "hasConstParam": true,333// CHECK-NEXT: "implicitHasConstParam": true,334// CHECK-NEXT: "needsImplicit": true,335// CHECK-NEXT: "simple": true,336// CHECK-NEXT: "trivial": true337// CHECK-NEXT: },338// CHECK-NEXT: "copyCtor": {339// CHECK-NEXT: "hasConstParam": true,340// CHECK-NEXT: "implicitHasConstParam": true,341// CHECK-NEXT: "needsImplicit": true,342// CHECK-NEXT: "simple": true,343// CHECK-NEXT: "trivial": true344// CHECK-NEXT: },345// CHECK-NEXT: "defaultCtor": {346// CHECK-NEXT: "defaultedIsConstexpr": true,347// CHECK-NEXT: "exists": true,348// CHECK-NEXT: "isConstexpr": true,349// CHECK-NEXT: "needsImplicit": true,350// CHECK-NEXT: "trivial": true351// CHECK-NEXT: },352// CHECK-NEXT: "dtor": {353// CHECK-NEXT: "irrelevant": true,354// CHECK-NEXT: "needsImplicit": true,355// CHECK-NEXT: "simple": true,356// CHECK-NEXT: "trivial": true357// CHECK-NEXT: },358// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,359// CHECK-NEXT: "isAggregate": true,360// CHECK-NEXT: "isEmpty": true,361// CHECK-NEXT: "isLiteral": true,362// CHECK-NEXT: "isPOD": true,363// CHECK-NEXT: "isStandardLayout": true,364// CHECK-NEXT: "isTrivial": true,365// CHECK-NEXT: "isTriviallyCopyable": true,366// CHECK-NEXT: "moveAssign": {367// CHECK-NEXT: "exists": true,368// CHECK-NEXT: "needsImplicit": true,369// CHECK-NEXT: "simple": true,370// CHECK-NEXT: "trivial": true371// CHECK-NEXT: },372// CHECK-NEXT: "moveCtor": {373// CHECK-NEXT: "exists": true,374// CHECK-NEXT: "needsImplicit": true,375// CHECK-NEXT: "simple": true,376// CHECK-NEXT: "trivial": true377// CHECK-NEXT: }378// CHECK-NEXT: },379// CHECK-NEXT: "inner": [380// CHECK-NEXT: {381// CHECK-NEXT: "id": "0x{{.*}}",382// CHECK-NEXT: "kind": "CXXRecordDecl",383// CHECK-NEXT: "loc": {384// CHECK-NEXT: "offset": 176,385// CHECK-NEXT: "line": 7,386// CHECK-NEXT: "col": 8,387// CHECK-NEXT: "tokLen": 17388// CHECK-NEXT: },389// CHECK-NEXT: "range": {390// CHECK-NEXT: "begin": {391// CHECK-NEXT: "offset": 169,392// CHECK-NEXT: "col": 1,393// CHECK-NEXT: "tokLen": 6394// CHECK-NEXT: },395// CHECK-NEXT: "end": {396// CHECK-NEXT: "offset": 176,397// CHECK-NEXT: "col": 8,398// CHECK-NEXT: "tokLen": 17399// CHECK-NEXT: }400// CHECK-NEXT: },401// CHECK-NEXT: "isImplicit": true,402// CHECK-NEXT: "isReferenced": true,403// CHECK-NEXT: "name": "integral_constant",404// CHECK-NEXT: "tagUsed": "struct"405// CHECK-NEXT: },406// CHECK-NEXT: {407// CHECK-NEXT: "id": "0x{{.*}}",408// CHECK-NEXT: "kind": "VarDecl",409// CHECK-NEXT: "loc": {410// CHECK-NEXT: "offset": 221,411// CHECK-NEXT: "line": 8,412// CHECK-NEXT: "col": 26,413// CHECK-NEXT: "tokLen": 5414// CHECK-NEXT: },415// CHECK-NEXT: "range": {416// CHECK-NEXT: "begin": {417// CHECK-NEXT: "offset": 200,418// CHECK-NEXT: "col": 5,419// CHECK-NEXT: "tokLen": 6420// CHECK-NEXT: },421// CHECK-NEXT: "end": {422// CHECK-NEXT: "offset": 229,423// CHECK-NEXT: "col": 34,424// CHECK-NEXT: "tokLen": 4425// CHECK-NEXT: }426// CHECK-NEXT: },427// CHECK-NEXT: "isReferenced": true,428// CHECK-NEXT: "name": "value",429// CHECK-NEXT: "type": {430// CHECK-NEXT: "qualType": "const _Ty"431// CHECK-NEXT: },432// CHECK-NEXT: "storageClass": "static",433// CHECK-NEXT: "inline": true,434// CHECK-NEXT: "constexpr": true,435// CHECK-NEXT: "init": "c",436// CHECK-NEXT: "inner": [437// CHECK-NEXT: {438// CHECK-NEXT: "id": "0x{{.*}}",439// CHECK-NEXT: "kind": "DeclRefExpr",440// CHECK-NEXT: "range": {441// CHECK-NEXT: "begin": {442// CHECK-NEXT: "offset": 229,443// CHECK-NEXT: "col": 34,444// CHECK-NEXT: "tokLen": 4445// CHECK-NEXT: },446// CHECK-NEXT: "end": {447// CHECK-NEXT: "offset": 229,448// CHECK-NEXT: "col": 34,449// CHECK-NEXT: "tokLen": 4450// CHECK-NEXT: }451// CHECK-NEXT: },452// CHECK-NEXT: "type": {453// CHECK-NEXT: "qualType": "_Ty"454// CHECK-NEXT: },455// CHECK-NEXT: "valueCategory": "prvalue",456// CHECK-NEXT: "referencedDecl": {457// CHECK-NEXT: "id": "0x{{.*}}",458// CHECK-NEXT: "kind": "NonTypeTemplateParmDecl",459// CHECK-NEXT: "name": "_Val",460// CHECK-NEXT: "type": {461// CHECK-NEXT: "qualType": "_Ty"462// CHECK-NEXT: }463// CHECK-NEXT: }464// CHECK-NEXT: }465// CHECK-NEXT: ]466// CHECK-NEXT: },467// CHECK-NEXT: {468// CHECK-NEXT: "id": "0x{{.*}}",469// CHECK-NEXT: "kind": "TypeAliasDecl",470// CHECK-NEXT: "loc": {471// CHECK-NEXT: "offset": 246,472// CHECK-NEXT: "line": 10,473// CHECK-NEXT: "col": 11,474// CHECK-NEXT: "tokLen": 10475// CHECK-NEXT: },476// CHECK-NEXT: "range": {477// CHECK-NEXT: "begin": {478// CHECK-NEXT: "offset": 240,479// CHECK-NEXT: "col": 5,480// CHECK-NEXT: "tokLen": 5481// CHECK-NEXT: },482// CHECK-NEXT: "end": {483// CHECK-NEXT: "offset": 259,484// CHECK-NEXT: "col": 24,485// CHECK-NEXT: "tokLen": 3486// CHECK-NEXT: }487// CHECK-NEXT: },488// CHECK-NEXT: "isReferenced": true,489// CHECK-NEXT: "name": "value_type",490// CHECK-NEXT: "type": {491// CHECK-NEXT: "qualType": "_Ty"492// CHECK-NEXT: },493// CHECK-NEXT: "inner": [494// CHECK-NEXT: {495// CHECK-NEXT: "id": "0x{{.*}}",496// CHECK-NEXT: "kind": "TemplateTypeParmType",497// CHECK-NEXT: "type": {498// CHECK-NEXT: "qualType": "_Ty"499// CHECK-NEXT: },500// CHECK-NEXT: "isDependent": true,501// CHECK-NEXT: "isInstantiationDependent": true,502// CHECK-NEXT: "depth": 0,503// CHECK-NEXT: "index": 0,504// CHECK-NEXT: "decl": {505// CHECK-NEXT: "id": "0x{{.*}}",506// CHECK-NEXT: "kind": "TemplateTypeParmDecl",507// CHECK-NEXT: "name": "_Ty"508// CHECK-NEXT: }509// CHECK-NEXT: }510// CHECK-NEXT: ]511// CHECK-NEXT: },512// CHECK-NEXT: {513// CHECK-NEXT: "id": "0x{{.*}}",514// CHECK-NEXT: "kind": "TypeAliasDecl",515// CHECK-NEXT: "loc": {516// CHECK-NEXT: "offset": 274,517// CHECK-NEXT: "line": 11,518// CHECK-NEXT: "col": 11,519// CHECK-NEXT: "tokLen": 4520// CHECK-NEXT: },521// CHECK-NEXT: "range": {522// CHECK-NEXT: "begin": {523// CHECK-NEXT: "offset": 268,524// CHECK-NEXT: "col": 5,525// CHECK-NEXT: "tokLen": 5526// CHECK-NEXT: },527// CHECK-NEXT: "end": {528// CHECK-NEXT: "offset": 287,529// CHECK-NEXT: "col": 24,530// CHECK-NEXT: "tokLen": 17531// CHECK-NEXT: }532// CHECK-NEXT: },533// CHECK-NEXT: "name": "type",534// CHECK-NEXT: "type": {535// CHECK-NEXT: "qualType": "integral_constant<_Ty, _Val>"536// CHECK-NEXT: },537// CHECK-NEXT: "inner": [538// CHECK-NEXT: {539// CHECK-NEXT: "id": "0x{{.*}}",540// CHECK-NEXT: "kind": "InjectedClassNameType",541// CHECK-NEXT: "type": {542// CHECK-NEXT: "qualType": "integral_constant<_Ty, _Val>"543// CHECK-NEXT: },544// CHECK-NEXT: "isDependent": true,545// CHECK-NEXT: "isInstantiationDependent": true,546// CHECK-NEXT: "decl": {547// CHECK-NEXT: "id": "0x{{.*}}",548// CHECK-NEXT: "kind": "CXXRecordDecl",549// CHECK-NEXT: "name": "integral_constant"550// CHECK-NEXT: }551// CHECK-NEXT: }552// CHECK-NEXT: ]553// CHECK-NEXT: },554// CHECK-NEXT: {555// CHECK-NEXT: "id": "0x{{.*}}",556// CHECK-NEXT: "kind": "CXXConversionDecl",557// CHECK-NEXT: "loc": {558// CHECK-NEXT: "offset": 321,559// CHECK-NEXT: "line": 13,560// CHECK-NEXT: "col": 15,561// CHECK-NEXT: "tokLen": 8562// CHECK-NEXT: },563// CHECK-NEXT: "range": {564// CHECK-NEXT: "begin": {565// CHECK-NEXT: "offset": 311,566// CHECK-NEXT: "col": 5,567// CHECK-NEXT: "tokLen": 9568// CHECK-NEXT: },569// CHECK-NEXT: "end": {570// CHECK-NEXT: "offset": 386,571// CHECK-NEXT: "line": 15,572// CHECK-NEXT: "col": 5,573// CHECK-NEXT: "tokLen": 1574// CHECK-NEXT: }575// CHECK-NEXT: },576// CHECK-NEXT: "name": "operator type-parameter-0-0",577// CHECK-NEXT: "type": {578// CHECK-NEXT: "qualType": "value_type () const noexcept"579// CHECK-NEXT: },580// CHECK-NEXT: "constexpr": true,581// CHECK-NEXT: "inner": [582// CHECK-NEXT: {583// CHECK-NEXT: "id": "0x{{.*}}",584// CHECK-NEXT: "kind": "CompoundStmt",585// CHECK-NEXT: "range": {586// CHECK-NEXT: "begin": {587// CHECK-NEXT: "offset": 358,588// CHECK-NEXT: "line": 13,589// CHECK-NEXT: "col": 52,590// CHECK-NEXT: "tokLen": 1591// CHECK-NEXT: },592// CHECK-NEXT: "end": {593// CHECK-NEXT: "offset": 386,594// CHECK-NEXT: "line": 15,595// CHECK-NEXT: "col": 5,596// CHECK-NEXT: "tokLen": 1597// CHECK-NEXT: }598// CHECK-NEXT: },599// CHECK-NEXT: "inner": [600// CHECK-NEXT: {601// CHECK-NEXT: "id": "0x{{.*}}",602// CHECK-NEXT: "kind": "ReturnStmt",603// CHECK-NEXT: "range": {604// CHECK-NEXT: "begin": {605// CHECK-NEXT: "offset": 368,606// CHECK-NEXT: "line": 14,607// CHECK-NEXT: "col": 9,608// CHECK-NEXT: "tokLen": 6609// CHECK-NEXT: },610// CHECK-NEXT: "end": {611// CHECK-NEXT: "offset": 375,612// CHECK-NEXT: "col": 16,613// CHECK-NEXT: "tokLen": 5614// CHECK-NEXT: }615// CHECK-NEXT: },616// CHECK-NEXT: "inner": [617// CHECK-NEXT: {618// CHECK-NEXT: "id": "0x{{.*}}",619// CHECK-NEXT: "kind": "DeclRefExpr",620// CHECK-NEXT: "range": {621// CHECK-NEXT: "begin": {622// CHECK-NEXT: "offset": 375,623// CHECK-NEXT: "col": 16,624// CHECK-NEXT: "tokLen": 5625// CHECK-NEXT: },626// CHECK-NEXT: "end": {627// CHECK-NEXT: "offset": 375,628// CHECK-NEXT: "col": 16,629// CHECK-NEXT: "tokLen": 5630// CHECK-NEXT: }631// CHECK-NEXT: },632// CHECK-NEXT: "type": {633// CHECK-NEXT: "qualType": "const _Ty"634// CHECK-NEXT: },635// CHECK-NEXT: "valueCategory": "lvalue",636// CHECK-NEXT: "referencedDecl": {637// CHECK-NEXT: "id": "0x{{.*}}",638// CHECK-NEXT: "kind": "VarDecl",639// CHECK-NEXT: "name": "value",640// CHECK-NEXT: "type": {641// CHECK-NEXT: "qualType": "const _Ty"642// CHECK-NEXT: }643// CHECK-NEXT: }644// CHECK-NEXT: }645// CHECK-NEXT: ]646// CHECK-NEXT: }647// CHECK-NEXT: ]648// CHECK-NEXT: }649// CHECK-NEXT: ]650// CHECK-NEXT: },651// CHECK-NEXT: {652// CHECK-NEXT: "id": "0x{{.*}}",653// CHECK-NEXT: "kind": "CXXMethodDecl",654// CHECK-NEXT: "loc": {655// CHECK-NEXT: "offset": 425,656// CHECK-NEXT: "line": 17,657// CHECK-NEXT: "col": 37,658// CHECK-NEXT: "tokLen": 8659// CHECK-NEXT: },660// CHECK-NEXT: "range": {661// CHECK-NEXT: "begin": {662// CHECK-NEXT: "spellingLoc": {663// CHECK-NEXT: "offset": 123,664// CHECK-NEXT: "line": 4,665// CHECK-NEXT: "col": 20,666// CHECK-NEXT: "tokLen": 1667// CHECK-NEXT: },668// CHECK-NEXT: "expansionLoc": {669// CHECK-NEXT: "offset": 393,670// CHECK-NEXT: "line": 17,671// CHECK-NEXT: "col": 5,672// CHECK-NEXT: "tokLen": 10673// CHECK-NEXT: }674// CHECK-NEXT: },675// CHECK-NEXT: "end": {676// CHECK-NEXT: "offset": 481,677// CHECK-NEXT: "line": 19,678// CHECK-NEXT: "col": 5,679// CHECK-NEXT: "tokLen": 1680// CHECK-NEXT: }681// CHECK-NEXT: },682// CHECK-NEXT: "name": "operator()",683// CHECK-NEXT: "type": {684// CHECK-NEXT: "qualType": "value_type () const noexcept"685// CHECK-NEXT: },686// CHECK-NEXT: "constexpr": true,687// CHECK-NEXT: "inner": [688// CHECK-NEXT: {689// CHECK-NEXT: "id": "0x{{.*}}",690// CHECK-NEXT: "kind": "CompoundStmt",691// CHECK-NEXT: "range": {692// CHECK-NEXT: "begin": {693// CHECK-NEXT: "offset": 453,694// CHECK-NEXT: "line": 17,695// CHECK-NEXT: "col": 65,696// CHECK-NEXT: "tokLen": 1697// CHECK-NEXT: },698// CHECK-NEXT: "end": {699// CHECK-NEXT: "offset": 481,700// CHECK-NEXT: "line": 19,701// CHECK-NEXT: "col": 5,702// CHECK-NEXT: "tokLen": 1703// CHECK-NEXT: }704// CHECK-NEXT: },705// CHECK-NEXT: "inner": [706// CHECK-NEXT: {707// CHECK-NEXT: "id": "0x{{.*}}",708// CHECK-NEXT: "kind": "ReturnStmt",709// CHECK-NEXT: "range": {710// CHECK-NEXT: "begin": {711// CHECK-NEXT: "offset": 463,712// CHECK-NEXT: "line": 18,713// CHECK-NEXT: "col": 9,714// CHECK-NEXT: "tokLen": 6715// CHECK-NEXT: },716// CHECK-NEXT: "end": {717// CHECK-NEXT: "offset": 470,718// CHECK-NEXT: "col": 16,719// CHECK-NEXT: "tokLen": 5720// CHECK-NEXT: }721// CHECK-NEXT: },722// CHECK-NEXT: "inner": [723// CHECK-NEXT: {724// CHECK-NEXT: "id": "0x{{.*}}",725// CHECK-NEXT: "kind": "DeclRefExpr",726// CHECK-NEXT: "range": {727// CHECK-NEXT: "begin": {728// CHECK-NEXT: "offset": 470,729// CHECK-NEXT: "col": 16,730// CHECK-NEXT: "tokLen": 5731// CHECK-NEXT: },732// CHECK-NEXT: "end": {733// CHECK-NEXT: "offset": 470,734// CHECK-NEXT: "col": 16,735// CHECK-NEXT: "tokLen": 5736// CHECK-NEXT: }737// CHECK-NEXT: },738// CHECK-NEXT: "type": {739// CHECK-NEXT: "qualType": "const _Ty"740// CHECK-NEXT: },741// CHECK-NEXT: "valueCategory": "lvalue",742// CHECK-NEXT: "referencedDecl": {743// CHECK-NEXT: "id": "0x{{.*}}",744// CHECK-NEXT: "kind": "VarDecl",745// CHECK-NEXT: "name": "value",746// CHECK-NEXT: "type": {747// CHECK-NEXT: "qualType": "const _Ty"748// CHECK-NEXT: }749// CHECK-NEXT: }750// CHECK-NEXT: }751// CHECK-NEXT: ]752// CHECK-NEXT: }753// CHECK-NEXT: ]754// CHECK-NEXT: },755// CHECK-NEXT: {756// CHECK-NEXT: "id": "0x{{.*}}",757// CHECK-NEXT: "kind": "WarnUnusedResultAttr",758// CHECK-NEXT: "range": {759// CHECK-NEXT: "begin": {760// CHECK-NEXT: "spellingLoc": {761// CHECK-NEXT: "offset": 125,762// CHECK-NEXT: "line": 4,763// CHECK-NEXT: "col": 22,764// CHECK-NEXT: "tokLen": 9765// CHECK-NEXT: },766// CHECK-NEXT: "expansionLoc": {767// CHECK-NEXT: "offset": 393,768// CHECK-NEXT: "line": 17,769// CHECK-NEXT: "col": 5,770// CHECK-NEXT: "tokLen": 10771// CHECK-NEXT: }772// CHECK-NEXT: },773// CHECK-NEXT: "end": {774// CHECK-NEXT: "spellingLoc": {775// CHECK-NEXT: "offset": 125,776// CHECK-NEXT: "line": 4,777// CHECK-NEXT: "col": 22,778// CHECK-NEXT: "tokLen": 9779// CHECK-NEXT: },780// CHECK-NEXT: "expansionLoc": {781// CHECK-NEXT: "offset": 393,782// CHECK-NEXT: "line": 17,783// CHECK-NEXT: "col": 5,784// CHECK-NEXT: "tokLen": 10785// CHECK-NEXT: }786// CHECK-NEXT: }787// CHECK-NEXT: }788// CHECK-NEXT: }789// CHECK-NEXT: ]790// CHECK-NEXT: }791// CHECK-NEXT: ]792// CHECK-NEXT: }793// CHECK-NEXT: ]794// CHECK-NEXT: },795// CHECK-NEXT: {796// CHECK-NEXT: "id": "0x{{.*}}",797// CHECK-NEXT: "kind": "TypeAliasTemplateDecl",798// CHECK-NEXT: "loc": {799// CHECK-NEXT: "offset": 508,800// CHECK-NEXT: "line": 23,801// CHECK-NEXT: "col": 1,802// CHECK-NEXT: "tokLen": 5803// CHECK-NEXT: },804// CHECK-NEXT: "range": {805// CHECK-NEXT: "begin": {806// CHECK-NEXT: "offset": 487,807// CHECK-NEXT: "line": 22,808// CHECK-NEXT: "col": 1,809// CHECK-NEXT: "tokLen": 8810// CHECK-NEXT: },811// CHECK-NEXT: "end": {812// CHECK-NEXT: "offset": 558,813// CHECK-NEXT: "line": 23,814// CHECK-NEXT: "col": 51,815// CHECK-NEXT: "tokLen": 1816// CHECK-NEXT: }817// CHECK-NEXT: },818// CHECK-NEXT: "name": "bool_constant",819// CHECK-NEXT: "inner": [820// CHECK-NEXT: {821// CHECK-NEXT: "id": "0x{{.*}}",822// CHECK-NEXT: "kind": "NonTypeTemplateParmDecl",823// CHECK-NEXT: "loc": {824// CHECK-NEXT: "offset": 502,825// CHECK-NEXT: "line": 22,826// CHECK-NEXT: "col": 16,827// CHECK-NEXT: "tokLen": 4828// CHECK-NEXT: },829// CHECK-NEXT: "range": {830// CHECK-NEXT: "begin": {831// CHECK-NEXT: "offset": 497,832// CHECK-NEXT: "col": 11,833// CHECK-NEXT: "tokLen": 4834// CHECK-NEXT: },835// CHECK-NEXT: "end": {836// CHECK-NEXT: "offset": 502,837// CHECK-NEXT: "col": 16,838// CHECK-NEXT: "tokLen": 4839// CHECK-NEXT: }840// CHECK-NEXT: },841// CHECK-NEXT: "isReferenced": true,842// CHECK-NEXT: "name": "_Val",843// CHECK-NEXT: "type": {844// CHECK-NEXT: "qualType": "bool"845// CHECK-NEXT: },846// CHECK-NEXT: "depth": 0,847// CHECK-NEXT: "index": 0848// CHECK-NEXT: },849// CHECK-NEXT: {850// CHECK-NEXT: "id": "0x{{.*}}",851// CHECK-NEXT: "kind": "TypeAliasDecl",852// CHECK-NEXT: "loc": {853// CHECK-NEXT: "offset": 514,854// CHECK-NEXT: "line": 23,855// CHECK-NEXT: "col": 7,856// CHECK-NEXT: "tokLen": 13857// CHECK-NEXT: },858// CHECK-NEXT: "range": {859// CHECK-NEXT: "begin": {860// CHECK-NEXT: "offset": 508,861// CHECK-NEXT: "col": 1,862// CHECK-NEXT: "tokLen": 5863// CHECK-NEXT: },864// CHECK-NEXT: "end": {865// CHECK-NEXT: "offset": 558,866// CHECK-NEXT: "col": 51,867// CHECK-NEXT: "tokLen": 1868// CHECK-NEXT: }869// CHECK-NEXT: },870// CHECK-NEXT: "name": "bool_constant",871// CHECK-NEXT: "type": {872// CHECK-NEXT: "qualType": "integral_constant<bool, _Val>"873// CHECK-NEXT: },874// CHECK-NEXT: "inner": [875// CHECK-NEXT: {876// CHECK-NEXT: "id": "0x{{.*}}",877// CHECK-NEXT: "kind": "TemplateSpecializationType",878// CHECK-NEXT: "type": {879// CHECK-NEXT: "qualType": "integral_constant<bool, _Val>"880// CHECK-NEXT: },881// CHECK-NEXT: "isDependent": true,882// CHECK-NEXT: "isInstantiationDependent": true,883// CHECK-NEXT: "templateName": "integral_constant",884// CHECK-NEXT: "inner": [885// CHECK-NEXT: {886// CHECK-NEXT: "kind": "TemplateArgument",887// CHECK-NEXT: "type": {888// CHECK-NEXT: "qualType": "bool"889// CHECK-NEXT: },890// CHECK-NEXT: "inner": [891// CHECK-NEXT: {892// CHECK-NEXT: "id": "0x{{.*}}",893// CHECK-NEXT: "kind": "BuiltinType",894// CHECK-NEXT: "type": {895// CHECK-NEXT: "qualType": "bool"896// CHECK-NEXT: }897// CHECK-NEXT: }898// CHECK-NEXT: ]899// CHECK-NEXT: },900// CHECK-NEXT: {901// CHECK-NEXT: "kind": "TemplateArgument",902// CHECK-NEXT: "isExpr": true,903// CHECK-NEXT: "inner": [904// CHECK-NEXT: {905// CHECK-NEXT: "id": "0x{{.*}}",906// CHECK-NEXT: "kind": "DeclRefExpr",907// CHECK-NEXT: "range": {908// CHECK-NEXT: "begin": {909// CHECK-NEXT: "offset": 554,910// CHECK-NEXT: "col": 47,911// CHECK-NEXT: "tokLen": 4912// CHECK-NEXT: },913// CHECK-NEXT: "end": {914// CHECK-NEXT: "offset": 554,915// CHECK-NEXT: "col": 47,916// CHECK-NEXT: "tokLen": 4917// CHECK-NEXT: }918// CHECK-NEXT: },919// CHECK-NEXT: "type": {920// CHECK-NEXT: "qualType": "bool"921// CHECK-NEXT: },922// CHECK-NEXT: "valueCategory": "prvalue",923// CHECK-NEXT: "referencedDecl": {924// CHECK-NEXT: "id": "0x{{.*}}",925// CHECK-NEXT: "kind": "NonTypeTemplateParmDecl",926// CHECK-NEXT: "name": "_Val",927// CHECK-NEXT: "type": {928// CHECK-NEXT: "qualType": "bool"929// CHECK-NEXT: }930// CHECK-NEXT: }931// CHECK-NEXT: }932// CHECK-NEXT: ]933// CHECK-NEXT: }934// CHECK-NEXT: ]935// CHECK-NEXT: }936// CHECK-NEXT: ]937// CHECK-NEXT: }938// CHECK-NEXT: ]939// CHECK-NEXT: },940// CHECK-NEXT: {941// CHECK-NEXT: "id": "0x{{.*}}",942// CHECK-NEXT: "kind": "VarTemplateDecl",943// CHECK-NEXT: "loc": {944// CHECK-NEXT: "offset": 606,945// CHECK-NEXT: "line": 26,946// CHECK-NEXT: "col": 28,947// CHECK-NEXT: "tokLen": 10948// CHECK-NEXT: },949// CHECK-NEXT: "range": {950// CHECK-NEXT: "begin": {951// CHECK-NEXT: "offset": 562,952// CHECK-NEXT: "line": 25,953// CHECK-NEXT: "col": 1,954// CHECK-NEXT: "tokLen": 8955// CHECK-NEXT: },956// CHECK-NEXT: "end": {957// CHECK-NEXT: "offset": 619,958// CHECK-NEXT: "line": 26,959// CHECK-NEXT: "col": 41,960// CHECK-NEXT: "tokLen": 5961// CHECK-NEXT: }962// CHECK-NEXT: },963// CHECK-NEXT: "name": "is_const_v",964// CHECK-NEXT: "inner": [965// CHECK-NEXT: {966// CHECK-NEXT: "id": "0x{{.*}}",967// CHECK-NEXT: "kind": "TemplateTypeParmDecl",968// CHECK-NEXT: "loc": {969// CHECK-NEXT: "offset": 577,970// CHECK-NEXT: "line": 25,971// CHECK-NEXT: "col": 16,972// CHECK-NEXT: "tokLen": 1973// CHECK-NEXT: },974// CHECK-NEXT: "range": {975// CHECK-NEXT: "begin": {976// CHECK-NEXT: "offset": 572,977// CHECK-NEXT: "col": 11,978// CHECK-NEXT: "tokLen": 5979// CHECK-NEXT: },980// CHECK-NEXT: "end": {981// CHECK-NEXT: "offset": 572,982// CHECK-NEXT: "col": 11,983// CHECK-NEXT: "tokLen": 5984// CHECK-NEXT: }985// CHECK-NEXT: },986// CHECK-NEXT: "tagUsed": "class",987// CHECK-NEXT: "depth": 0,988// CHECK-NEXT: "index": 0989// CHECK-NEXT: },990// CHECK-NEXT: {991// CHECK-NEXT: "id": "0x{{.*}}",992// CHECK-NEXT: "kind": "VarDecl",993// CHECK-NEXT: "loc": {994// CHECK-NEXT: "offset": 606,995// CHECK-NEXT: "line": 26,996// CHECK-NEXT: "col": 28,997// CHECK-NEXT: "tokLen": 10998// CHECK-NEXT: },999// CHECK-NEXT: "range": {1000// CHECK-NEXT: "begin": {1001// CHECK-NEXT: "spellingLoc": {1002// CHECK-NEXT: "offset": 97,1003// CHECK-NEXT: "line": 3,1004// CHECK-NEXT: "col": 21,1005// CHECK-NEXT: "tokLen": 61006// CHECK-NEXT: },1007// CHECK-NEXT: "expansionLoc": {1008// CHECK-NEXT: "offset": 579,1009// CHECK-NEXT: "line": 26,1010// CHECK-NEXT: "col": 1,1011// CHECK-NEXT: "tokLen": 111012// CHECK-NEXT: }1013// CHECK-NEXT: },1014// CHECK-NEXT: "end": {1015// CHECK-NEXT: "offset": 619,1016// CHECK-NEXT: "col": 41,1017// CHECK-NEXT: "tokLen": 51018// CHECK-NEXT: }1019// CHECK-NEXT: },1020// CHECK-NEXT: "name": "is_const_v",1021// CHECK-NEXT: "type": {1022// CHECK-NEXT: "qualType": "const bool"1023// CHECK-NEXT: },1024// CHECK-NEXT: "inline": true,1025// CHECK-NEXT: "constexpr": true,1026// CHECK-NEXT: "init": "c",1027// CHECK-NEXT: "TemplateInstantiationPattern": "0x{{.*}}",1028// CHECK-NEXT: "inner": [1029// CHECK-NEXT: {1030// CHECK-NEXT: "id": "0x{{.*}}",1031// CHECK-NEXT: "kind": "CXXBoolLiteralExpr",1032// CHECK-NEXT: "range": {1033// CHECK-NEXT: "begin": {1034// CHECK-NEXT: "offset": 619,1035// CHECK-NEXT: "col": 41,1036// CHECK-NEXT: "tokLen": 51037// CHECK-NEXT: },1038// CHECK-NEXT: "end": {1039// CHECK-NEXT: "offset": 619,1040// CHECK-NEXT: "col": 41,1041// CHECK-NEXT: "tokLen": 51042// CHECK-NEXT: }1043// CHECK-NEXT: },1044// CHECK-NEXT: "type": {1045// CHECK-NEXT: "qualType": "bool"1046// CHECK-NEXT: },1047// CHECK-NEXT: "valueCategory": "prvalue",1048// CHECK-NEXT: "value": false1049// CHECK-NEXT: }1050// CHECK-NEXT: ]1051// CHECK-NEXT: }1052// CHECK-NEXT: ]1053// CHECK-NEXT: },1054// CHECK-NEXT: {1055// CHECK-NEXT: "id": "0x{{.*}}",1056// CHECK-NEXT: "kind": "VarTemplatePartialSpecializationDecl",1057// CHECK-NEXT: "loc": {1058// CHECK-NEXT: "offset": 729,1059// CHECK-NEXT: "line": 29,1060// CHECK-NEXT: "col": 28,1061// CHECK-NEXT: "tokLen": 101062// CHECK-NEXT: },1063// CHECK-NEXT: "range": {1064// CHECK-NEXT: "begin": {1065// CHECK-NEXT: "offset": 681,1066// CHECK-NEXT: "line": 28,1067// CHECK-NEXT: "col": 1,1068// CHECK-NEXT: "tokLen": 81069// CHECK-NEXT: },1070// CHECK-NEXT: "end": {1071// CHECK-NEXT: "offset": 753,1072// CHECK-NEXT: "line": 29,1073// CHECK-NEXT: "col": 52,1074// CHECK-NEXT: "tokLen": 41075// CHECK-NEXT: }1076// CHECK-NEXT: },1077// CHECK-NEXT: "name": "is_const_v",1078// CHECK-NEXT: "type": {1079// CHECK-NEXT: "qualType": "const bool"1080// CHECK-NEXT: },1081// CHECK-NEXT: "inline": true,1082// CHECK-NEXT: "constexpr": true,1083// CHECK-NEXT: "init": "c",1084// CHECK-NEXT: "inner": [1085// CHECK-NEXT: {1086// CHECK-NEXT: "id": "0x{{.*}}",1087// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1088// CHECK-NEXT: "loc": {1089// CHECK-NEXT: "offset": 697,1090// CHECK-NEXT: "line": 28,1091// CHECK-NEXT: "col": 17,1092// CHECK-NEXT: "tokLen": 31093// CHECK-NEXT: },1094// CHECK-NEXT: "range": {1095// CHECK-NEXT: "begin": {1096// CHECK-NEXT: "offset": 691,1097// CHECK-NEXT: "col": 11,1098// CHECK-NEXT: "tokLen": 51099// CHECK-NEXT: },1100// CHECK-NEXT: "end": {1101// CHECK-NEXT: "offset": 697,1102// CHECK-NEXT: "col": 17,1103// CHECK-NEXT: "tokLen": 31104// CHECK-NEXT: }1105// CHECK-NEXT: },1106// CHECK-NEXT: "isReferenced": true,1107// CHECK-NEXT: "name": "_Ty",1108// CHECK-NEXT: "tagUsed": "class",1109// CHECK-NEXT: "depth": 0,1110// CHECK-NEXT: "index": 01111// CHECK-NEXT: },1112// CHECK-NEXT: {1113// CHECK-NEXT: "kind": "TemplateArgument",1114// CHECK-NEXT: "type": {1115// CHECK-NEXT: "qualType": "const type-parameter-0-0"1116// CHECK-NEXT: },1117// CHECK-NEXT: "inner": [1118// CHECK-NEXT: {1119// CHECK-NEXT: "id": "0x{{.*}}",1120// CHECK-NEXT: "kind": "QualType",1121// CHECK-NEXT: "type": {1122// CHECK-NEXT: "qualType": "const type-parameter-0-0"1123// CHECK-NEXT: },1124// CHECK-NEXT: "qualifiers": "const",1125// CHECK-NEXT: "inner": [1126// CHECK-NEXT: {1127// CHECK-NEXT: "id": "0x{{.*}}",1128// CHECK-NEXT: "kind": "TemplateTypeParmType",1129// CHECK-NEXT: "type": {1130// CHECK-NEXT: "qualType": "type-parameter-0-0"1131// CHECK-NEXT: },1132// CHECK-NEXT: "isDependent": true,1133// CHECK-NEXT: "isInstantiationDependent": true,1134// CHECK-NEXT: "depth": 0,1135// CHECK-NEXT: "index": 0,1136// CHECK-NEXT: "decl": {1137// CHECK-NEXT: "id": "0x0"1138// CHECK-NEXT: }1139// CHECK-NEXT: }1140// CHECK-NEXT: ]1141// CHECK-NEXT: }1142// CHECK-NEXT: ]1143// CHECK-NEXT: },1144// CHECK-NEXT: {1145// CHECK-NEXT: "id": "0x{{.*}}",1146// CHECK-NEXT: "kind": "CXXBoolLiteralExpr",1147// CHECK-NEXT: "range": {1148// CHECK-NEXT: "begin": {1149// CHECK-NEXT: "offset": 753,1150// CHECK-NEXT: "line": 29,1151// CHECK-NEXT: "col": 52,1152// CHECK-NEXT: "tokLen": 41153// CHECK-NEXT: },1154// CHECK-NEXT: "end": {1155// CHECK-NEXT: "offset": 753,1156// CHECK-NEXT: "col": 52,1157// CHECK-NEXT: "tokLen": 41158// CHECK-NEXT: }1159// CHECK-NEXT: },1160// CHECK-NEXT: "type": {1161// CHECK-NEXT: "qualType": "bool"1162// CHECK-NEXT: },1163// CHECK-NEXT: "valueCategory": "prvalue",1164// CHECK-NEXT: "value": true1165// CHECK-NEXT: }1166// CHECK-NEXT: ]1167// CHECK-NEXT: },1168// CHECK-NEXT: {1169// CHECK-NEXT: "id": "0x{{.*}}",1170// CHECK-NEXT: "kind": "VarTemplateDecl",1171// CHECK-NEXT: "loc": {1172// CHECK-NEXT: "offset": 804,1173// CHECK-NEXT: "line": 32,1174// CHECK-NEXT: "col": 28,1175// CHECK-NEXT: "tokLen": 141176// CHECK-NEXT: },1177// CHECK-NEXT: "range": {1178// CHECK-NEXT: "begin": {1179// CHECK-NEXT: "offset": 760,1180// CHECK-NEXT: "line": 31,1181// CHECK-NEXT: "col": 1,1182// CHECK-NEXT: "tokLen": 81183// CHECK-NEXT: },1184// CHECK-NEXT: "end": {1185// CHECK-NEXT: "offset": 821,1186// CHECK-NEXT: "line": 32,1187// CHECK-NEXT: "col": 45,1188// CHECK-NEXT: "tokLen": 51189// CHECK-NEXT: }1190// CHECK-NEXT: },1191// CHECK-NEXT: "name": "is_reference_v",1192// CHECK-NEXT: "inner": [1193// CHECK-NEXT: {1194// CHECK-NEXT: "id": "0x{{.*}}",1195// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1196// CHECK-NEXT: "loc": {1197// CHECK-NEXT: "offset": 775,1198// CHECK-NEXT: "line": 31,1199// CHECK-NEXT: "col": 16,1200// CHECK-NEXT: "tokLen": 11201// CHECK-NEXT: },1202// CHECK-NEXT: "range": {1203// CHECK-NEXT: "begin": {1204// CHECK-NEXT: "offset": 770,1205// CHECK-NEXT: "col": 11,1206// CHECK-NEXT: "tokLen": 51207// CHECK-NEXT: },1208// CHECK-NEXT: "end": {1209// CHECK-NEXT: "offset": 770,1210// CHECK-NEXT: "col": 11,1211// CHECK-NEXT: "tokLen": 51212// CHECK-NEXT: }1213// CHECK-NEXT: },1214// CHECK-NEXT: "tagUsed": "class",1215// CHECK-NEXT: "depth": 0,1216// CHECK-NEXT: "index": 01217// CHECK-NEXT: },1218// CHECK-NEXT: {1219// CHECK-NEXT: "id": "0x{{.*}}",1220// CHECK-NEXT: "kind": "VarDecl",1221// CHECK-NEXT: "loc": {1222// CHECK-NEXT: "offset": 804,1223// CHECK-NEXT: "line": 32,1224// CHECK-NEXT: "col": 28,1225// CHECK-NEXT: "tokLen": 141226// CHECK-NEXT: },1227// CHECK-NEXT: "range": {1228// CHECK-NEXT: "begin": {1229// CHECK-NEXT: "spellingLoc": {1230// CHECK-NEXT: "offset": 97,1231// CHECK-NEXT: "line": 3,1232// CHECK-NEXT: "col": 21,1233// CHECK-NEXT: "tokLen": 61234// CHECK-NEXT: },1235// CHECK-NEXT: "expansionLoc": {1236// CHECK-NEXT: "offset": 777,1237// CHECK-NEXT: "line": 32,1238// CHECK-NEXT: "col": 1,1239// CHECK-NEXT: "tokLen": 111240// CHECK-NEXT: }1241// CHECK-NEXT: },1242// CHECK-NEXT: "end": {1243// CHECK-NEXT: "offset": 821,1244// CHECK-NEXT: "col": 45,1245// CHECK-NEXT: "tokLen": 51246// CHECK-NEXT: }1247// CHECK-NEXT: },1248// CHECK-NEXT: "name": "is_reference_v",1249// CHECK-NEXT: "type": {1250// CHECK-NEXT: "qualType": "const bool"1251// CHECK-NEXT: },1252// CHECK-NEXT: "inline": true,1253// CHECK-NEXT: "constexpr": true,1254// CHECK-NEXT: "init": "c",1255// CHECK-NEXT: "TemplateInstantiationPattern": "0x{{.*}}",1256// CHECK-NEXT: "inner": [1257// CHECK-NEXT: {1258// CHECK-NEXT: "id": "0x{{.*}}",1259// CHECK-NEXT: "kind": "CXXBoolLiteralExpr",1260// CHECK-NEXT: "range": {1261// CHECK-NEXT: "begin": {1262// CHECK-NEXT: "offset": 821,1263// CHECK-NEXT: "col": 45,1264// CHECK-NEXT: "tokLen": 51265// CHECK-NEXT: },1266// CHECK-NEXT: "end": {1267// CHECK-NEXT: "offset": 821,1268// CHECK-NEXT: "col": 45,1269// CHECK-NEXT: "tokLen": 51270// CHECK-NEXT: }1271// CHECK-NEXT: },1272// CHECK-NEXT: "type": {1273// CHECK-NEXT: "qualType": "bool"1274// CHECK-NEXT: },1275// CHECK-NEXT: "valueCategory": "prvalue",1276// CHECK-NEXT: "value": false1277// CHECK-NEXT: }1278// CHECK-NEXT: ]1279// CHECK-NEXT: }1280// CHECK-NEXT: ]1281// CHECK-NEXT: },1282// CHECK-NEXT: {1283// CHECK-NEXT: "id": "0x{{.*}}",1284// CHECK-NEXT: "kind": "VarTemplatePartialSpecializationDecl",1285// CHECK-NEXT: "loc": {1286// CHECK-NEXT: "offset": 927,1287// CHECK-NEXT: "line": 35,1288// CHECK-NEXT: "col": 28,1289// CHECK-NEXT: "tokLen": 141290// CHECK-NEXT: },1291// CHECK-NEXT: "range": {1292// CHECK-NEXT: "begin": {1293// CHECK-NEXT: "offset": 879,1294// CHECK-NEXT: "line": 34,1295// CHECK-NEXT: "col": 1,1296// CHECK-NEXT: "tokLen": 81297// CHECK-NEXT: },1298// CHECK-NEXT: "end": {1299// CHECK-NEXT: "offset": 950,1300// CHECK-NEXT: "line": 35,1301// CHECK-NEXT: "col": 51,1302// CHECK-NEXT: "tokLen": 41303// CHECK-NEXT: }1304// CHECK-NEXT: },1305// CHECK-NEXT: "name": "is_reference_v",1306// CHECK-NEXT: "type": {1307// CHECK-NEXT: "qualType": "const bool"1308// CHECK-NEXT: },1309// CHECK-NEXT: "inline": true,1310// CHECK-NEXT: "constexpr": true,1311// CHECK-NEXT: "init": "c",1312// CHECK-NEXT: "inner": [1313// CHECK-NEXT: {1314// CHECK-NEXT: "id": "0x{{.*}}",1315// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1316// CHECK-NEXT: "loc": {1317// CHECK-NEXT: "offset": 895,1318// CHECK-NEXT: "line": 34,1319// CHECK-NEXT: "col": 17,1320// CHECK-NEXT: "tokLen": 31321// CHECK-NEXT: },1322// CHECK-NEXT: "range": {1323// CHECK-NEXT: "begin": {1324// CHECK-NEXT: "offset": 889,1325// CHECK-NEXT: "col": 11,1326// CHECK-NEXT: "tokLen": 51327// CHECK-NEXT: },1328// CHECK-NEXT: "end": {1329// CHECK-NEXT: "offset": 895,1330// CHECK-NEXT: "col": 17,1331// CHECK-NEXT: "tokLen": 31332// CHECK-NEXT: }1333// CHECK-NEXT: },1334// CHECK-NEXT: "isReferenced": true,1335// CHECK-NEXT: "name": "_Ty",1336// CHECK-NEXT: "tagUsed": "class",1337// CHECK-NEXT: "depth": 0,1338// CHECK-NEXT: "index": 01339// CHECK-NEXT: },1340// CHECK-NEXT: {1341// CHECK-NEXT: "kind": "TemplateArgument",1342// CHECK-NEXT: "type": {1343// CHECK-NEXT: "qualType": "type-parameter-0-0 &"1344// CHECK-NEXT: },1345// CHECK-NEXT: "inner": [1346// CHECK-NEXT: {1347// CHECK-NEXT: "id": "0x{{.*}}",1348// CHECK-NEXT: "kind": "LValueReferenceType",1349// CHECK-NEXT: "type": {1350// CHECK-NEXT: "qualType": "type-parameter-0-0 &"1351// CHECK-NEXT: },1352// CHECK-NEXT: "isDependent": true,1353// CHECK-NEXT: "isInstantiationDependent": true,1354// CHECK-NEXT: "inner": [1355// CHECK-NEXT: {1356// CHECK-NEXT: "id": "0x{{.*}}",1357// CHECK-NEXT: "kind": "TemplateTypeParmType",1358// CHECK-NEXT: "type": {1359// CHECK-NEXT: "qualType": "type-parameter-0-0"1360// CHECK-NEXT: },1361// CHECK-NEXT: "isDependent": true,1362// CHECK-NEXT: "isInstantiationDependent": true,1363// CHECK-NEXT: "depth": 0,1364// CHECK-NEXT: "index": 0,1365// CHECK-NEXT: "decl": {1366// CHECK-NEXT: "id": "0x0"1367// CHECK-NEXT: }1368// CHECK-NEXT: }1369// CHECK-NEXT: ]1370// CHECK-NEXT: }1371// CHECK-NEXT: ]1372// CHECK-NEXT: },1373// CHECK-NEXT: {1374// CHECK-NEXT: "id": "0x{{.*}}",1375// CHECK-NEXT: "kind": "CXXBoolLiteralExpr",1376// CHECK-NEXT: "range": {1377// CHECK-NEXT: "begin": {1378// CHECK-NEXT: "offset": 950,1379// CHECK-NEXT: "line": 35,1380// CHECK-NEXT: "col": 51,1381// CHECK-NEXT: "tokLen": 41382// CHECK-NEXT: },1383// CHECK-NEXT: "end": {1384// CHECK-NEXT: "offset": 950,1385// CHECK-NEXT: "col": 51,1386// CHECK-NEXT: "tokLen": 41387// CHECK-NEXT: }1388// CHECK-NEXT: },1389// CHECK-NEXT: "type": {1390// CHECK-NEXT: "qualType": "bool"1391// CHECK-NEXT: },1392// CHECK-NEXT: "valueCategory": "prvalue",1393// CHECK-NEXT: "value": true1394// CHECK-NEXT: }1395// CHECK-NEXT: ]1396// CHECK-NEXT: },1397// CHECK-NEXT: {1398// CHECK-NEXT: "id": "0x{{.*}}",1399// CHECK-NEXT: "kind": "VarTemplatePartialSpecializationDecl",1400// CHECK-NEXT: "loc": {1401// CHECK-NEXT: "offset": 1005,1402// CHECK-NEXT: "line": 38,1403// CHECK-NEXT: "col": 28,1404// CHECK-NEXT: "tokLen": 141405// CHECK-NEXT: },1406// CHECK-NEXT: "range": {1407// CHECK-NEXT: "begin": {1408// CHECK-NEXT: "offset": 957,1409// CHECK-NEXT: "line": 37,1410// CHECK-NEXT: "col": 1,1411// CHECK-NEXT: "tokLen": 81412// CHECK-NEXT: },1413// CHECK-NEXT: "end": {1414// CHECK-NEXT: "offset": 1029,1415// CHECK-NEXT: "line": 38,1416// CHECK-NEXT: "col": 52,1417// CHECK-NEXT: "tokLen": 41418// CHECK-NEXT: }1419// CHECK-NEXT: },1420// CHECK-NEXT: "name": "is_reference_v",1421// CHECK-NEXT: "type": {1422// CHECK-NEXT: "qualType": "const bool"1423// CHECK-NEXT: },1424// CHECK-NEXT: "inline": true,1425// CHECK-NEXT: "constexpr": true,1426// CHECK-NEXT: "init": "c",1427// CHECK-NEXT: "inner": [1428// CHECK-NEXT: {1429// CHECK-NEXT: "id": "0x{{.*}}",1430// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1431// CHECK-NEXT: "loc": {1432// CHECK-NEXT: "offset": 973,1433// CHECK-NEXT: "line": 37,1434// CHECK-NEXT: "col": 17,1435// CHECK-NEXT: "tokLen": 31436// CHECK-NEXT: },1437// CHECK-NEXT: "range": {1438// CHECK-NEXT: "begin": {1439// CHECK-NEXT: "offset": 967,1440// CHECK-NEXT: "col": 11,1441// CHECK-NEXT: "tokLen": 51442// CHECK-NEXT: },1443// CHECK-NEXT: "end": {1444// CHECK-NEXT: "offset": 973,1445// CHECK-NEXT: "col": 17,1446// CHECK-NEXT: "tokLen": 31447// CHECK-NEXT: }1448// CHECK-NEXT: },1449// CHECK-NEXT: "isReferenced": true,1450// CHECK-NEXT: "name": "_Ty",1451// CHECK-NEXT: "tagUsed": "class",1452// CHECK-NEXT: "depth": 0,1453// CHECK-NEXT: "index": 01454// CHECK-NEXT: },1455// CHECK-NEXT: {1456// CHECK-NEXT: "kind": "TemplateArgument",1457// CHECK-NEXT: "type": {1458// CHECK-NEXT: "qualType": "type-parameter-0-0 &&"1459// CHECK-NEXT: },1460// CHECK-NEXT: "inner": [1461// CHECK-NEXT: {1462// CHECK-NEXT: "id": "0x{{.*}}",1463// CHECK-NEXT: "kind": "RValueReferenceType",1464// CHECK-NEXT: "type": {1465// CHECK-NEXT: "qualType": "type-parameter-0-0 &&"1466// CHECK-NEXT: },1467// CHECK-NEXT: "isDependent": true,1468// CHECK-NEXT: "isInstantiationDependent": true,1469// CHECK-NEXT: "inner": [1470// CHECK-NEXT: {1471// CHECK-NEXT: "id": "0x{{.*}}",1472// CHECK-NEXT: "kind": "TemplateTypeParmType",1473// CHECK-NEXT: "type": {1474// CHECK-NEXT: "qualType": "type-parameter-0-0"1475// CHECK-NEXT: },1476// CHECK-NEXT: "isDependent": true,1477// CHECK-NEXT: "isInstantiationDependent": true,1478// CHECK-NEXT: "depth": 0,1479// CHECK-NEXT: "index": 0,1480// CHECK-NEXT: "decl": {1481// CHECK-NEXT: "id": "0x0"1482// CHECK-NEXT: }1483// CHECK-NEXT: }1484// CHECK-NEXT: ]1485// CHECK-NEXT: }1486// CHECK-NEXT: ]1487// CHECK-NEXT: },1488// CHECK-NEXT: {1489// CHECK-NEXT: "id": "0x{{.*}}",1490// CHECK-NEXT: "kind": "CXXBoolLiteralExpr",1491// CHECK-NEXT: "range": {1492// CHECK-NEXT: "begin": {1493// CHECK-NEXT: "offset": 1029,1494// CHECK-NEXT: "line": 38,1495// CHECK-NEXT: "col": 52,1496// CHECK-NEXT: "tokLen": 41497// CHECK-NEXT: },1498// CHECK-NEXT: "end": {1499// CHECK-NEXT: "offset": 1029,1500// CHECK-NEXT: "col": 52,1501// CHECK-NEXT: "tokLen": 41502// CHECK-NEXT: }1503// CHECK-NEXT: },1504// CHECK-NEXT: "type": {1505// CHECK-NEXT: "qualType": "bool"1506// CHECK-NEXT: },1507// CHECK-NEXT: "valueCategory": "prvalue",1508// CHECK-NEXT: "value": true1509// CHECK-NEXT: }1510// CHECK-NEXT: ]1511// CHECK-NEXT: },1512// CHECK-NEXT: {1513// CHECK-NEXT: "id": "0x{{.*}}",1514// CHECK-NEXT: "kind": "ClassTemplateDecl",1515// CHECK-NEXT: "loc": {1516// CHECK-NEXT: "offset": 1064,1517// CHECK-NEXT: "line": 41,1518// CHECK-NEXT: "col": 8,1519// CHECK-NEXT: "tokLen": 121520// CHECK-NEXT: },1521// CHECK-NEXT: "range": {1522// CHECK-NEXT: "begin": {1523// CHECK-NEXT: "offset": 1036,1524// CHECK-NEXT: "line": 40,1525// CHECK-NEXT: "col": 1,1526// CHECK-NEXT: "tokLen": 81527// CHECK-NEXT: },1528// CHECK-NEXT: "end": {1529// CHECK-NEXT: "offset": 1115,1530// CHECK-NEXT: "line": 41,1531// CHECK-NEXT: "col": 59,1532// CHECK-NEXT: "tokLen": 11533// CHECK-NEXT: }1534// CHECK-NEXT: },1535// CHECK-NEXT: "name": "is_reference",1536// CHECK-NEXT: "inner": [1537// CHECK-NEXT: {1538// CHECK-NEXT: "id": "0x{{.*}}",1539// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1540// CHECK-NEXT: "loc": {1541// CHECK-NEXT: "offset": 1052,1542// CHECK-NEXT: "line": 40,1543// CHECK-NEXT: "col": 17,1544// CHECK-NEXT: "tokLen": 31545// CHECK-NEXT: },1546// CHECK-NEXT: "range": {1547// CHECK-NEXT: "begin": {1548// CHECK-NEXT: "offset": 1046,1549// CHECK-NEXT: "col": 11,1550// CHECK-NEXT: "tokLen": 51551// CHECK-NEXT: },1552// CHECK-NEXT: "end": {1553// CHECK-NEXT: "offset": 1052,1554// CHECK-NEXT: "col": 17,1555// CHECK-NEXT: "tokLen": 31556// CHECK-NEXT: }1557// CHECK-NEXT: },1558// CHECK-NEXT: "isReferenced": true,1559// CHECK-NEXT: "name": "_Ty",1560// CHECK-NEXT: "tagUsed": "class",1561// CHECK-NEXT: "depth": 0,1562// CHECK-NEXT: "index": 01563// CHECK-NEXT: },1564// CHECK-NEXT: {1565// CHECK-NEXT: "id": "0x{{.*}}",1566// CHECK-NEXT: "kind": "CXXRecordDecl",1567// CHECK-NEXT: "loc": {1568// CHECK-NEXT: "offset": 1064,1569// CHECK-NEXT: "line": 41,1570// CHECK-NEXT: "col": 8,1571// CHECK-NEXT: "tokLen": 121572// CHECK-NEXT: },1573// CHECK-NEXT: "range": {1574// CHECK-NEXT: "begin": {1575// CHECK-NEXT: "offset": 1057,1576// CHECK-NEXT: "col": 1,1577// CHECK-NEXT: "tokLen": 61578// CHECK-NEXT: },1579// CHECK-NEXT: "end": {1580// CHECK-NEXT: "offset": 1115,1581// CHECK-NEXT: "col": 59,1582// CHECK-NEXT: "tokLen": 11583// CHECK-NEXT: }1584// CHECK-NEXT: },1585// CHECK-NEXT: "name": "is_reference",1586// CHECK-NEXT: "tagUsed": "struct",1587// CHECK-NEXT: "completeDefinition": true,1588// CHECK-NEXT: "definitionData": {1589// CHECK-NEXT: "canConstDefaultInit": true,1590// CHECK-NEXT: "copyAssign": {1591// CHECK-NEXT: "hasConstParam": true,1592// CHECK-NEXT: "implicitHasConstParam": true,1593// CHECK-NEXT: "needsImplicit": true,1594// CHECK-NEXT: "simple": true,1595// CHECK-NEXT: "trivial": true1596// CHECK-NEXT: },1597// CHECK-NEXT: "copyCtor": {1598// CHECK-NEXT: "hasConstParam": true,1599// CHECK-NEXT: "implicitHasConstParam": true,1600// CHECK-NEXT: "needsImplicit": true,1601// CHECK-NEXT: "simple": true,1602// CHECK-NEXT: "trivial": true1603// CHECK-NEXT: },1604// CHECK-NEXT: "defaultCtor": {1605// CHECK-NEXT: "defaultedIsConstexpr": true,1606// CHECK-NEXT: "exists": true,1607// CHECK-NEXT: "isConstexpr": true,1608// CHECK-NEXT: "needsImplicit": true,1609// CHECK-NEXT: "trivial": true1610// CHECK-NEXT: },1611// CHECK-NEXT: "dtor": {1612// CHECK-NEXT: "irrelevant": true,1613// CHECK-NEXT: "needsImplicit": true,1614// CHECK-NEXT: "simple": true,1615// CHECK-NEXT: "trivial": true1616// CHECK-NEXT: },1617// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,1618// CHECK-NEXT: "isAggregate": true,1619// CHECK-NEXT: "isEmpty": true,1620// CHECK-NEXT: "isLiteral": true,1621// CHECK-NEXT: "isStandardLayout": true,1622// CHECK-NEXT: "isTrivial": true,1623// CHECK-NEXT: "isTriviallyCopyable": true,1624// CHECK-NEXT: "moveAssign": {1625// CHECK-NEXT: "exists": true,1626// CHECK-NEXT: "needsImplicit": true,1627// CHECK-NEXT: "simple": true,1628// CHECK-NEXT: "trivial": true1629// CHECK-NEXT: },1630// CHECK-NEXT: "moveCtor": {1631// CHECK-NEXT: "exists": true,1632// CHECK-NEXT: "needsImplicit": true,1633// CHECK-NEXT: "simple": true,1634// CHECK-NEXT: "trivial": true1635// CHECK-NEXT: }1636// CHECK-NEXT: },1637// CHECK-NEXT: "bases": [1638// CHECK-NEXT: {1639// CHECK-NEXT: "access": "public",1640// CHECK-NEXT: "type": {1641// CHECK-NEXT: "desugaredQualType": "integral_constant<bool, is_reference_v<_Ty>>",1642// CHECK-NEXT: "qualType": "bool_constant<is_reference_v<_Ty>>"1643// CHECK-NEXT: },1644// CHECK-NEXT: "writtenAccess": "none"1645// CHECK-NEXT: }1646// CHECK-NEXT: ],1647// CHECK-NEXT: "inner": [1648// CHECK-NEXT: {1649// CHECK-NEXT: "id": "0x{{.*}}",1650// CHECK-NEXT: "kind": "CXXRecordDecl",1651// CHECK-NEXT: "loc": {1652// CHECK-NEXT: "offset": 1064,1653// CHECK-NEXT: "col": 8,1654// CHECK-NEXT: "tokLen": 121655// CHECK-NEXT: },1656// CHECK-NEXT: "range": {1657// CHECK-NEXT: "begin": {1658// CHECK-NEXT: "offset": 1057,1659// CHECK-NEXT: "col": 1,1660// CHECK-NEXT: "tokLen": 61661// CHECK-NEXT: },1662// CHECK-NEXT: "end": {1663// CHECK-NEXT: "offset": 1064,1664// CHECK-NEXT: "col": 8,1665// CHECK-NEXT: "tokLen": 121666// CHECK-NEXT: }1667// CHECK-NEXT: },1668// CHECK-NEXT: "isImplicit": true,1669// CHECK-NEXT: "name": "is_reference",1670// CHECK-NEXT: "tagUsed": "struct"1671// CHECK-NEXT: }1672// CHECK-NEXT: ]1673// CHECK-NEXT: }1674// CHECK-NEXT: ]1675// CHECK-NEXT: },1676// CHECK-NEXT: {1677// CHECK-NEXT: "id": "0x{{.*}}",1678// CHECK-NEXT: "kind": "VarTemplateDecl",1679// CHECK-NEXT: "loc": {1680// CHECK-NEXT: "offset": 1167,1681// CHECK-NEXT: "line": 44,1682// CHECK-NEXT: "col": 28,1683// CHECK-NEXT: "tokLen": 131684// CHECK-NEXT: },1685// CHECK-NEXT: "range": {1686// CHECK-NEXT: "begin": {1687// CHECK-NEXT: "offset": 1119,1688// CHECK-NEXT: "line": 43,1689// CHECK-NEXT: "col": 1,1690// CHECK-NEXT: "tokLen": 81691// CHECK-NEXT: },1692// CHECK-NEXT: "end": {1693// CHECK-NEXT: "offset": 1300,1694// CHECK-NEXT: "line": 45,1695// CHECK-NEXT: "col": 50,1696// CHECK-NEXT: "tokLen": 11697// CHECK-NEXT: }1698// CHECK-NEXT: },1699// CHECK-NEXT: "name": "is_function_v",1700// CHECK-NEXT: "inner": [1701// CHECK-NEXT: {1702// CHECK-NEXT: "id": "0x{{.*}}",1703// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1704// CHECK-NEXT: "loc": {1705// CHECK-NEXT: "offset": 1135,1706// CHECK-NEXT: "line": 43,1707// CHECK-NEXT: "col": 17,1708// CHECK-NEXT: "tokLen": 31709// CHECK-NEXT: },1710// CHECK-NEXT: "range": {1711// CHECK-NEXT: "begin": {1712// CHECK-NEXT: "offset": 1129,1713// CHECK-NEXT: "col": 11,1714// CHECK-NEXT: "tokLen": 51715// CHECK-NEXT: },1716// CHECK-NEXT: "end": {1717// CHECK-NEXT: "offset": 1135,1718// CHECK-NEXT: "col": 17,1719// CHECK-NEXT: "tokLen": 31720// CHECK-NEXT: }1721// CHECK-NEXT: },1722// CHECK-NEXT: "isReferenced": true,1723// CHECK-NEXT: "name": "_Ty",1724// CHECK-NEXT: "tagUsed": "class",1725// CHECK-NEXT: "depth": 0,1726// CHECK-NEXT: "index": 01727// CHECK-NEXT: },1728// CHECK-NEXT: {1729// CHECK-NEXT: "id": "0x{{.*}}",1730// CHECK-NEXT: "kind": "VarDecl",1731// CHECK-NEXT: "loc": {1732// CHECK-NEXT: "offset": 1167,1733// CHECK-NEXT: "line": 44,1734// CHECK-NEXT: "col": 28,1735// CHECK-NEXT: "tokLen": 131736// CHECK-NEXT: },1737// CHECK-NEXT: "range": {1738// CHECK-NEXT: "begin": {1739// CHECK-NEXT: "spellingLoc": {1740// CHECK-NEXT: "offset": 97,1741// CHECK-NEXT: "line": 3,1742// CHECK-NEXT: "col": 21,1743// CHECK-NEXT: "tokLen": 61744// CHECK-NEXT: },1745// CHECK-NEXT: "expansionLoc": {1746// CHECK-NEXT: "offset": 1140,1747// CHECK-NEXT: "line": 44,1748// CHECK-NEXT: "col": 1,1749// CHECK-NEXT: "tokLen": 111750// CHECK-NEXT: }1751// CHECK-NEXT: },1752// CHECK-NEXT: "end": {1753// CHECK-NEXT: "offset": 1300,1754// CHECK-NEXT: "line": 45,1755// CHECK-NEXT: "col": 50,1756// CHECK-NEXT: "tokLen": 11757// CHECK-NEXT: }1758// CHECK-NEXT: },1759// CHECK-NEXT: "name": "is_function_v",1760// CHECK-NEXT: "type": {1761// CHECK-NEXT: "qualType": "const bool"1762// CHECK-NEXT: },1763// CHECK-NEXT: "inline": true,1764// CHECK-NEXT: "constexpr": true,1765// CHECK-NEXT: "init": "c",1766// CHECK-NEXT: "TemplateInstantiationPattern": "0x{{.*}}",1767// CHECK-NEXT: "inner": [1768// CHECK-NEXT: {1769// CHECK-NEXT: "id": "0x{{.*}}",1770// CHECK-NEXT: "kind": "BinaryOperator",1771// CHECK-NEXT: "range": {1772// CHECK-NEXT: "begin": {1773// CHECK-NEXT: "offset": 1255,1774// CHECK-NEXT: "col": 5,1775// CHECK-NEXT: "tokLen": 11776// CHECK-NEXT: },1777// CHECK-NEXT: "end": {1778// CHECK-NEXT: "offset": 1300,1779// CHECK-NEXT: "col": 50,1780// CHECK-NEXT: "tokLen": 11781// CHECK-NEXT: }1782// CHECK-NEXT: },1783// CHECK-NEXT: "type": {1784// CHECK-NEXT: "qualType": "<dependent type>"1785// CHECK-NEXT: },1786// CHECK-NEXT: "valueCategory": "prvalue",1787// CHECK-NEXT: "opcode": "&&",1788// CHECK-NEXT: "inner": [1789// CHECK-NEXT: {1790// CHECK-NEXT: "id": "0x{{.*}}",1791// CHECK-NEXT: "kind": "UnaryOperator",1792// CHECK-NEXT: "range": {1793// CHECK-NEXT: "begin": {1794// CHECK-NEXT: "offset": 1255,1795// CHECK-NEXT: "col": 5,1796// CHECK-NEXT: "tokLen": 11797// CHECK-NEXT: },1798// CHECK-NEXT: "end": {1799// CHECK-NEXT: "offset": 1276,1800// CHECK-NEXT: "col": 26,1801// CHECK-NEXT: "tokLen": 11802// CHECK-NEXT: }1803// CHECK-NEXT: },1804// CHECK-NEXT: "type": {1805// CHECK-NEXT: "qualType": "<dependent type>"1806// CHECK-NEXT: },1807// CHECK-NEXT: "valueCategory": "prvalue",1808// CHECK-NEXT: "isPostfix": false,1809// CHECK-NEXT: "opcode": "!",1810// CHECK-NEXT: "canOverflow": false,1811// CHECK-NEXT: "inner": [1812// CHECK-NEXT: {1813// CHECK-NEXT: "id": "0x{{.*}}",1814// CHECK-NEXT: "kind": "UnresolvedLookupExpr",1815// CHECK-NEXT: "range": {1816// CHECK-NEXT: "begin": {1817// CHECK-NEXT: "offset": 1256,1818// CHECK-NEXT: "col": 6,1819// CHECK-NEXT: "tokLen": 101820// CHECK-NEXT: },1821// CHECK-NEXT: "end": {1822// CHECK-NEXT: "offset": 1276,1823// CHECK-NEXT: "col": 26,1824// CHECK-NEXT: "tokLen": 11825// CHECK-NEXT: }1826// CHECK-NEXT: },1827// CHECK-NEXT: "type": {1828// CHECK-NEXT: "qualType": "<dependent type>"1829// CHECK-NEXT: },1830// CHECK-NEXT: "valueCategory": "lvalue",1831// CHECK-NEXT: "usesADL": false,1832// CHECK-NEXT: "name": "is_const_v",1833// CHECK-NEXT: "lookups": [1834// CHECK-NEXT: {1835// CHECK-NEXT: "id": "0x{{.*}}",1836// CHECK-NEXT: "kind": "VarTemplateDecl",1837// CHECK-NEXT: "name": "is_const_v"1838// CHECK-NEXT: }1839// CHECK-NEXT: ],1840// CHECK-NEXT: "inner": [1841// CHECK-NEXT: {1842// CHECK-NEXT: "kind": "TemplateArgument",1843// CHECK-NEXT: "type": {1844// CHECK-NEXT: "qualType": "const _Ty"1845// CHECK-NEXT: },1846// CHECK-NEXT: "inner": [1847// CHECK-NEXT: {1848// CHECK-NEXT: "id": "0x{{.*}}",1849// CHECK-NEXT: "kind": "QualType",1850// CHECK-NEXT: "type": {1851// CHECK-NEXT: "qualType": "const _Ty"1852// CHECK-NEXT: },1853// CHECK-NEXT: "qualifiers": "const",1854// CHECK-NEXT: "inner": [1855// CHECK-NEXT: {1856// CHECK-NEXT: "id": "0x{{.*}}",1857// CHECK-NEXT: "kind": "TemplateTypeParmType",1858// CHECK-NEXT: "type": {1859// CHECK-NEXT: "qualType": "_Ty"1860// CHECK-NEXT: },1861// CHECK-NEXT: "isDependent": true,1862// CHECK-NEXT: "isInstantiationDependent": true,1863// CHECK-NEXT: "depth": 0,1864// CHECK-NEXT: "index": 0,1865// CHECK-NEXT: "decl": {1866// CHECK-NEXT: "id": "0x{{.*}}",1867// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1868// CHECK-NEXT: "name": "_Ty"1869// CHECK-NEXT: }1870// CHECK-NEXT: }1871// CHECK-NEXT: ]1872// CHECK-NEXT: }1873// CHECK-NEXT: ]1874// CHECK-NEXT: }1875// CHECK-NEXT: ]1876// CHECK-NEXT: }1877// CHECK-NEXT: ]1878// CHECK-NEXT: },1879// CHECK-NEXT: {1880// CHECK-NEXT: "id": "0x{{.*}}",1881// CHECK-NEXT: "kind": "UnaryOperator",1882// CHECK-NEXT: "range": {1883// CHECK-NEXT: "begin": {1884// CHECK-NEXT: "offset": 1281,1885// CHECK-NEXT: "col": 31,1886// CHECK-NEXT: "tokLen": 11887// CHECK-NEXT: },1888// CHECK-NEXT: "end": {1889// CHECK-NEXT: "offset": 1300,1890// CHECK-NEXT: "col": 50,1891// CHECK-NEXT: "tokLen": 11892// CHECK-NEXT: }1893// CHECK-NEXT: },1894// CHECK-NEXT: "type": {1895// CHECK-NEXT: "qualType": "<dependent type>"1896// CHECK-NEXT: },1897// CHECK-NEXT: "valueCategory": "prvalue",1898// CHECK-NEXT: "isPostfix": false,1899// CHECK-NEXT: "opcode": "!",1900// CHECK-NEXT: "canOverflow": false,1901// CHECK-NEXT: "inner": [1902// CHECK-NEXT: {1903// CHECK-NEXT: "id": "0x{{.*}}",1904// CHECK-NEXT: "kind": "UnresolvedLookupExpr",1905// CHECK-NEXT: "range": {1906// CHECK-NEXT: "begin": {1907// CHECK-NEXT: "offset": 1282,1908// CHECK-NEXT: "col": 32,1909// CHECK-NEXT: "tokLen": 141910// CHECK-NEXT: },1911// CHECK-NEXT: "end": {1912// CHECK-NEXT: "offset": 1300,1913// CHECK-NEXT: "col": 50,1914// CHECK-NEXT: "tokLen": 11915// CHECK-NEXT: }1916// CHECK-NEXT: },1917// CHECK-NEXT: "type": {1918// CHECK-NEXT: "qualType": "<dependent type>"1919// CHECK-NEXT: },1920// CHECK-NEXT: "valueCategory": "lvalue",1921// CHECK-NEXT: "usesADL": false,1922// CHECK-NEXT: "name": "is_reference_v",1923// CHECK-NEXT: "lookups": [1924// CHECK-NEXT: {1925// CHECK-NEXT: "id": "0x{{.*}}",1926// CHECK-NEXT: "kind": "VarTemplateDecl",1927// CHECK-NEXT: "name": "is_reference_v"1928// CHECK-NEXT: }1929// CHECK-NEXT: ],1930// CHECK-NEXT: "inner": [1931// CHECK-NEXT: {1932// CHECK-NEXT: "kind": "TemplateArgument",1933// CHECK-NEXT: "type": {1934// CHECK-NEXT: "qualType": "_Ty"1935// CHECK-NEXT: },1936// CHECK-NEXT: "inner": [1937// CHECK-NEXT: {1938// CHECK-NEXT: "id": "0x{{.*}}",1939// CHECK-NEXT: "kind": "TemplateTypeParmType",1940// CHECK-NEXT: "type": {1941// CHECK-NEXT: "qualType": "_Ty"1942// CHECK-NEXT: },1943// CHECK-NEXT: "isDependent": true,1944// CHECK-NEXT: "isInstantiationDependent": true,1945// CHECK-NEXT: "depth": 0,1946// CHECK-NEXT: "index": 0,1947// CHECK-NEXT: "decl": {1948// CHECK-NEXT: "id": "0x{{.*}}",1949// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1950// CHECK-NEXT: "name": "_Ty"1951// CHECK-NEXT: }1952// CHECK-NEXT: }1953// CHECK-NEXT: ]1954// CHECK-NEXT: }1955// CHECK-NEXT: ]1956// CHECK-NEXT: }1957// CHECK-NEXT: ]1958// CHECK-NEXT: }1959// CHECK-NEXT: ]1960// CHECK-NEXT: }1961// CHECK-NEXT: ]1962// CHECK-NEXT: }1963// CHECK-NEXT: ]1964// CHECK-NEXT: },1965// CHECK-NEXT: {1966// CHECK-NEXT: "id": "0x{{.*}}",1967// CHECK-NEXT: "kind": "ClassTemplateDecl",1968// CHECK-NEXT: "loc": {1969// CHECK-NEXT: "offset": 1332,1970// CHECK-NEXT: "line": 48,1971// CHECK-NEXT: "col": 8,1972// CHECK-NEXT: "tokLen": 111973// CHECK-NEXT: },1974// CHECK-NEXT: "range": {1975// CHECK-NEXT: "begin": {1976// CHECK-NEXT: "offset": 1304,1977// CHECK-NEXT: "line": 47,1978// CHECK-NEXT: "col": 1,1979// CHECK-NEXT: "tokLen": 81980// CHECK-NEXT: },1981// CHECK-NEXT: "end": {1982// CHECK-NEXT: "offset": 1381,1983// CHECK-NEXT: "line": 48,1984// CHECK-NEXT: "col": 57,1985// CHECK-NEXT: "tokLen": 11986// CHECK-NEXT: }1987// CHECK-NEXT: },1988// CHECK-NEXT: "name": "is_function",1989// CHECK-NEXT: "inner": [1990// CHECK-NEXT: {1991// CHECK-NEXT: "id": "0x{{.*}}",1992// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1993// CHECK-NEXT: "loc": {1994// CHECK-NEXT: "offset": 1320,1995// CHECK-NEXT: "line": 47,1996// CHECK-NEXT: "col": 17,1997// CHECK-NEXT: "tokLen": 31998// CHECK-NEXT: },1999// CHECK-NEXT: "range": {2000// CHECK-NEXT: "begin": {2001// CHECK-NEXT: "offset": 1314,2002// CHECK-NEXT: "col": 11,2003// CHECK-NEXT: "tokLen": 52004// CHECK-NEXT: },2005// CHECK-NEXT: "end": {2006// CHECK-NEXT: "offset": 1320,2007// CHECK-NEXT: "col": 17,2008// CHECK-NEXT: "tokLen": 32009// CHECK-NEXT: }2010// CHECK-NEXT: },2011// CHECK-NEXT: "isReferenced": true,2012// CHECK-NEXT: "name": "_Ty",2013// CHECK-NEXT: "tagUsed": "class",2014// CHECK-NEXT: "depth": 0,2015// CHECK-NEXT: "index": 02016// CHECK-NEXT: },2017// CHECK-NEXT: {2018// CHECK-NEXT: "id": "0x{{.*}}",2019// CHECK-NEXT: "kind": "CXXRecordDecl",2020// CHECK-NEXT: "loc": {2021// CHECK-NEXT: "offset": 1332,2022// CHECK-NEXT: "line": 48,2023// CHECK-NEXT: "col": 8,2024// CHECK-NEXT: "tokLen": 112025// CHECK-NEXT: },2026// CHECK-NEXT: "range": {2027// CHECK-NEXT: "begin": {2028// CHECK-NEXT: "offset": 1325,2029// CHECK-NEXT: "col": 1,2030// CHECK-NEXT: "tokLen": 62031// CHECK-NEXT: },2032// CHECK-NEXT: "end": {2033// CHECK-NEXT: "offset": 1381,2034// CHECK-NEXT: "col": 57,2035// CHECK-NEXT: "tokLen": 12036// CHECK-NEXT: }2037// CHECK-NEXT: },2038// CHECK-NEXT: "name": "is_function",2039// CHECK-NEXT: "tagUsed": "struct",2040// CHECK-NEXT: "completeDefinition": true,2041// CHECK-NEXT: "definitionData": {2042// CHECK-NEXT: "canConstDefaultInit": true,2043// CHECK-NEXT: "copyAssign": {2044// CHECK-NEXT: "hasConstParam": true,2045// CHECK-NEXT: "implicitHasConstParam": true,2046// CHECK-NEXT: "needsImplicit": true,2047// CHECK-NEXT: "simple": true,2048// CHECK-NEXT: "trivial": true2049// CHECK-NEXT: },2050// CHECK-NEXT: "copyCtor": {2051// CHECK-NEXT: "hasConstParam": true,2052// CHECK-NEXT: "implicitHasConstParam": true,2053// CHECK-NEXT: "needsImplicit": true,2054// CHECK-NEXT: "simple": true,2055// CHECK-NEXT: "trivial": true2056// CHECK-NEXT: },2057// CHECK-NEXT: "defaultCtor": {2058// CHECK-NEXT: "defaultedIsConstexpr": true,2059// CHECK-NEXT: "exists": true,2060// CHECK-NEXT: "isConstexpr": true,2061// CHECK-NEXT: "needsImplicit": true,2062// CHECK-NEXT: "trivial": true2063// CHECK-NEXT: },2064// CHECK-NEXT: "dtor": {2065// CHECK-NEXT: "irrelevant": true,2066// CHECK-NEXT: "needsImplicit": true,2067// CHECK-NEXT: "simple": true,2068// CHECK-NEXT: "trivial": true2069// CHECK-NEXT: },2070// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,2071// CHECK-NEXT: "isAggregate": true,2072// CHECK-NEXT: "isEmpty": true,2073// CHECK-NEXT: "isLiteral": true,2074// CHECK-NEXT: "isStandardLayout": true,2075// CHECK-NEXT: "isTrivial": true,2076// CHECK-NEXT: "isTriviallyCopyable": true,2077// CHECK-NEXT: "moveAssign": {2078// CHECK-NEXT: "exists": true,2079// CHECK-NEXT: "needsImplicit": true,2080// CHECK-NEXT: "simple": true,2081// CHECK-NEXT: "trivial": true2082// CHECK-NEXT: },2083// CHECK-NEXT: "moveCtor": {2084// CHECK-NEXT: "exists": true,2085// CHECK-NEXT: "needsImplicit": true,2086// CHECK-NEXT: "simple": true,2087// CHECK-NEXT: "trivial": true2088// CHECK-NEXT: }2089// CHECK-NEXT: },2090// CHECK-NEXT: "bases": [2091// CHECK-NEXT: {2092// CHECK-NEXT: "access": "public",2093// CHECK-NEXT: "type": {2094// CHECK-NEXT: "desugaredQualType": "integral_constant<bool, is_function_v<_Ty>>",2095// CHECK-NEXT: "qualType": "bool_constant<is_function_v<_Ty>>"2096// CHECK-NEXT: },2097// CHECK-NEXT: "writtenAccess": "none"2098// CHECK-NEXT: }2099// CHECK-NEXT: ],2100// CHECK-NEXT: "inner": [2101// CHECK-NEXT: {2102// CHECK-NEXT: "id": "0x{{.*}}",2103// CHECK-NEXT: "kind": "CXXRecordDecl",2104// CHECK-NEXT: "loc": {2105// CHECK-NEXT: "offset": 1332,2106// CHECK-NEXT: "col": 8,2107// CHECK-NEXT: "tokLen": 112108// CHECK-NEXT: },2109// CHECK-NEXT: "range": {2110// CHECK-NEXT: "begin": {2111// CHECK-NEXT: "offset": 1325,2112// CHECK-NEXT: "col": 1,2113// CHECK-NEXT: "tokLen": 62114// CHECK-NEXT: },2115// CHECK-NEXT: "end": {2116// CHECK-NEXT: "offset": 1332,2117// CHECK-NEXT: "col": 8,2118// CHECK-NEXT: "tokLen": 112119// CHECK-NEXT: }2120// CHECK-NEXT: },2121// CHECK-NEXT: "isImplicit": true,2122// CHECK-NEXT: "name": "is_function",2123// CHECK-NEXT: "tagUsed": "struct"2124// CHECK-NEXT: }2125// CHECK-NEXT: ]2126// CHECK-NEXT: }2127// CHECK-NEXT: ]2128// CHECK-NEXT: },2129// CHECK-NEXT: {2130// CHECK-NEXT: "id": "0x{{.*}}",2131// CHECK-NEXT: "kind": "ClassTemplateDecl",2132// CHECK-NEXT: "loc": {2133// CHECK-NEXT: "offset": 1409,2134// CHECK-NEXT: "line": 51,2135// CHECK-NEXT: "col": 8,2136// CHECK-NEXT: "tokLen": 252137// CHECK-NEXT: },2138// CHECK-NEXT: "range": {2139// CHECK-NEXT: "begin": {2140// CHECK-NEXT: "offset": 1385,2141// CHECK-NEXT: "line": 50,2142// CHECK-NEXT: "col": 1,2143// CHECK-NEXT: "tokLen": 82144// CHECK-NEXT: },2145// CHECK-NEXT: "end": {2146// CHECK-NEXT: "offset": 1478,2147// CHECK-NEXT: "line": 53,2148// CHECK-NEXT: "col": 1,2149// CHECK-NEXT: "tokLen": 12150// CHECK-NEXT: }2151// CHECK-NEXT: },2152// CHECK-NEXT: "name": "_Is_member_object_pointer",2153// CHECK-NEXT: "inner": [2154// CHECK-NEXT: {2155// CHECK-NEXT: "id": "0x{{.*}}",2156// CHECK-NEXT: "kind": "TemplateTypeParmDecl",2157// CHECK-NEXT: "loc": {2158// CHECK-NEXT: "offset": 1400,2159// CHECK-NEXT: "line": 50,2160// CHECK-NEXT: "col": 16,2161// CHECK-NEXT: "tokLen": 12162// CHECK-NEXT: },2163// CHECK-NEXT: "range": {2164// CHECK-NEXT: "begin": {2165// CHECK-NEXT: "offset": 1395,2166// CHECK-NEXT: "col": 11,2167// CHECK-NEXT: "tokLen": 52168// CHECK-NEXT: },2169// CHECK-NEXT: "end": {2170// CHECK-NEXT: "offset": 1395,2171// CHECK-NEXT: "col": 11,2172// CHECK-NEXT: "tokLen": 52173// CHECK-NEXT: }2174// CHECK-NEXT: },2175// CHECK-NEXT: "tagUsed": "class",2176// CHECK-NEXT: "depth": 0,2177// CHECK-NEXT: "index": 02178// CHECK-NEXT: },2179// CHECK-NEXT: {2180// CHECK-NEXT: "id": "0x{{.*}}",2181// CHECK-NEXT: "kind": "CXXRecordDecl",2182// CHECK-NEXT: "loc": {2183// CHECK-NEXT: "offset": 1409,2184// CHECK-NEXT: "line": 51,2185// CHECK-NEXT: "col": 8,2186// CHECK-NEXT: "tokLen": 252187// CHECK-NEXT: },2188// CHECK-NEXT: "range": {2189// CHECK-NEXT: "begin": {2190// CHECK-NEXT: "offset": 1402,2191// CHECK-NEXT: "col": 1,2192// CHECK-NEXT: "tokLen": 62193// CHECK-NEXT: },2194// CHECK-NEXT: "end": {2195// CHECK-NEXT: "offset": 1478,2196// CHECK-NEXT: "line": 53,2197// CHECK-NEXT: "col": 1,2198// CHECK-NEXT: "tokLen": 12199// CHECK-NEXT: }2200// CHECK-NEXT: },2201// CHECK-NEXT: "name": "_Is_member_object_pointer",2202// CHECK-NEXT: "tagUsed": "struct",2203// CHECK-NEXT: "completeDefinition": true,2204// CHECK-NEXT: "definitionData": {2205// CHECK-NEXT: "canConstDefaultInit": true,2206// CHECK-NEXT: "copyAssign": {2207// CHECK-NEXT: "hasConstParam": true,2208// CHECK-NEXT: "implicitHasConstParam": true,2209// CHECK-NEXT: "needsImplicit": true,2210// CHECK-NEXT: "simple": true,2211// CHECK-NEXT: "trivial": true2212// CHECK-NEXT: },2213// CHECK-NEXT: "copyCtor": {2214// CHECK-NEXT: "hasConstParam": true,2215// CHECK-NEXT: "implicitHasConstParam": true,2216// CHECK-NEXT: "needsImplicit": true,2217// CHECK-NEXT: "simple": true,2218// CHECK-NEXT: "trivial": true2219// CHECK-NEXT: },2220// CHECK-NEXT: "defaultCtor": {2221// CHECK-NEXT: "defaultedIsConstexpr": true,2222// CHECK-NEXT: "exists": true,2223// CHECK-NEXT: "isConstexpr": true,2224// CHECK-NEXT: "needsImplicit": true,2225// CHECK-NEXT: "trivial": true2226// CHECK-NEXT: },2227// CHECK-NEXT: "dtor": {2228// CHECK-NEXT: "irrelevant": true,2229// CHECK-NEXT: "needsImplicit": true,2230// CHECK-NEXT: "simple": true,2231// CHECK-NEXT: "trivial": true2232// CHECK-NEXT: },2233// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,2234// CHECK-NEXT: "isAggregate": true,2235// CHECK-NEXT: "isEmpty": true,2236// CHECK-NEXT: "isLiteral": true,2237// CHECK-NEXT: "isPOD": true,2238// CHECK-NEXT: "isStandardLayout": true,2239// CHECK-NEXT: "isTrivial": true,2240// CHECK-NEXT: "isTriviallyCopyable": true,2241// CHECK-NEXT: "moveAssign": {2242// CHECK-NEXT: "exists": true,2243// CHECK-NEXT: "needsImplicit": true,2244// CHECK-NEXT: "simple": true,2245// CHECK-NEXT: "trivial": true2246// CHECK-NEXT: },2247// CHECK-NEXT: "moveCtor": {2248// CHECK-NEXT: "exists": true,2249// CHECK-NEXT: "needsImplicit": true,2250// CHECK-NEXT: "simple": true,2251// CHECK-NEXT: "trivial": true2252// CHECK-NEXT: }2253// CHECK-NEXT: },2254// CHECK-NEXT: "inner": [2255// CHECK-NEXT: {2256// CHECK-NEXT: "id": "0x{{.*}}",2257// CHECK-NEXT: "kind": "CXXRecordDecl",2258// CHECK-NEXT: "loc": {2259// CHECK-NEXT: "offset": 1409,2260// CHECK-NEXT: "line": 51,2261// CHECK-NEXT: "col": 8,2262// CHECK-NEXT: "tokLen": 252263// CHECK-NEXT: },2264// CHECK-NEXT: "range": {2265// CHECK-NEXT: "begin": {2266// CHECK-NEXT: "offset": 1402,2267// CHECK-NEXT: "col": 1,2268// CHECK-NEXT: "tokLen": 62269// CHECK-NEXT: },2270// CHECK-NEXT: "end": {2271// CHECK-NEXT: "offset": 1409,2272// CHECK-NEXT: "col": 8,2273// CHECK-NEXT: "tokLen": 252274// CHECK-NEXT: }2275// CHECK-NEXT: },2276// CHECK-NEXT: "isImplicit": true,2277// CHECK-NEXT: "name": "_Is_member_object_pointer",2278// CHECK-NEXT: "tagUsed": "struct"2279// CHECK-NEXT: },2280// CHECK-NEXT: {2281// CHECK-NEXT: "id": "0x{{.*}}",2282// CHECK-NEXT: "kind": "VarDecl",2283// CHECK-NEXT: "loc": {2284// CHECK-NEXT: "offset": 1463,2285// CHECK-NEXT: "line": 52,2286// CHECK-NEXT: "col": 27,2287// CHECK-NEXT: "tokLen": 52288// CHECK-NEXT: },2289// CHECK-NEXT: "range": {2290// CHECK-NEXT: "begin": {2291// CHECK-NEXT: "offset": 1441,2292// CHECK-NEXT: "col": 5,2293// CHECK-NEXT: "tokLen": 62294// CHECK-NEXT: },2295// CHECK-NEXT: "end": {2296// CHECK-NEXT: "offset": 1471,2297// CHECK-NEXT: "col": 35,2298// CHECK-NEXT: "tokLen": 52299// CHECK-NEXT: }2300// CHECK-NEXT: },2301// CHECK-NEXT: "name": "value",2302// CHECK-NEXT: "type": {2303// CHECK-NEXT: "qualType": "const bool"2304// CHECK-NEXT: },2305// CHECK-NEXT: "storageClass": "static",2306// CHECK-NEXT: "inline": true,2307// CHECK-NEXT: "constexpr": true,2308// CHECK-NEXT: "init": "c",2309// CHECK-NEXT: "inner": [2310// CHECK-NEXT: {2311// CHECK-NEXT: "id": "0x{{.*}}",2312// CHECK-NEXT: "kind": "CXXBoolLiteralExpr",2313// CHECK-NEXT: "range": {2314// CHECK-NEXT: "begin": {2315// CHECK-NEXT: "offset": 1471,2316// CHECK-NEXT: "col": 35,2317// CHECK-NEXT: "tokLen": 52318// CHECK-NEXT: },2319// CHECK-NEXT: "end": {2320// CHECK-NEXT: "offset": 1471,2321// CHECK-NEXT: "col": 35,2322// CHECK-NEXT: "tokLen": 52323// CHECK-NEXT: }2324// CHECK-NEXT: },2325// CHECK-NEXT: "type": {2326// CHECK-NEXT: "qualType": "bool"2327// CHECK-NEXT: },2328// CHECK-NEXT: "valueCategory": "prvalue",2329// CHECK-NEXT: "value": false2330// CHECK-NEXT: }2331// CHECK-NEXT: ]2332// CHECK-NEXT: }2333// CHECK-NEXT: ]2334// CHECK-NEXT: }2335// CHECK-NEXT: ]2336// CHECK-NEXT: },2337// CHECK-NEXT: {2338// CHECK-NEXT: "id": "0x{{.*}}",2339// CHECK-NEXT: "kind": "ClassTemplatePartialSpecializationDecl",2340// CHECK-NEXT: "loc": {2341// CHECK-NEXT: "offset": 1523,2342// CHECK-NEXT: "line": 56,2343// CHECK-NEXT: "col": 8,2344// CHECK-NEXT: "tokLen": 252345// CHECK-NEXT: },2346// CHECK-NEXT: "range": {2347// CHECK-NEXT: "begin": {2348// CHECK-NEXT: "offset": 1482,2349// CHECK-NEXT: "line": 55,2350// CHECK-NEXT: "col": 1,2351// CHECK-NEXT: "tokLen": 82352// CHECK-NEXT: },2353// CHECK-NEXT: "end": {2354// CHECK-NEXT: "offset": 1661,2355// CHECK-NEXT: "line": 59,2356// CHECK-NEXT: "col": 1,2357// CHECK-NEXT: "tokLen": 12358// CHECK-NEXT: }2359// CHECK-NEXT: },2360// CHECK-NEXT: "name": "_Is_member_object_pointer",2361// CHECK-NEXT: "tagUsed": "struct",2362// CHECK-NEXT: "completeDefinition": true,2363// CHECK-NEXT: "definitionData": {2364// CHECK-NEXT: "canConstDefaultInit": true,2365// CHECK-NEXT: "copyAssign": {2366// CHECK-NEXT: "hasConstParam": true,2367// CHECK-NEXT: "implicitHasConstParam": true,2368// CHECK-NEXT: "needsImplicit": true,2369// CHECK-NEXT: "simple": true,2370// CHECK-NEXT: "trivial": true2371// CHECK-NEXT: },2372// CHECK-NEXT: "copyCtor": {2373// CHECK-NEXT: "hasConstParam": true,2374// CHECK-NEXT: "implicitHasConstParam": true,2375// CHECK-NEXT: "needsImplicit": true,2376// CHECK-NEXT: "simple": true,2377// CHECK-NEXT: "trivial": true2378// CHECK-NEXT: },2379// CHECK-NEXT: "defaultCtor": {2380// CHECK-NEXT: "defaultedIsConstexpr": true,2381// CHECK-NEXT: "exists": true,2382// CHECK-NEXT: "isConstexpr": true,2383// CHECK-NEXT: "needsImplicit": true,2384// CHECK-NEXT: "trivial": true2385// CHECK-NEXT: },2386// CHECK-NEXT: "dtor": {2387// CHECK-NEXT: "irrelevant": true,2388// CHECK-NEXT: "needsImplicit": true,2389// CHECK-NEXT: "simple": true,2390// CHECK-NEXT: "trivial": true2391// CHECK-NEXT: },2392// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,2393// CHECK-NEXT: "isAggregate": true,2394// CHECK-NEXT: "isEmpty": true,2395// CHECK-NEXT: "isLiteral": true,2396// CHECK-NEXT: "isPOD": true,2397// CHECK-NEXT: "isStandardLayout": true,2398// CHECK-NEXT: "isTrivial": true,2399// CHECK-NEXT: "isTriviallyCopyable": true,2400// CHECK-NEXT: "moveAssign": {2401// CHECK-NEXT: "exists": true,2402// CHECK-NEXT: "needsImplicit": true,2403// CHECK-NEXT: "simple": true,2404// CHECK-NEXT: "trivial": true2405// CHECK-NEXT: },2406// CHECK-NEXT: "moveCtor": {2407// CHECK-NEXT: "exists": true,2408// CHECK-NEXT: "needsImplicit": true,2409// CHECK-NEXT: "simple": true,2410// CHECK-NEXT: "trivial": true2411// CHECK-NEXT: }2412// CHECK-NEXT: },2413// CHECK-NEXT: "inner": [2414// CHECK-NEXT: {2415// CHECK-NEXT: "kind": "TemplateArgument",2416// CHECK-NEXT: "type": {2417// CHECK-NEXT: "qualType": "type-parameter-0-0 type-parameter-0-1::*"2418// CHECK-NEXT: },2419// CHECK-NEXT: "inner": [2420// CHECK-NEXT: {2421// CHECK-NEXT: "id": "0x{{.*}}",2422// CHECK-NEXT: "kind": "MemberPointerType",2423// CHECK-NEXT: "type": {2424// CHECK-NEXT: "qualType": "type-parameter-0-0 type-parameter-0-1::*"2425// CHECK-NEXT: },2426// CHECK-NEXT: "isDependent": true,2427// CHECK-NEXT: "isInstantiationDependent": true,2428// CHECK-NEXT: "isData": true,2429// CHECK-NEXT: "inner": [2430// CHECK-NEXT: {2431// CHECK-NEXT: "id": "0x{{.*}}",2432// CHECK-NEXT: "kind": "TemplateTypeParmType",2433// CHECK-NEXT: "type": {2434// CHECK-NEXT: "qualType": "type-parameter-0-1"2435// CHECK-NEXT: },2436// CHECK-NEXT: "isDependent": true,2437// CHECK-NEXT: "isInstantiationDependent": true,2438// CHECK-NEXT: "depth": 0,2439// CHECK-NEXT: "index": 1,2440// CHECK-NEXT: "decl": {2441// CHECK-NEXT: "id": "0x0"2442// CHECK-NEXT: }2443// CHECK-NEXT: },2444// CHECK-NEXT: {2445// CHECK-NEXT: "id": "0x{{.*}}",2446// CHECK-NEXT: "kind": "TemplateTypeParmType",2447// CHECK-NEXT: "type": {2448// CHECK-NEXT: "qualType": "type-parameter-0-0"2449// CHECK-NEXT: },2450// CHECK-NEXT: "isDependent": true,2451// CHECK-NEXT: "isInstantiationDependent": true,2452// CHECK-NEXT: "depth": 0,2453// CHECK-NEXT: "index": 0,2454// CHECK-NEXT: "decl": {2455// CHECK-NEXT: "id": "0x0"2456// CHECK-NEXT: }2457// CHECK-NEXT: }2458// CHECK-NEXT: ]2459// CHECK-NEXT: }2460// CHECK-NEXT: ]2461// CHECK-NEXT: },2462// CHECK-NEXT: {2463// CHECK-NEXT: "id": "0x{{.*}}",2464// CHECK-NEXT: "kind": "TemplateTypeParmDecl",2465// CHECK-NEXT: "loc": {2466// CHECK-NEXT: "offset": 1498,2467// CHECK-NEXT: "line": 55,2468// CHECK-NEXT: "col": 17,2469// CHECK-NEXT: "tokLen": 42470// CHECK-NEXT: },2471// CHECK-NEXT: "range": {2472// CHECK-NEXT: "begin": {2473// CHECK-NEXT: "offset": 1492,2474// CHECK-NEXT: "col": 11,2475// CHECK-NEXT: "tokLen": 52476// CHECK-NEXT: },2477// CHECK-NEXT: "end": {2478// CHECK-NEXT: "offset": 1498,2479// CHECK-NEXT: "col": 17,2480// CHECK-NEXT: "tokLen": 42481// CHECK-NEXT: }2482// CHECK-NEXT: },2483// CHECK-NEXT: "isReferenced": true,2484// CHECK-NEXT: "name": "_Ty1",2485// CHECK-NEXT: "tagUsed": "class",2486// CHECK-NEXT: "depth": 0,2487// CHECK-NEXT: "index": 02488// CHECK-NEXT: },2489// CHECK-NEXT: {2490// CHECK-NEXT: "id": "0x{{.*}}",2491// CHECK-NEXT: "kind": "TemplateTypeParmDecl",2492// CHECK-NEXT: "loc": {2493// CHECK-NEXT: "offset": 1510,2494// CHECK-NEXT: "col": 29,2495// CHECK-NEXT: "tokLen": 42496// CHECK-NEXT: },2497// CHECK-NEXT: "range": {2498// CHECK-NEXT: "begin": {2499// CHECK-NEXT: "offset": 1504,2500// CHECK-NEXT: "col": 23,2501// CHECK-NEXT: "tokLen": 52502// CHECK-NEXT: },2503// CHECK-NEXT: "end": {2504// CHECK-NEXT: "offset": 1510,2505// CHECK-NEXT: "col": 29,2506// CHECK-NEXT: "tokLen": 42507// CHECK-NEXT: }2508// CHECK-NEXT: },2509// CHECK-NEXT: "isReferenced": true,2510// CHECK-NEXT: "name": "_Ty2",2511// CHECK-NEXT: "tagUsed": "class",2512// CHECK-NEXT: "depth": 0,2513// CHECK-NEXT: "index": 12514// CHECK-NEXT: },2515// CHECK-NEXT: {2516// CHECK-NEXT: "id": "0x{{.*}}",2517// CHECK-NEXT: "kind": "CXXRecordDecl",2518// CHECK-NEXT: "loc": {2519// CHECK-NEXT: "offset": 1523,2520// CHECK-NEXT: "line": 56,2521// CHECK-NEXT: "col": 8,2522// CHECK-NEXT: "tokLen": 252523// CHECK-NEXT: },2524// CHECK-NEXT: "range": {2525// CHECK-NEXT: "begin": {2526// CHECK-NEXT: "offset": 1516,2527// CHECK-NEXT: "col": 1,2528// CHECK-NEXT: "tokLen": 62529// CHECK-NEXT: },2530// CHECK-NEXT: "end": {2531// CHECK-NEXT: "offset": 1523,2532// CHECK-NEXT: "col": 8,2533// CHECK-NEXT: "tokLen": 252534// CHECK-NEXT: }2535// CHECK-NEXT: },2536// CHECK-NEXT: "isImplicit": true,2537// CHECK-NEXT: "name": "_Is_member_object_pointer",2538// CHECK-NEXT: "tagUsed": "struct"2539// CHECK-NEXT: },2540// CHECK-NEXT: {2541// CHECK-NEXT: "id": "0x{{.*}}",2542// CHECK-NEXT: "kind": "VarDecl",2543// CHECK-NEXT: "loc": {2544// CHECK-NEXT: "offset": 1591,2545// CHECK-NEXT: "line": 57,2546// CHECK-NEXT: "col": 27,2547// CHECK-NEXT: "tokLen": 52548// CHECK-NEXT: },2549// CHECK-NEXT: "range": {2550// CHECK-NEXT: "begin": {2551// CHECK-NEXT: "offset": 1569,2552// CHECK-NEXT: "col": 5,2553// CHECK-NEXT: "tokLen": 62554// CHECK-NEXT: },2555// CHECK-NEXT: "end": {2556// CHECK-NEXT: "offset": 1618,2557// CHECK-NEXT: "col": 54,2558// CHECK-NEXT: "tokLen": 12559// CHECK-NEXT: }2560// CHECK-NEXT: },2561// CHECK-NEXT: "name": "value",2562// CHECK-NEXT: "type": {2563// CHECK-NEXT: "qualType": "const bool"2564// CHECK-NEXT: },2565// CHECK-NEXT: "storageClass": "static",2566// CHECK-NEXT: "inline": true,2567// CHECK-NEXT: "constexpr": true,2568// CHECK-NEXT: "init": "c",2569// CHECK-NEXT: "inner": [2570// CHECK-NEXT: {2571// CHECK-NEXT: "id": "0x{{.*}}",2572// CHECK-NEXT: "kind": "UnaryOperator",2573// CHECK-NEXT: "range": {2574// CHECK-NEXT: "begin": {2575// CHECK-NEXT: "offset": 1599,2576// CHECK-NEXT: "col": 35,2577// CHECK-NEXT: "tokLen": 12578// CHECK-NEXT: },2579// CHECK-NEXT: "end": {2580// CHECK-NEXT: "offset": 1618,2581// CHECK-NEXT: "col": 54,2582// CHECK-NEXT: "tokLen": 12583// CHECK-NEXT: }2584// CHECK-NEXT: },2585// CHECK-NEXT: "type": {2586// CHECK-NEXT: "qualType": "<dependent type>"2587// CHECK-NEXT: },2588// CHECK-NEXT: "valueCategory": "prvalue",2589// CHECK-NEXT: "isPostfix": false,2590// CHECK-NEXT: "opcode": "!",2591// CHECK-NEXT: "canOverflow": false,2592// CHECK-NEXT: "inner": [2593// CHECK-NEXT: {2594// CHECK-NEXT: "id": "0x{{.*}}",2595// CHECK-NEXT: "kind": "UnresolvedLookupExpr",2596// CHECK-NEXT: "range": {2597// CHECK-NEXT: "begin": {2598// CHECK-NEXT: "offset": 1600,2599// CHECK-NEXT: "col": 36,2600// CHECK-NEXT: "tokLen": 132601// CHECK-NEXT: },2602// CHECK-NEXT: "end": {2603// CHECK-NEXT: "offset": 1618,2604// CHECK-NEXT: "col": 54,2605// CHECK-NEXT: "tokLen": 12606// CHECK-NEXT: }2607// CHECK-NEXT: },2608// CHECK-NEXT: "type": {2609// CHECK-NEXT: "qualType": "<dependent type>"2610// CHECK-NEXT: },2611// CHECK-NEXT: "valueCategory": "lvalue",2612// CHECK-NEXT: "usesADL": false,2613// CHECK-NEXT: "name": "is_function_v",2614// CHECK-NEXT: "lookups": [2615// CHECK-NEXT: {2616// CHECK-NEXT: "id": "0x{{.*}}",2617// CHECK-NEXT: "kind": "VarTemplateDecl",2618// CHECK-NEXT: "name": "is_function_v"2619// CHECK-NEXT: }2620// CHECK-NEXT: ],2621// CHECK-NEXT: "inner": [2622// CHECK-NEXT: {2623// CHECK-NEXT: "kind": "TemplateArgument",2624// CHECK-NEXT: "type": {2625// CHECK-NEXT: "qualType": "_Ty1"2626// CHECK-NEXT: },2627// CHECK-NEXT: "inner": [2628// CHECK-NEXT: {2629// CHECK-NEXT: "id": "0x{{.*}}",2630// CHECK-NEXT: "kind": "TemplateTypeParmType",2631// CHECK-NEXT: "type": {2632// CHECK-NEXT: "qualType": "_Ty1"2633// CHECK-NEXT: },2634// CHECK-NEXT: "isDependent": true,2635// CHECK-NEXT: "isInstantiationDependent": true,2636// CHECK-NEXT: "depth": 0,2637// CHECK-NEXT: "index": 0,2638// CHECK-NEXT: "decl": {2639// CHECK-NEXT: "id": "0x{{.*}}",2640// CHECK-NEXT: "kind": "TemplateTypeParmDecl",2641// CHECK-NEXT: "name": "_Ty1"2642// CHECK-NEXT: }2643// CHECK-NEXT: }2644// CHECK-NEXT: ]2645// CHECK-NEXT: }2646// CHECK-NEXT: ]2647// CHECK-NEXT: }2648// CHECK-NEXT: ]2649// CHECK-NEXT: }2650// CHECK-NEXT: ]2651// CHECK-NEXT: },2652// CHECK-NEXT: {2653// CHECK-NEXT: "id": "0x{{.*}}",2654// CHECK-NEXT: "kind": "TypeAliasDecl",2655// CHECK-NEXT: "loc": {2656// CHECK-NEXT: "offset": 1631,2657// CHECK-NEXT: "line": 58,2658// CHECK-NEXT: "col": 11,2659// CHECK-NEXT: "tokLen": 112660// CHECK-NEXT: },2661// CHECK-NEXT: "range": {2662// CHECK-NEXT: "begin": {2663// CHECK-NEXT: "offset": 1625,2664// CHECK-NEXT: "col": 5,2665// CHECK-NEXT: "tokLen": 52666// CHECK-NEXT: },2667// CHECK-NEXT: "end": {2668// CHECK-NEXT: "offset": 1655,2669// CHECK-NEXT: "col": 35,2670// CHECK-NEXT: "tokLen": 42671// CHECK-NEXT: }2672// CHECK-NEXT: },2673// CHECK-NEXT: "name": "_Class_type",2674// CHECK-NEXT: "type": {2675// CHECK-NEXT: "qualType": "_Ty2"2676// CHECK-NEXT: },2677// CHECK-NEXT: "inner": [2678// CHECK-NEXT: {2679// CHECK-NEXT: "id": "0x{{.*}}",2680// CHECK-NEXT: "kind": "TemplateTypeParmType",2681// CHECK-NEXT: "type": {2682// CHECK-NEXT: "qualType": "_Ty2"2683// CHECK-NEXT: },2684// CHECK-NEXT: "isDependent": true,2685// CHECK-NEXT: "isInstantiationDependent": true,2686// CHECK-NEXT: "depth": 0,2687// CHECK-NEXT: "index": 1,2688// CHECK-NEXT: "decl": {2689// CHECK-NEXT: "id": "0x{{.*}}",2690// CHECK-NEXT: "kind": "TemplateTypeParmDecl",2691// CHECK-NEXT: "name": "_Ty2"2692// CHECK-NEXT: }2693// CHECK-NEXT: }2694// CHECK-NEXT: ]2695// CHECK-NEXT: }2696// CHECK-NEXT: ]2697// CHECK-NEXT: },2698// CHECK-NEXT: {2699// CHECK-NEXT: "id": "0x{{.*}}",2700// CHECK-NEXT: "kind": "VarTemplateDecl",2701// CHECK-NEXT: "loc": {2702// CHECK-NEXT: "offset": 1713,2703// CHECK-NEXT: "line": 62,2704// CHECK-NEXT: "col": 28,2705// CHECK-NEXT: "tokLen": 262706// CHECK-NEXT: },2707// CHECK-NEXT: "range": {2708// CHECK-NEXT: "begin": {2709// CHECK-NEXT: "offset": 1665,2710// CHECK-NEXT: "line": 61,2711// CHECK-NEXT: "col": 1,2712// CHECK-NEXT: "tokLen": 82713// CHECK-NEXT: },2714// CHECK-NEXT: "end": {2715// CHECK-NEXT: "offset": 1772,2716// CHECK-NEXT: "line": 62,2717// CHECK-NEXT: "col": 87,2718// CHECK-NEXT: "tokLen": 12719// CHECK-NEXT: }2720// CHECK-NEXT: },2721// CHECK-NEXT: "name": "is_member_object_pointer_v",2722// CHECK-NEXT: "inner": [2723// CHECK-NEXT: {2724// CHECK-NEXT: "id": "0x{{.*}}",2725// CHECK-NEXT: "kind": "TemplateTypeParmDecl",2726// CHECK-NEXT: "loc": {2727// CHECK-NEXT: "offset": 1681,2728// CHECK-NEXT: "line": 61,2729// CHECK-NEXT: "col": 17,2730// CHECK-NEXT: "tokLen": 32731// CHECK-NEXT: },2732// CHECK-NEXT: "range": {2733// CHECK-NEXT: "begin": {2734// CHECK-NEXT: "offset": 1675,2735// CHECK-NEXT: "col": 11,2736// CHECK-NEXT: "tokLen": 52737// CHECK-NEXT: },2738// CHECK-NEXT: "end": {2739// CHECK-NEXT: "offset": 1681,2740// CHECK-NEXT: "col": 17,2741// CHECK-NEXT: "tokLen": 32742// CHECK-NEXT: }2743// CHECK-NEXT: },2744// CHECK-NEXT: "isReferenced": true,2745// CHECK-NEXT: "name": "_Ty",2746// CHECK-NEXT: "tagUsed": "class",2747// CHECK-NEXT: "depth": 0,2748// CHECK-NEXT: "index": 02749// CHECK-NEXT: },2750// CHECK-NEXT: {2751// CHECK-NEXT: "id": "0x{{.*}}",2752// CHECK-NEXT: "kind": "VarDecl",2753// CHECK-NEXT: "loc": {2754// CHECK-NEXT: "offset": 1713,2755// CHECK-NEXT: "line": 62,2756// CHECK-NEXT: "col": 28,2757// CHECK-NEXT: "tokLen": 262758// CHECK-NEXT: },2759// CHECK-NEXT: "range": {2760// CHECK-NEXT: "begin": {2761// CHECK-NEXT: "spellingLoc": {2762// CHECK-NEXT: "offset": 97,2763// CHECK-NEXT: "line": 3,2764// CHECK-NEXT: "col": 21,2765// CHECK-NEXT: "tokLen": 62766// CHECK-NEXT: },2767// CHECK-NEXT: "expansionLoc": {2768// CHECK-NEXT: "offset": 1686,2769// CHECK-NEXT: "line": 62,2770// CHECK-NEXT: "col": 1,2771// CHECK-NEXT: "tokLen": 112772// CHECK-NEXT: }2773// CHECK-NEXT: },2774// CHECK-NEXT: "end": {2775// CHECK-NEXT: "offset": 1772,2776// CHECK-NEXT: "col": 87,2777// CHECK-NEXT: "tokLen": 12778// CHECK-NEXT: }2779// CHECK-NEXT: },2780// CHECK-NEXT: "name": "is_member_object_pointer_v",2781// CHECK-NEXT: "type": {2782// CHECK-NEXT: "qualType": "const bool"2783// CHECK-NEXT: },2784// CHECK-NEXT: "inline": true,2785// CHECK-NEXT: "constexpr": true,2786// CHECK-NEXT: "init": "c",2787// CHECK-NEXT: "TemplateInstantiationPattern": "0x{{.*}}",2788// CHECK-NEXT: "inner": [2789// CHECK-NEXT: {2790// CHECK-NEXT: "id": "0x{{.*}}",2791// CHECK-NEXT: "kind": "TypeTraitExpr",2792// CHECK-NEXT: "range": {2793// CHECK-NEXT: "begin": {2794// CHECK-NEXT: "offset": 1742,2795// CHECK-NEXT: "col": 57,2796// CHECK-NEXT: "tokLen": 262797// CHECK-NEXT: },2798// CHECK-NEXT: "end": {2799// CHECK-NEXT: "offset": 1772,2800// CHECK-NEXT: "col": 87,2801// CHECK-NEXT: "tokLen": 12802// CHECK-NEXT: }2803// CHECK-NEXT: },2804// CHECK-NEXT: "type": {2805// CHECK-NEXT: "qualType": "bool"2806// CHECK-NEXT: },2807// CHECK-NEXT: "valueCategory": "prvalue",2808// CHECK-NEXT: "inner": [2809// CHECK-NEXT: {2810// CHECK-NEXT: "id": "0x{{.*}}",2811// CHECK-NEXT: "kind": "TemplateTypeParmType",2812// CHECK-NEXT: "type": {2813// CHECK-NEXT: "qualType": "_Ty"2814// CHECK-NEXT: },2815// CHECK-NEXT: "isDependent": true,2816// CHECK-NEXT: "isInstantiationDependent": true,2817// CHECK-NEXT: "depth": 0,2818// CHECK-NEXT: "index": 0,2819// CHECK-NEXT: "decl": {2820// CHECK-NEXT: "id": "0x{{.*}}",2821// CHECK-NEXT: "kind": "TemplateTypeParmDecl",2822// CHECK-NEXT: "name": "_Ty"2823// CHECK-NEXT: }2824// CHECK-NEXT: }2825// CHECK-NEXT: ]2826// CHECK-NEXT: }2827// CHECK-NEXT: ]2828// CHECK-NEXT: }2829// CHECK-NEXT: ]2830// CHECK-NEXT: },2831// CHECK-NEXT: {2832// CHECK-NEXT: "id": "0x{{.*}}",2833// CHECK-NEXT: "kind": "ClassTemplateDecl",2834// CHECK-NEXT: "loc": {2835// CHECK-NEXT: "offset": 1804,2836// CHECK-NEXT: "line": 65,2837// CHECK-NEXT: "col": 8,2838// CHECK-NEXT: "tokLen": 242839// CHECK-NEXT: },2840// CHECK-NEXT: "range": {2841// CHECK-NEXT: "begin": {2842// CHECK-NEXT: "offset": 1776,2843// CHECK-NEXT: "line": 64,2844// CHECK-NEXT: "col": 1,2845// CHECK-NEXT: "tokLen": 82846// CHECK-NEXT: },2847// CHECK-NEXT: "end": {2848// CHECK-NEXT: "offset": 1879,2849// CHECK-NEXT: "line": 65,2850// CHECK-NEXT: "col": 83,2851// CHECK-NEXT: "tokLen": 12852// CHECK-NEXT: }2853// CHECK-NEXT: },2854// CHECK-NEXT: "name": "is_member_object_pointer",2855// CHECK-NEXT: "inner": [2856// CHECK-NEXT: {2857// CHECK-NEXT: "id": "0x{{.*}}",2858// CHECK-NEXT: "kind": "TemplateTypeParmDecl",2859// CHECK-NEXT: "loc": {2860// CHECK-NEXT: "offset": 1792,2861// CHECK-NEXT: "line": 64,2862// CHECK-NEXT: "col": 17,2863// CHECK-NEXT: "tokLen": 32864// CHECK-NEXT: },2865// CHECK-NEXT: "range": {2866// CHECK-NEXT: "begin": {2867// CHECK-NEXT: "offset": 1786,2868// CHECK-NEXT: "col": 11,2869// CHECK-NEXT: "tokLen": 52870// CHECK-NEXT: },2871// CHECK-NEXT: "end": {2872// CHECK-NEXT: "offset": 1792,2873// CHECK-NEXT: "col": 17,2874// CHECK-NEXT: "tokLen": 32875// CHECK-NEXT: }2876// CHECK-NEXT: },2877// CHECK-NEXT: "isReferenced": true,2878// CHECK-NEXT: "name": "_Ty",2879// CHECK-NEXT: "tagUsed": "class",2880// CHECK-NEXT: "depth": 0,2881// CHECK-NEXT: "index": 02882// CHECK-NEXT: },2883// CHECK-NEXT: {2884// CHECK-NEXT: "id": "0x{{.*}}",2885// CHECK-NEXT: "kind": "CXXRecordDecl",2886// CHECK-NEXT: "loc": {2887// CHECK-NEXT: "offset": 1804,2888// CHECK-NEXT: "line": 65,2889// CHECK-NEXT: "col": 8,2890// CHECK-NEXT: "tokLen": 242891// CHECK-NEXT: },2892// CHECK-NEXT: "range": {2893// CHECK-NEXT: "begin": {2894// CHECK-NEXT: "offset": 1797,2895// CHECK-NEXT: "col": 1,2896// CHECK-NEXT: "tokLen": 62897// CHECK-NEXT: },2898// CHECK-NEXT: "end": {2899// CHECK-NEXT: "offset": 1879,2900// CHECK-NEXT: "col": 83,2901// CHECK-NEXT: "tokLen": 12902// CHECK-NEXT: }2903// CHECK-NEXT: },2904// CHECK-NEXT: "name": "is_member_object_pointer",2905// CHECK-NEXT: "tagUsed": "struct",2906// CHECK-NEXT: "completeDefinition": true,2907// CHECK-NEXT: "definitionData": {2908// CHECK-NEXT: "canConstDefaultInit": true,2909// CHECK-NEXT: "copyAssign": {2910// CHECK-NEXT: "hasConstParam": true,2911// CHECK-NEXT: "implicitHasConstParam": true,2912// CHECK-NEXT: "needsImplicit": true,2913// CHECK-NEXT: "simple": true,2914// CHECK-NEXT: "trivial": true2915// CHECK-NEXT: },2916// CHECK-NEXT: "copyCtor": {2917// CHECK-NEXT: "hasConstParam": true,2918// CHECK-NEXT: "implicitHasConstParam": true,2919// CHECK-NEXT: "needsImplicit": true,2920// CHECK-NEXT: "simple": true,2921// CHECK-NEXT: "trivial": true2922// CHECK-NEXT: },2923// CHECK-NEXT: "defaultCtor": {2924// CHECK-NEXT: "defaultedIsConstexpr": true,2925// CHECK-NEXT: "exists": true,2926// CHECK-NEXT: "isConstexpr": true,2927// CHECK-NEXT: "needsImplicit": true,2928// CHECK-NEXT: "trivial": true2929// CHECK-NEXT: },2930// CHECK-NEXT: "dtor": {2931// CHECK-NEXT: "irrelevant": true,2932// CHECK-NEXT: "needsImplicit": true,2933// CHECK-NEXT: "simple": true,2934// CHECK-NEXT: "trivial": true2935// CHECK-NEXT: },2936// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,2937// CHECK-NEXT: "isAggregate": true,2938// CHECK-NEXT: "isEmpty": true,2939// CHECK-NEXT: "isLiteral": true,2940// CHECK-NEXT: "isStandardLayout": true,2941// CHECK-NEXT: "isTrivial": true,2942// CHECK-NEXT: "isTriviallyCopyable": true,2943// CHECK-NEXT: "moveAssign": {2944// CHECK-NEXT: "exists": true,2945// CHECK-NEXT: "needsImplicit": true,2946// CHECK-NEXT: "simple": true,2947// CHECK-NEXT: "trivial": true2948// CHECK-NEXT: },2949// CHECK-NEXT: "moveCtor": {2950// CHECK-NEXT: "exists": true,2951// CHECK-NEXT: "needsImplicit": true,2952// CHECK-NEXT: "simple": true,2953// CHECK-NEXT: "trivial": true2954// CHECK-NEXT: }2955// CHECK-NEXT: },2956// CHECK-NEXT: "bases": [2957// CHECK-NEXT: {2958// CHECK-NEXT: "access": "public",2959// CHECK-NEXT: "type": {2960// CHECK-NEXT: "desugaredQualType": "integral_constant<bool, is_member_object_pointer_v<_Ty>>",2961// CHECK-NEXT: "qualType": "bool_constant<is_member_object_pointer_v<_Ty>>"2962// CHECK-NEXT: },2963// CHECK-NEXT: "writtenAccess": "none"2964// CHECK-NEXT: }2965// CHECK-NEXT: ],2966// CHECK-NEXT: "inner": [2967// CHECK-NEXT: {2968// CHECK-NEXT: "id": "0x{{.*}}",2969// CHECK-NEXT: "kind": "CXXRecordDecl",2970// CHECK-NEXT: "loc": {2971// CHECK-NEXT: "offset": 1804,2972// CHECK-NEXT: "col": 8,2973// CHECK-NEXT: "tokLen": 242974// CHECK-NEXT: },2975// CHECK-NEXT: "range": {2976// CHECK-NEXT: "begin": {2977// CHECK-NEXT: "offset": 1797,2978// CHECK-NEXT: "col": 1,2979// CHECK-NEXT: "tokLen": 62980// CHECK-NEXT: },2981// CHECK-NEXT: "end": {2982// CHECK-NEXT: "offset": 1804,2983// CHECK-NEXT: "col": 8,2984// CHECK-NEXT: "tokLen": 242985// CHECK-NEXT: }2986// CHECK-NEXT: },2987// CHECK-NEXT: "isImplicit": true,2988// CHECK-NEXT: "name": "is_member_object_pointer",2989// CHECK-NEXT: "tagUsed": "struct"2990// CHECK-NEXT: }2991// CHECK-NEXT: ]2992// CHECK-NEXT: }2993// CHECK-NEXT: ]2994// CHECK-NEXT: },2995// CHECK-NEXT: {2996// CHECK-NEXT: "id": "0x{{.*}}",2997// CHECK-NEXT: "kind": "VarTemplateDecl",2998// CHECK-NEXT: "loc": {2999// CHECK-NEXT: "offset": 1931,3000// CHECK-NEXT: "line": 68,3001// CHECK-NEXT: "col": 28,3002// CHECK-NEXT: "tokLen": 193003// CHECK-NEXT: },3004// CHECK-NEXT: "range": {3005// CHECK-NEXT: "begin": {3006// CHECK-NEXT: "offset": 1883,3007// CHECK-NEXT: "line": 67,3008// CHECK-NEXT: "col": 1,3009// CHECK-NEXT: "tokLen": 83010// CHECK-NEXT: },3011// CHECK-NEXT: "end": {3012// CHECK-NEXT: "offset": 1976,3013// CHECK-NEXT: "line": 68,3014// CHECK-NEXT: "col": 73,3015// CHECK-NEXT: "tokLen": 13016// CHECK-NEXT: }3017// CHECK-NEXT: },3018// CHECK-NEXT: "name": "is_member_pointer_v",3019// CHECK-NEXT: "inner": [3020// CHECK-NEXT: {3021// CHECK-NEXT: "id": "0x{{.*}}",3022// CHECK-NEXT: "kind": "TemplateTypeParmDecl",3023// CHECK-NEXT: "loc": {3024// CHECK-NEXT: "offset": 1899,3025// CHECK-NEXT: "line": 67,3026// CHECK-NEXT: "col": 17,3027// CHECK-NEXT: "tokLen": 33028// CHECK-NEXT: },3029// CHECK-NEXT: "range": {3030// CHECK-NEXT: "begin": {3031// CHECK-NEXT: "offset": 1893,3032// CHECK-NEXT: "col": 11,3033// CHECK-NEXT: "tokLen": 53034// CHECK-NEXT: },3035// CHECK-NEXT: "end": {3036// CHECK-NEXT: "offset": 1899,3037// CHECK-NEXT: "col": 17,3038// CHECK-NEXT: "tokLen": 33039// CHECK-NEXT: }3040// CHECK-NEXT: },3041// CHECK-NEXT: "isReferenced": true,3042// CHECK-NEXT: "name": "_Ty",3043// CHECK-NEXT: "tagUsed": "class",3044// CHECK-NEXT: "depth": 0,3045// CHECK-NEXT: "index": 03046// CHECK-NEXT: },3047// CHECK-NEXT: {3048// CHECK-NEXT: "id": "0x{{.*}}",3049// CHECK-NEXT: "kind": "VarDecl",3050// CHECK-NEXT: "loc": {3051// CHECK-NEXT: "offset": 1931,3052// CHECK-NEXT: "line": 68,3053// CHECK-NEXT: "col": 28,3054// CHECK-NEXT: "tokLen": 193055// CHECK-NEXT: },3056// CHECK-NEXT: "range": {3057// CHECK-NEXT: "begin": {3058// CHECK-NEXT: "spellingLoc": {3059// CHECK-NEXT: "offset": 97,3060// CHECK-NEXT: "line": 3,3061// CHECK-NEXT: "col": 21,3062// CHECK-NEXT: "tokLen": 63063// CHECK-NEXT: },3064// CHECK-NEXT: "expansionLoc": {3065// CHECK-NEXT: "offset": 1904,3066// CHECK-NEXT: "line": 68,3067// CHECK-NEXT: "col": 1,3068// CHECK-NEXT: "tokLen": 113069// CHECK-NEXT: }3070// CHECK-NEXT: },3071// CHECK-NEXT: "end": {3072// CHECK-NEXT: "offset": 1976,3073// CHECK-NEXT: "col": 73,3074// CHECK-NEXT: "tokLen": 13075// CHECK-NEXT: }3076// CHECK-NEXT: },3077// CHECK-NEXT: "name": "is_member_pointer_v",3078// CHECK-NEXT: "type": {3079// CHECK-NEXT: "qualType": "const bool"3080// CHECK-NEXT: },3081// CHECK-NEXT: "inline": true,3082// CHECK-NEXT: "constexpr": true,3083// CHECK-NEXT: "init": "c",3084// CHECK-NEXT: "TemplateInstantiationPattern": "0x{{.*}}",3085// CHECK-NEXT: "inner": [3086// CHECK-NEXT: {3087// CHECK-NEXT: "id": "0x{{.*}}",3088// CHECK-NEXT: "kind": "TypeTraitExpr",3089// CHECK-NEXT: "range": {3090// CHECK-NEXT: "begin": {3091// CHECK-NEXT: "offset": 1953,3092// CHECK-NEXT: "col": 50,3093// CHECK-NEXT: "tokLen": 193094// CHECK-NEXT: },3095// CHECK-NEXT: "end": {3096// CHECK-NEXT: "offset": 1976,3097// CHECK-NEXT: "col": 73,3098// CHECK-NEXT: "tokLen": 13099// CHECK-NEXT: }3100// CHECK-NEXT: },3101// CHECK-NEXT: "type": {3102// CHECK-NEXT: "qualType": "bool"3103// CHECK-NEXT: },3104// CHECK-NEXT: "valueCategory": "prvalue",3105// CHECK-NEXT: "inner": [3106// CHECK-NEXT: {3107// CHECK-NEXT: "id": "0x{{.*}}",3108// CHECK-NEXT: "kind": "TemplateTypeParmType",3109// CHECK-NEXT: "type": {3110// CHECK-NEXT: "qualType": "_Ty"3111// CHECK-NEXT: },3112// CHECK-NEXT: "isDependent": true,3113// CHECK-NEXT: "isInstantiationDependent": true,3114// CHECK-NEXT: "depth": 0,3115// CHECK-NEXT: "index": 0,3116// CHECK-NEXT: "decl": {3117// CHECK-NEXT: "id": "0x{{.*}}",3118// CHECK-NEXT: "kind": "TemplateTypeParmDecl",3119// CHECK-NEXT: "name": "_Ty"3120// CHECK-NEXT: }3121// CHECK-NEXT: }3122// CHECK-NEXT: ]3123// CHECK-NEXT: }3124// CHECK-NEXT: ]3125// CHECK-NEXT: }3126// CHECK-NEXT: ]3127// CHECK-NEXT: },3128// CHECK-NEXT: {3129// CHECK-NEXT: "id": "0x{{.*}}",3130// CHECK-NEXT: "kind": "FunctionDecl",3131// CHECK-NEXT: "loc": {3132// CHECK-NEXT: "offset": 1984,3133// CHECK-NEXT: "line": 70,3134// CHECK-NEXT: "col": 5,3135// CHECK-NEXT: "tokLen": 43136// CHECK-NEXT: },3137// CHECK-NEXT: "range": {3138// CHECK-NEXT: "begin": {3139// CHECK-NEXT: "offset": 1980,3140// CHECK-NEXT: "col": 1,3141// CHECK-NEXT: "tokLen": 33142// CHECK-NEXT: },3143// CHECK-NEXT: "end": {3144// CHECK-NEXT: "offset": 2007,3145// CHECK-NEXT: "line": 73,3146// CHECK-NEXT: "col": 1,3147// CHECK-NEXT: "tokLen": 13148// CHECK-NEXT: }3149// CHECK-NEXT: },3150// CHECK-NEXT: "name": "main",3151// CHECK-NEXT: "mangledName": "main",3152// CHECK-NEXT: "type": {3153// CHECK-NEXT: "qualType": "int ()"3154// CHECK-NEXT: },3155// CHECK-NEXT: "inner": [3156// CHECK-NEXT: {3157// CHECK-NEXT: "id": "0x{{.*}}",3158// CHECK-NEXT: "kind": "CompoundStmt",3159// CHECK-NEXT: "range": {3160// CHECK-NEXT: "begin": {3161// CHECK-NEXT: "offset": 1991,3162// CHECK-NEXT: "line": 71,3163// CHECK-NEXT: "col": 1,3164// CHECK-NEXT: "tokLen": 13165// CHECK-NEXT: },3166// CHECK-NEXT: "end": {3167// CHECK-NEXT: "offset": 2007,3168// CHECK-NEXT: "line": 73,3169// CHECK-NEXT: "col": 1,3170// CHECK-NEXT: "tokLen": 13171// CHECK-NEXT: }3172// CHECK-NEXT: },3173// CHECK-NEXT: "inner": [3174// CHECK-NEXT: {3175// CHECK-NEXT: "id": "0x{{.*}}",3176// CHECK-NEXT: "kind": "ReturnStmt",3177// CHECK-NEXT: "range": {3178// CHECK-NEXT: "begin": {3179// CHECK-NEXT: "offset": 1997,3180// CHECK-NEXT: "line": 72,3181// CHECK-NEXT: "col": 5,3182// CHECK-NEXT: "tokLen": 63183// CHECK-NEXT: },3184// CHECK-NEXT: "end": {3185// CHECK-NEXT: "offset": 2004,3186// CHECK-NEXT: "col": 12,3187// CHECK-NEXT: "tokLen": 13188// CHECK-NEXT: }3189// CHECK-NEXT: },3190// CHECK-NEXT: "inner": [3191// CHECK-NEXT: {3192// CHECK-NEXT: "id": "0x{{.*}}",3193// CHECK-NEXT: "kind": "IntegerLiteral",3194// CHECK-NEXT: "range": {3195// CHECK-NEXT: "begin": {3196// CHECK-NEXT: "offset": 2004,3197// CHECK-NEXT: "col": 12,3198// CHECK-NEXT: "tokLen": 13199// CHECK-NEXT: },3200// CHECK-NEXT: "end": {3201// CHECK-NEXT: "offset": 2004,3202// CHECK-NEXT: "col": 12,3203// CHECK-NEXT: "tokLen": 13204// CHECK-NEXT: }3205// CHECK-NEXT: },3206// CHECK-NEXT: "type": {3207// CHECK-NEXT: "qualType": "int"3208// CHECK-NEXT: },3209// CHECK-NEXT: "valueCategory": "prvalue",3210// CHECK-NEXT: "value": "0"3211// CHECK-NEXT: }3212// CHECK-NEXT: ]3213// CHECK-NEXT: }3214// CHECK-NEXT: ]3215// CHECK-NEXT: }3216// CHECK-NEXT: ]3217// CHECK-NEXT: }3218// CHECK-NEXT: ]3219// CHECK-NEXT: }3220