1 // RUN: %clang_cc1 -std=c++17 -triple x86_64-unknown-unknown -ast-dump=json %s | FileCheck -strict-whitespace %s 2 3 template <typename Ty> 4 void a(Ty); 5 6 template <typename... Ty> 7 void b(Ty...); 8 9 template <class Ty, typename Uy> 10 void c(Ty); 11 12 template <> 13 void c<float, int>(float); 14 15 template <typename Ty, template<typename> typename Uy> 16 void d(Ty, Uy<Ty>); 17 18 template <class Ty> 19 void e(Ty); 20 21 template <int N> 22 void f(int i = N); 23 24 template <typename Ty = int> 25 void g(Ty); 26 27 template <typename = void> 28 void h(); 29 30 template <typename Ty> 31 struct R {}; 32 33 template <> 34 struct R<int> {}; 35 36 template <typename Ty, class Uy> 37 struct S {}; 38 39 template <typename Ty> 40 struct S<Ty, int> {}; 41 42 template <auto> 43 struct T {}; 44 45 template <decltype(auto)> 46 struct U {}; 47 48 template <typename Ty> 49 struct V { 50 template <typename Uy> 51 void f(); 52 }; 53 54 template <typename Ty> 55 template <typename Uy> 56 void V<Ty>::f() {} 57 58 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py 59 60 61 // CHECK: "kind": "TranslationUnitDecl", 62 // CHECK-NEXT: "loc": {}, 63 // CHECK-NEXT: "range": { 64 // CHECK-NEXT: "begin": {}, 65 // CHECK-NEXT: "end": {} 66 // CHECK-NEXT: }, 67 // CHECK-NEXT: "inner": [ 68 // CHECK-NEXT: { 69 // CHECK-NEXT: "id": "0x{{.*}}", 70 // CHECK-NEXT: "kind": "TypedefDecl", 71 // CHECK-NEXT: "loc": {}, 72 // CHECK-NEXT: "range": { 73 // CHECK-NEXT: "begin": {}, 74 // CHECK-NEXT: "end": {} 75 // CHECK-NEXT: }, 76 // CHECK-NEXT: "isImplicit": true, 77 // CHECK-NEXT: "name": "__int128_t", 78 // CHECK-NEXT: "type": { 79 // CHECK-NEXT: "qualType": "__int128" 80 // CHECK-NEXT: }, 81 // CHECK-NEXT: "inner": [ 82 // CHECK-NEXT: { 83 // CHECK-NEXT: "id": "0x{{.*}}", 84 // CHECK-NEXT: "kind": "BuiltinType", 85 // CHECK-NEXT: "type": { 86 // CHECK-NEXT: "qualType": "__int128" 87 // CHECK-NEXT: } 88 // CHECK-NEXT: } 89 // CHECK-NEXT: ] 90 // CHECK-NEXT: }, 91 // CHECK-NEXT: { 92 // CHECK-NEXT: "id": "0x{{.*}}", 93 // CHECK-NEXT: "kind": "TypedefDecl", 94 // CHECK-NEXT: "loc": {}, 95 // CHECK-NEXT: "range": { 96 // CHECK-NEXT: "begin": {}, 97 // CHECK-NEXT: "end": {} 98 // CHECK-NEXT: }, 99 // CHECK-NEXT: "isImplicit": true, 100 // CHECK-NEXT: "name": "__uint128_t", 101 // CHECK-NEXT: "type": { 102 // CHECK-NEXT: "qualType": "unsigned __int128" 103 // CHECK-NEXT: }, 104 // CHECK-NEXT: "inner": [ 105 // CHECK-NEXT: { 106 // CHECK-NEXT: "id": "0x{{.*}}", 107 // CHECK-NEXT: "kind": "BuiltinType", 108 // CHECK-NEXT: "type": { 109 // CHECK-NEXT: "qualType": "unsigned __int128" 110 // CHECK-NEXT: } 111 // CHECK-NEXT: } 112 // CHECK-NEXT: ] 113 // CHECK-NEXT: }, 114 // CHECK-NEXT: { 115 // CHECK-NEXT: "id": "0x{{.*}}", 116 // CHECK-NEXT: "kind": "TypedefDecl", 117 // CHECK-NEXT: "loc": {}, 118 // CHECK-NEXT: "range": { 119 // CHECK-NEXT: "begin": {}, 120 // CHECK-NEXT: "end": {} 121 // CHECK-NEXT: }, 122 // CHECK-NEXT: "isImplicit": true, 123 // CHECK-NEXT: "name": "__NSConstantString", 124 // CHECK-NEXT: "type": { 125 // CHECK-NEXT: "qualType": "__NSConstantString_tag" 126 // CHECK-NEXT: }, 127 // CHECK-NEXT: "inner": [ 128 // CHECK-NEXT: { 129 // CHECK-NEXT: "id": "0x{{.*}}", 130 // CHECK-NEXT: "kind": "RecordType", 131 // CHECK-NEXT: "type": { 132 // CHECK-NEXT: "qualType": "__NSConstantString_tag" 133 // CHECK-NEXT: }, 134 // CHECK-NEXT: "decl": { 135 // CHECK-NEXT: "id": "0x{{.*}}", 136 // CHECK-NEXT: "kind": "CXXRecordDecl", 137 // CHECK-NEXT: "name": "__NSConstantString_tag" 138 // CHECK-NEXT: } 139 // CHECK-NEXT: } 140 // CHECK-NEXT: ] 141 // CHECK-NEXT: }, 142 // CHECK-NEXT: { 143 // CHECK-NEXT: "id": "0x{{.*}}", 144 // CHECK-NEXT: "kind": "TypedefDecl", 145 // CHECK-NEXT: "loc": {}, 146 // CHECK-NEXT: "range": { 147 // CHECK-NEXT: "begin": {}, 148 // CHECK-NEXT: "end": {} 149 // CHECK-NEXT: }, 150 // CHECK-NEXT: "isImplicit": true, 151 // CHECK-NEXT: "name": "__builtin_ms_va_list", 152 // CHECK-NEXT: "type": { 153 // CHECK-NEXT: "qualType": "char *" 154 // CHECK-NEXT: }, 155 // CHECK-NEXT: "inner": [ 156 // CHECK-NEXT: { 157 // CHECK-NEXT: "id": "0x{{.*}}", 158 // CHECK-NEXT: "kind": "PointerType", 159 // CHECK-NEXT: "type": { 160 // CHECK-NEXT: "qualType": "char *" 161 // CHECK-NEXT: }, 162 // CHECK-NEXT: "inner": [ 163 // CHECK-NEXT: { 164 // CHECK-NEXT: "id": "0x{{.*}}", 165 // CHECK-NEXT: "kind": "BuiltinType", 166 // CHECK-NEXT: "type": { 167 // CHECK-NEXT: "qualType": "char" 168 // CHECK-NEXT: } 169 // CHECK-NEXT: } 170 // CHECK-NEXT: ] 171 // CHECK-NEXT: } 172 // CHECK-NEXT: ] 173 // CHECK-NEXT: }, 174 // CHECK-NEXT: { 175 // CHECK-NEXT: "id": "0x{{.*}}", 176 // CHECK-NEXT: "kind": "TypedefDecl", 177 // CHECK-NEXT: "loc": {}, 178 // CHECK-NEXT: "range": { 179 // CHECK-NEXT: "begin": {}, 180 // CHECK-NEXT: "end": {} 181 // CHECK-NEXT: }, 182 // CHECK-NEXT: "isImplicit": true, 183 // CHECK-NEXT: "name": "__builtin_va_list", 184 // CHECK-NEXT: "type": { 185 // CHECK-NEXT: "qualType": "__va_list_tag [1]" 186 // CHECK-NEXT: }, 187 // CHECK-NEXT: "inner": [ 188 // CHECK-NEXT: { 189 // CHECK-NEXT: "id": "0x{{.*}}", 190 // CHECK-NEXT: "kind": "ConstantArrayType", 191 // CHECK-NEXT: "type": { 192 // CHECK-NEXT: "qualType": "__va_list_tag [1]" 193 // CHECK-NEXT: }, 194 // CHECK-NEXT: "size": 1, 195 // CHECK-NEXT: "inner": [ 196 // CHECK-NEXT: { 197 // CHECK-NEXT: "id": "0x{{.*}}", 198 // CHECK-NEXT: "kind": "RecordType", 199 // CHECK-NEXT: "type": { 200 // CHECK-NEXT: "qualType": "__va_list_tag" 201 // CHECK-NEXT: }, 202 // CHECK-NEXT: "decl": { 203 // CHECK-NEXT: "id": "0x{{.*}}", 204 // CHECK-NEXT: "kind": "CXXRecordDecl", 205 // CHECK-NEXT: "name": "__va_list_tag" 206 // CHECK-NEXT: } 207 // CHECK-NEXT: } 208 // CHECK-NEXT: ] 209 // CHECK-NEXT: } 210 // CHECK-NEXT: ] 211 // CHECK-NEXT: }, 212 // CHECK-NEXT: { 213 // CHECK-NEXT: "id": "0x{{.*}}", 214 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 215 // CHECK-NEXT: "loc": { 216 // CHECK-NEXT: "offset": 142, 217 // CHECK-NEXT: "file": "{{.*}}", 218 // CHECK-NEXT: "line": 4, 219 // CHECK-NEXT: "col": 6, 220 // CHECK-NEXT: "tokLen": 1 221 // CHECK-NEXT: }, 222 // CHECK-NEXT: "range": { 223 // CHECK-NEXT: "begin": { 224 // CHECK-NEXT: "offset": 114, 225 // CHECK-NEXT: "line": 3, 226 // CHECK-NEXT: "col": 1, 227 // CHECK-NEXT: "tokLen": 8 228 // CHECK-NEXT: }, 229 // CHECK-NEXT: "end": { 230 // CHECK-NEXT: "offset": 146, 231 // CHECK-NEXT: "line": 4, 232 // CHECK-NEXT: "col": 10, 233 // CHECK-NEXT: "tokLen": 1 234 // CHECK-NEXT: } 235 // CHECK-NEXT: }, 236 // CHECK-NEXT: "name": "a", 237 // CHECK-NEXT: "inner": [ 238 // CHECK-NEXT: { 239 // CHECK-NEXT: "id": "0x{{.*}}", 240 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 241 // CHECK-NEXT: "loc": { 242 // CHECK-NEXT: "offset": 133, 243 // CHECK-NEXT: "line": 3, 244 // CHECK-NEXT: "col": 20, 245 // CHECK-NEXT: "tokLen": 2 246 // CHECK-NEXT: }, 247 // CHECK-NEXT: "range": { 248 // CHECK-NEXT: "begin": { 249 // CHECK-NEXT: "offset": 124, 250 // CHECK-NEXT: "col": 11, 251 // CHECK-NEXT: "tokLen": 8 252 // CHECK-NEXT: }, 253 // CHECK-NEXT: "end": { 254 // CHECK-NEXT: "offset": 133, 255 // CHECK-NEXT: "col": 20, 256 // CHECK-NEXT: "tokLen": 2 257 // CHECK-NEXT: } 258 // CHECK-NEXT: }, 259 // CHECK-NEXT: "isReferenced": true, 260 // CHECK-NEXT: "name": "Ty", 261 // CHECK-NEXT: "tagUsed": "typename", 262 // CHECK-NEXT: "depth": 0, 263 // CHECK-NEXT: "index": 0 264 // CHECK-NEXT: }, 265 // CHECK-NEXT: { 266 // CHECK-NEXT: "id": "0x{{.*}}", 267 // CHECK-NEXT: "kind": "FunctionDecl", 268 // CHECK-NEXT: "loc": { 269 // CHECK-NEXT: "offset": 142, 270 // CHECK-NEXT: "line": 4, 271 // CHECK-NEXT: "col": 6, 272 // CHECK-NEXT: "tokLen": 1 273 // CHECK-NEXT: }, 274 // CHECK-NEXT: "range": { 275 // CHECK-NEXT: "begin": { 276 // CHECK-NEXT: "offset": 137, 277 // CHECK-NEXT: "col": 1, 278 // CHECK-NEXT: "tokLen": 4 279 // CHECK-NEXT: }, 280 // CHECK-NEXT: "end": { 281 // CHECK-NEXT: "offset": 146, 282 // CHECK-NEXT: "col": 10, 283 // CHECK-NEXT: "tokLen": 1 284 // CHECK-NEXT: } 285 // CHECK-NEXT: }, 286 // CHECK-NEXT: "name": "a", 287 // CHECK-NEXT: "type": { 288 // CHECK-NEXT: "qualType": "void (Ty)" 289 // CHECK-NEXT: }, 290 // CHECK-NEXT: "inner": [ 291 // CHECK-NEXT: { 292 // CHECK-NEXT: "id": "0x{{.*}}", 293 // CHECK-NEXT: "kind": "ParmVarDecl", 294 // CHECK-NEXT: "loc": { 295 // CHECK-NEXT: "offset": 146, 296 // CHECK-NEXT: "col": 10, 297 // CHECK-NEXT: "tokLen": 1 298 // CHECK-NEXT: }, 299 // CHECK-NEXT: "range": { 300 // CHECK-NEXT: "begin": { 301 // CHECK-NEXT: "offset": 144, 302 // CHECK-NEXT: "col": 8, 303 // CHECK-NEXT: "tokLen": 2 304 // CHECK-NEXT: }, 305 // CHECK-NEXT: "end": { 306 // CHECK-NEXT: "offset": 144, 307 // CHECK-NEXT: "col": 8, 308 // CHECK-NEXT: "tokLen": 2 309 // CHECK-NEXT: } 310 // CHECK-NEXT: }, 311 // CHECK-NEXT: "type": { 312 // CHECK-NEXT: "qualType": "Ty" 313 // CHECK-NEXT: } 314 // CHECK-NEXT: } 315 // CHECK-NEXT: ] 316 // CHECK-NEXT: } 317 // CHECK-NEXT: ] 318 // CHECK-NEXT: }, 319 // CHECK-NEXT: { 320 // CHECK-NEXT: "id": "0x{{.*}}", 321 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 322 // CHECK-NEXT: "loc": { 323 // CHECK-NEXT: "offset": 181, 324 // CHECK-NEXT: "line": 7, 325 // CHECK-NEXT: "col": 6, 326 // CHECK-NEXT: "tokLen": 1 327 // CHECK-NEXT: }, 328 // CHECK-NEXT: "range": { 329 // CHECK-NEXT: "begin": { 330 // CHECK-NEXT: "offset": 150, 331 // CHECK-NEXT: "line": 6, 332 // CHECK-NEXT: "col": 1, 333 // CHECK-NEXT: "tokLen": 8 334 // CHECK-NEXT: }, 335 // CHECK-NEXT: "end": { 336 // CHECK-NEXT: "offset": 188, 337 // CHECK-NEXT: "line": 7, 338 // CHECK-NEXT: "col": 13, 339 // CHECK-NEXT: "tokLen": 1 340 // CHECK-NEXT: } 341 // CHECK-NEXT: }, 342 // CHECK-NEXT: "name": "b", 343 // CHECK-NEXT: "inner": [ 344 // CHECK-NEXT: { 345 // CHECK-NEXT: "id": "0x{{.*}}", 346 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 347 // CHECK-NEXT: "loc": { 348 // CHECK-NEXT: "offset": 172, 349 // CHECK-NEXT: "line": 6, 350 // CHECK-NEXT: "col": 23, 351 // CHECK-NEXT: "tokLen": 2 352 // CHECK-NEXT: }, 353 // CHECK-NEXT: "range": { 354 // CHECK-NEXT: "begin": { 355 // CHECK-NEXT: "offset": 160, 356 // CHECK-NEXT: "col": 11, 357 // CHECK-NEXT: "tokLen": 8 358 // CHECK-NEXT: }, 359 // CHECK-NEXT: "end": { 360 // CHECK-NEXT: "offset": 172, 361 // CHECK-NEXT: "col": 23, 362 // CHECK-NEXT: "tokLen": 2 363 // CHECK-NEXT: } 364 // CHECK-NEXT: }, 365 // CHECK-NEXT: "isReferenced": true, 366 // CHECK-NEXT: "name": "Ty", 367 // CHECK-NEXT: "tagUsed": "typename", 368 // CHECK-NEXT: "depth": 0, 369 // CHECK-NEXT: "index": 0, 370 // CHECK-NEXT: "isParameterPack": true 371 // CHECK-NEXT: }, 372 // CHECK-NEXT: { 373 // CHECK-NEXT: "id": "0x{{.*}}", 374 // CHECK-NEXT: "kind": "FunctionDecl", 375 // CHECK-NEXT: "loc": { 376 // CHECK-NEXT: "offset": 181, 377 // CHECK-NEXT: "line": 7, 378 // CHECK-NEXT: "col": 6, 379 // CHECK-NEXT: "tokLen": 1 380 // CHECK-NEXT: }, 381 // CHECK-NEXT: "range": { 382 // CHECK-NEXT: "begin": { 383 // CHECK-NEXT: "offset": 176, 384 // CHECK-NEXT: "col": 1, 385 // CHECK-NEXT: "tokLen": 4 386 // CHECK-NEXT: }, 387 // CHECK-NEXT: "end": { 388 // CHECK-NEXT: "offset": 188, 389 // CHECK-NEXT: "col": 13, 390 // CHECK-NEXT: "tokLen": 1 391 // CHECK-NEXT: } 392 // CHECK-NEXT: }, 393 // CHECK-NEXT: "name": "b", 394 // CHECK-NEXT: "type": { 395 // CHECK-NEXT: "qualType": "void (Ty...)" 396 // CHECK-NEXT: }, 397 // CHECK-NEXT: "inner": [ 398 // CHECK-NEXT: { 399 // CHECK-NEXT: "id": "0x{{.*}}", 400 // CHECK-NEXT: "kind": "ParmVarDecl", 401 // CHECK-NEXT: "loc": { 402 // CHECK-NEXT: "offset": 188, 403 // CHECK-NEXT: "col": 13, 404 // CHECK-NEXT: "tokLen": 1 405 // CHECK-NEXT: }, 406 // CHECK-NEXT: "range": { 407 // CHECK-NEXT: "begin": { 408 // CHECK-NEXT: "offset": 183, 409 // CHECK-NEXT: "col": 8, 410 // CHECK-NEXT: "tokLen": 2 411 // CHECK-NEXT: }, 412 // CHECK-NEXT: "end": { 413 // CHECK-NEXT: "offset": 185, 414 // CHECK-NEXT: "col": 10, 415 // CHECK-NEXT: "tokLen": 3 416 // CHECK-NEXT: } 417 // CHECK-NEXT: }, 418 // CHECK-NEXT: "type": { 419 // CHECK-NEXT: "qualType": "Ty..." 420 // CHECK-NEXT: }, 421 // CHECK-NEXT: "isParameterPack": true 422 // CHECK-NEXT: } 423 // CHECK-NEXT: ] 424 // CHECK-NEXT: } 425 // CHECK-NEXT: ] 426 // CHECK-NEXT: }, 427 // CHECK-NEXT: { 428 // CHECK-NEXT: "id": "0x{{.*}}", 429 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 430 // CHECK-NEXT: "loc": { 431 // CHECK-NEXT: "offset": 230, 432 // CHECK-NEXT: "line": 10, 433 // CHECK-NEXT: "col": 6, 434 // CHECK-NEXT: "tokLen": 1 435 // CHECK-NEXT: }, 436 // CHECK-NEXT: "range": { 437 // CHECK-NEXT: "begin": { 438 // CHECK-NEXT: "offset": 192, 439 // CHECK-NEXT: "line": 9, 440 // CHECK-NEXT: "col": 1, 441 // CHECK-NEXT: "tokLen": 8 442 // CHECK-NEXT: }, 443 // CHECK-NEXT: "end": { 444 // CHECK-NEXT: "offset": 234, 445 // CHECK-NEXT: "line": 10, 446 // CHECK-NEXT: "col": 10, 447 // CHECK-NEXT: "tokLen": 1 448 // CHECK-NEXT: } 449 // CHECK-NEXT: }, 450 // CHECK-NEXT: "name": "c", 451 // CHECK-NEXT: "inner": [ 452 // CHECK-NEXT: { 453 // CHECK-NEXT: "id": "0x{{.*}}", 454 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 455 // CHECK-NEXT: "loc": { 456 // CHECK-NEXT: "offset": 208, 457 // CHECK-NEXT: "line": 9, 458 // CHECK-NEXT: "col": 17, 459 // CHECK-NEXT: "tokLen": 2 460 // CHECK-NEXT: }, 461 // CHECK-NEXT: "range": { 462 // CHECK-NEXT: "begin": { 463 // CHECK-NEXT: "offset": 202, 464 // CHECK-NEXT: "col": 11, 465 // CHECK-NEXT: "tokLen": 5 466 // CHECK-NEXT: }, 467 // CHECK-NEXT: "end": { 468 // CHECK-NEXT: "offset": 208, 469 // CHECK-NEXT: "col": 17, 470 // CHECK-NEXT: "tokLen": 2 471 // CHECK-NEXT: } 472 // CHECK-NEXT: }, 473 // CHECK-NEXT: "isReferenced": true, 474 // CHECK-NEXT: "name": "Ty", 475 // CHECK-NEXT: "tagUsed": "class", 476 // CHECK-NEXT: "depth": 0, 477 // CHECK-NEXT: "index": 0 478 // CHECK-NEXT: }, 479 // CHECK-NEXT: { 480 // CHECK-NEXT: "id": "0x{{.*}}", 481 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 482 // CHECK-NEXT: "loc": { 483 // CHECK-NEXT: "offset": 221, 484 // CHECK-NEXT: "col": 30, 485 // CHECK-NEXT: "tokLen": 2 486 // CHECK-NEXT: }, 487 // CHECK-NEXT: "range": { 488 // CHECK-NEXT: "begin": { 489 // CHECK-NEXT: "offset": 212, 490 // CHECK-NEXT: "col": 21, 491 // CHECK-NEXT: "tokLen": 8 492 // CHECK-NEXT: }, 493 // CHECK-NEXT: "end": { 494 // CHECK-NEXT: "offset": 221, 495 // CHECK-NEXT: "col": 30, 496 // CHECK-NEXT: "tokLen": 2 497 // CHECK-NEXT: } 498 // CHECK-NEXT: }, 499 // CHECK-NEXT: "name": "Uy", 500 // CHECK-NEXT: "tagUsed": "typename", 501 // CHECK-NEXT: "depth": 0, 502 // CHECK-NEXT: "index": 1 503 // CHECK-NEXT: }, 504 // CHECK-NEXT: { 505 // CHECK-NEXT: "id": "0x{{.*}}", 506 // CHECK-NEXT: "kind": "FunctionDecl", 507 // CHECK-NEXT: "loc": { 508 // CHECK-NEXT: "offset": 230, 509 // CHECK-NEXT: "line": 10, 510 // CHECK-NEXT: "col": 6, 511 // CHECK-NEXT: "tokLen": 1 512 // CHECK-NEXT: }, 513 // CHECK-NEXT: "range": { 514 // CHECK-NEXT: "begin": { 515 // CHECK-NEXT: "offset": 225, 516 // CHECK-NEXT: "col": 1, 517 // CHECK-NEXT: "tokLen": 4 518 // CHECK-NEXT: }, 519 // CHECK-NEXT: "end": { 520 // CHECK-NEXT: "offset": 234, 521 // CHECK-NEXT: "col": 10, 522 // CHECK-NEXT: "tokLen": 1 523 // CHECK-NEXT: } 524 // CHECK-NEXT: }, 525 // CHECK-NEXT: "name": "c", 526 // CHECK-NEXT: "type": { 527 // CHECK-NEXT: "qualType": "void (Ty)" 528 // CHECK-NEXT: }, 529 // CHECK-NEXT: "inner": [ 530 // CHECK-NEXT: { 531 // CHECK-NEXT: "id": "0x{{.*}}", 532 // CHECK-NEXT: "kind": "ParmVarDecl", 533 // CHECK-NEXT: "loc": { 534 // CHECK-NEXT: "offset": 234, 535 // CHECK-NEXT: "col": 10, 536 // CHECK-NEXT: "tokLen": 1 537 // CHECK-NEXT: }, 538 // CHECK-NEXT: "range": { 539 // CHECK-NEXT: "begin": { 540 // CHECK-NEXT: "offset": 232, 541 // CHECK-NEXT: "col": 8, 542 // CHECK-NEXT: "tokLen": 2 543 // CHECK-NEXT: }, 544 // CHECK-NEXT: "end": { 545 // CHECK-NEXT: "offset": 232, 546 // CHECK-NEXT: "col": 8, 547 // CHECK-NEXT: "tokLen": 2 548 // CHECK-NEXT: } 549 // CHECK-NEXT: }, 550 // CHECK-NEXT: "type": { 551 // CHECK-NEXT: "qualType": "Ty" 552 // CHECK-NEXT: } 553 // CHECK-NEXT: } 554 // CHECK-NEXT: ] 555 // CHECK-NEXT: }, 556 // CHECK-NEXT: { 557 // CHECK-NEXT: "id": "0x{{.*}}", 558 // CHECK-NEXT: "kind": "FunctionDecl", 559 // CHECK-NEXT: "name": "c", 560 // CHECK-NEXT: "type": { 561 // CHECK-NEXT: "qualType": "void (float)" 562 // CHECK-NEXT: } 563 // CHECK-NEXT: } 564 // CHECK-NEXT: ] 565 // CHECK-NEXT: }, 566 // CHECK-NEXT: { 567 // CHECK-NEXT: "id": "0x{{.*}}", 568 // CHECK-NEXT: "kind": "FunctionDecl", 569 // CHECK-NEXT: "loc": { 570 // CHECK-NEXT: "offset": 255, 571 // CHECK-NEXT: "line": 13, 572 // CHECK-NEXT: "col": 6, 573 // CHECK-NEXT: "tokLen": 1 574 // CHECK-NEXT: }, 575 // CHECK-NEXT: "range": { 576 // CHECK-NEXT: "begin": { 577 // CHECK-NEXT: "offset": 238, 578 // CHECK-NEXT: "line": 12, 579 // CHECK-NEXT: "col": 1, 580 // CHECK-NEXT: "tokLen": 8 581 // CHECK-NEXT: }, 582 // CHECK-NEXT: "end": { 583 // CHECK-NEXT: "offset": 274, 584 // CHECK-NEXT: "line": 13, 585 // CHECK-NEXT: "col": 25, 586 // CHECK-NEXT: "tokLen": 1 587 // CHECK-NEXT: } 588 // CHECK-NEXT: }, 589 // CHECK-NEXT: "previousDecl": "0x{{.*}}", 590 // CHECK-NEXT: "name": "c", 591 // CHECK-NEXT: "mangledName": "_Z1cIfiEvT_", 592 // CHECK-NEXT: "type": { 593 // CHECK-NEXT: "qualType": "void (float)" 594 // CHECK-NEXT: }, 595 // CHECK-NEXT: "inner": [ 596 // CHECK-NEXT: { 597 // CHECK-NEXT: "kind": "TemplateArgument", 598 // CHECK-NEXT: "type": { 599 // CHECK-NEXT: "qualType": "float" 600 // CHECK-NEXT: }, 601 // CHECK-NEXT: "inner": [ 602 // CHECK-NEXT: { 603 // CHECK-NEXT: "id": "0x{{.*}}", 604 // CHECK-NEXT: "kind": "BuiltinType", 605 // CHECK-NEXT: "type": { 606 // CHECK-NEXT: "qualType": "float" 607 // CHECK-NEXT: } 608 // CHECK-NEXT: } 609 // CHECK-NEXT: ] 610 // CHECK-NEXT: }, 611 // CHECK-NEXT: { 612 // CHECK-NEXT: "kind": "TemplateArgument", 613 // CHECK-NEXT: "type": { 614 // CHECK-NEXT: "qualType": "int" 615 // CHECK-NEXT: }, 616 // CHECK-NEXT: "inner": [ 617 // CHECK-NEXT: { 618 // CHECK-NEXT: "id": "0x{{.*}}", 619 // CHECK-NEXT: "kind": "BuiltinType", 620 // CHECK-NEXT: "type": { 621 // CHECK-NEXT: "qualType": "int" 622 // CHECK-NEXT: } 623 // CHECK-NEXT: } 624 // CHECK-NEXT: ] 625 // CHECK-NEXT: }, 626 // CHECK-NEXT: { 627 // CHECK-NEXT: "id": "0x{{.*}}", 628 // CHECK-NEXT: "kind": "ParmVarDecl", 629 // CHECK-NEXT: "loc": { 630 // CHECK-NEXT: "offset": 274, 631 // CHECK-NEXT: "col": 25, 632 // CHECK-NEXT: "tokLen": 1 633 // CHECK-NEXT: }, 634 // CHECK-NEXT: "range": { 635 // CHECK-NEXT: "begin": { 636 // CHECK-NEXT: "offset": 269, 637 // CHECK-NEXT: "col": 20, 638 // CHECK-NEXT: "tokLen": 5 639 // CHECK-NEXT: }, 640 // CHECK-NEXT: "end": { 641 // CHECK-NEXT: "offset": 269, 642 // CHECK-NEXT: "col": 20, 643 // CHECK-NEXT: "tokLen": 5 644 // CHECK-NEXT: } 645 // CHECK-NEXT: }, 646 // CHECK-NEXT: "type": { 647 // CHECK-NEXT: "qualType": "float" 648 // CHECK-NEXT: } 649 // CHECK-NEXT: } 650 // CHECK-NEXT: ] 651 // CHECK-NEXT: }, 652 // CHECK-NEXT: { 653 // CHECK-NEXT: "id": "0x{{.*}}", 654 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 655 // CHECK-NEXT: "loc": { 656 // CHECK-NEXT: "offset": 338, 657 // CHECK-NEXT: "line": 16, 658 // CHECK-NEXT: "col": 6, 659 // CHECK-NEXT: "tokLen": 1 660 // CHECK-NEXT: }, 661 // CHECK-NEXT: "range": { 662 // CHECK-NEXT: "begin": { 663 // CHECK-NEXT: "offset": 278, 664 // CHECK-NEXT: "line": 15, 665 // CHECK-NEXT: "col": 1, 666 // CHECK-NEXT: "tokLen": 8 667 // CHECK-NEXT: }, 668 // CHECK-NEXT: "end": { 669 // CHECK-NEXT: "offset": 350, 670 // CHECK-NEXT: "line": 16, 671 // CHECK-NEXT: "col": 18, 672 // CHECK-NEXT: "tokLen": 1 673 // CHECK-NEXT: } 674 // CHECK-NEXT: }, 675 // CHECK-NEXT: "name": "d", 676 // CHECK-NEXT: "inner": [ 677 // CHECK-NEXT: { 678 // CHECK-NEXT: "id": "0x{{.*}}", 679 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 680 // CHECK-NEXT: "loc": { 681 // CHECK-NEXT: "offset": 297, 682 // CHECK-NEXT: "line": 15, 683 // CHECK-NEXT: "col": 20, 684 // CHECK-NEXT: "tokLen": 2 685 // CHECK-NEXT: }, 686 // CHECK-NEXT: "range": { 687 // CHECK-NEXT: "begin": { 688 // CHECK-NEXT: "offset": 288, 689 // CHECK-NEXT: "col": 11, 690 // CHECK-NEXT: "tokLen": 8 691 // CHECK-NEXT: }, 692 // CHECK-NEXT: "end": { 693 // CHECK-NEXT: "offset": 297, 694 // CHECK-NEXT: "col": 20, 695 // CHECK-NEXT: "tokLen": 2 696 // CHECK-NEXT: } 697 // CHECK-NEXT: }, 698 // CHECK-NEXT: "isReferenced": true, 699 // CHECK-NEXT: "name": "Ty", 700 // CHECK-NEXT: "tagUsed": "typename", 701 // CHECK-NEXT: "depth": 0, 702 // CHECK-NEXT: "index": 0 703 // CHECK-NEXT: }, 704 // CHECK-NEXT: { 705 // CHECK-NEXT: "id": "0x{{.*}}", 706 // CHECK-NEXT: "kind": "TemplateTemplateParmDecl", 707 // CHECK-NEXT: "loc": { 708 // CHECK-NEXT: "offset": 329, 709 // CHECK-NEXT: "col": 52, 710 // CHECK-NEXT: "tokLen": 2 711 // CHECK-NEXT: }, 712 // CHECK-NEXT: "range": { 713 // CHECK-NEXT: "begin": { 714 // CHECK-NEXT: "offset": 301, 715 // CHECK-NEXT: "col": 24, 716 // CHECK-NEXT: "tokLen": 8 717 // CHECK-NEXT: }, 718 // CHECK-NEXT: "end": { 719 // CHECK-NEXT: "offset": 329, 720 // CHECK-NEXT: "col": 52, 721 // CHECK-NEXT: "tokLen": 2 722 // CHECK-NEXT: } 723 // CHECK-NEXT: }, 724 // CHECK-NEXT: "name": "Uy", 725 // CHECK-NEXT: "depth": 0, 726 // CHECK-NEXT: "index": 1, 727 // CHECK-NEXT: "inner": [ 728 // CHECK-NEXT: { 729 // CHECK-NEXT: "id": "0x{{.*}}", 730 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 731 // CHECK-NEXT: "loc": { 732 // CHECK-NEXT: "offset": 318, 733 // CHECK-NEXT: "col": 41, 734 // CHECK-NEXT: "tokLen": 1 735 // CHECK-NEXT: }, 736 // CHECK-NEXT: "range": { 737 // CHECK-NEXT: "begin": { 738 // CHECK-NEXT: "offset": 310, 739 // CHECK-NEXT: "col": 33, 740 // CHECK-NEXT: "tokLen": 8 741 // CHECK-NEXT: }, 742 // CHECK-NEXT: "end": { 743 // CHECK-NEXT: "offset": 310, 744 // CHECK-NEXT: "col": 33, 745 // CHECK-NEXT: "tokLen": 8 746 // CHECK-NEXT: } 747 // CHECK-NEXT: }, 748 // CHECK-NEXT: "tagUsed": "typename", 749 // CHECK-NEXT: "depth": 1, 750 // CHECK-NEXT: "index": 0 751 // CHECK-NEXT: } 752 // CHECK-NEXT: ] 753 // CHECK-NEXT: }, 754 // CHECK-NEXT: { 755 // CHECK-NEXT: "id": "0x{{.*}}", 756 // CHECK-NEXT: "kind": "FunctionDecl", 757 // CHECK-NEXT: "loc": { 758 // CHECK-NEXT: "offset": 338, 759 // CHECK-NEXT: "line": 16, 760 // CHECK-NEXT: "col": 6, 761 // CHECK-NEXT: "tokLen": 1 762 // CHECK-NEXT: }, 763 // CHECK-NEXT: "range": { 764 // CHECK-NEXT: "begin": { 765 // CHECK-NEXT: "offset": 333, 766 // CHECK-NEXT: "col": 1, 767 // CHECK-NEXT: "tokLen": 4 768 // CHECK-NEXT: }, 769 // CHECK-NEXT: "end": { 770 // CHECK-NEXT: "offset": 350, 771 // CHECK-NEXT: "col": 18, 772 // CHECK-NEXT: "tokLen": 1 773 // CHECK-NEXT: } 774 // CHECK-NEXT: }, 775 // CHECK-NEXT: "name": "d", 776 // CHECK-NEXT: "type": { 777 // CHECK-NEXT: "qualType": "void (Ty, Uy<Ty>)" 778 // CHECK-NEXT: }, 779 // CHECK-NEXT: "inner": [ 780 // CHECK-NEXT: { 781 // CHECK-NEXT: "id": "0x{{.*}}", 782 // CHECK-NEXT: "kind": "ParmVarDecl", 783 // CHECK-NEXT: "loc": { 784 // CHECK-NEXT: "offset": 342, 785 // CHECK-NEXT: "col": 10, 786 // CHECK-NEXT: "tokLen": 1 787 // CHECK-NEXT: }, 788 // CHECK-NEXT: "range": { 789 // CHECK-NEXT: "begin": { 790 // CHECK-NEXT: "offset": 340, 791 // CHECK-NEXT: "col": 8, 792 // CHECK-NEXT: "tokLen": 2 793 // CHECK-NEXT: }, 794 // CHECK-NEXT: "end": { 795 // CHECK-NEXT: "offset": 340, 796 // CHECK-NEXT: "col": 8, 797 // CHECK-NEXT: "tokLen": 2 798 // CHECK-NEXT: } 799 // CHECK-NEXT: }, 800 // CHECK-NEXT: "type": { 801 // CHECK-NEXT: "qualType": "Ty" 802 // CHECK-NEXT: } 803 // CHECK-NEXT: }, 804 // CHECK-NEXT: { 805 // CHECK-NEXT: "id": "0x{{.*}}", 806 // CHECK-NEXT: "kind": "ParmVarDecl", 807 // CHECK-NEXT: "loc": { 808 // CHECK-NEXT: "offset": 350, 809 // CHECK-NEXT: "col": 18, 810 // CHECK-NEXT: "tokLen": 1 811 // CHECK-NEXT: }, 812 // CHECK-NEXT: "range": { 813 // CHECK-NEXT: "begin": { 814 // CHECK-NEXT: "offset": 344, 815 // CHECK-NEXT: "col": 12, 816 // CHECK-NEXT: "tokLen": 2 817 // CHECK-NEXT: }, 818 // CHECK-NEXT: "end": { 819 // CHECK-NEXT: "offset": 349, 820 // CHECK-NEXT: "col": 17, 821 // CHECK-NEXT: "tokLen": 1 822 // CHECK-NEXT: } 823 // CHECK-NEXT: }, 824 // CHECK-NEXT: "type": { 825 // CHECK-NEXT: "qualType": "Uy<Ty>" 826 // CHECK-NEXT: } 827 // CHECK-NEXT: } 828 // CHECK-NEXT: ] 829 // CHECK-NEXT: } 830 // CHECK-NEXT: ] 831 // CHECK-NEXT: }, 832 // CHECK-NEXT: { 833 // CHECK-NEXT: "id": "0x{{.*}}", 834 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 835 // CHECK-NEXT: "loc": { 836 // CHECK-NEXT: "offset": 379, 837 // CHECK-NEXT: "line": 19, 838 // CHECK-NEXT: "col": 6, 839 // CHECK-NEXT: "tokLen": 1 840 // CHECK-NEXT: }, 841 // CHECK-NEXT: "range": { 842 // CHECK-NEXT: "begin": { 843 // CHECK-NEXT: "offset": 354, 844 // CHECK-NEXT: "line": 18, 845 // CHECK-NEXT: "col": 1, 846 // CHECK-NEXT: "tokLen": 8 847 // CHECK-NEXT: }, 848 // CHECK-NEXT: "end": { 849 // CHECK-NEXT: "offset": 383, 850 // CHECK-NEXT: "line": 19, 851 // CHECK-NEXT: "col": 10, 852 // CHECK-NEXT: "tokLen": 1 853 // CHECK-NEXT: } 854 // CHECK-NEXT: }, 855 // CHECK-NEXT: "name": "e", 856 // CHECK-NEXT: "inner": [ 857 // CHECK-NEXT: { 858 // CHECK-NEXT: "id": "0x{{.*}}", 859 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 860 // CHECK-NEXT: "loc": { 861 // CHECK-NEXT: "offset": 370, 862 // CHECK-NEXT: "line": 18, 863 // CHECK-NEXT: "col": 17, 864 // CHECK-NEXT: "tokLen": 2 865 // CHECK-NEXT: }, 866 // CHECK-NEXT: "range": { 867 // CHECK-NEXT: "begin": { 868 // CHECK-NEXT: "offset": 364, 869 // CHECK-NEXT: "col": 11, 870 // CHECK-NEXT: "tokLen": 5 871 // CHECK-NEXT: }, 872 // CHECK-NEXT: "end": { 873 // CHECK-NEXT: "offset": 370, 874 // CHECK-NEXT: "col": 17, 875 // CHECK-NEXT: "tokLen": 2 876 // CHECK-NEXT: } 877 // CHECK-NEXT: }, 878 // CHECK-NEXT: "isReferenced": true, 879 // CHECK-NEXT: "name": "Ty", 880 // CHECK-NEXT: "tagUsed": "class", 881 // CHECK-NEXT: "depth": 0, 882 // CHECK-NEXT: "index": 0 883 // CHECK-NEXT: }, 884 // CHECK-NEXT: { 885 // CHECK-NEXT: "id": "0x{{.*}}", 886 // CHECK-NEXT: "kind": "FunctionDecl", 887 // CHECK-NEXT: "loc": { 888 // CHECK-NEXT: "offset": 379, 889 // CHECK-NEXT: "line": 19, 890 // CHECK-NEXT: "col": 6, 891 // CHECK-NEXT: "tokLen": 1 892 // CHECK-NEXT: }, 893 // CHECK-NEXT: "range": { 894 // CHECK-NEXT: "begin": { 895 // CHECK-NEXT: "offset": 374, 896 // CHECK-NEXT: "col": 1, 897 // CHECK-NEXT: "tokLen": 4 898 // CHECK-NEXT: }, 899 // CHECK-NEXT: "end": { 900 // CHECK-NEXT: "offset": 383, 901 // CHECK-NEXT: "col": 10, 902 // CHECK-NEXT: "tokLen": 1 903 // CHECK-NEXT: } 904 // CHECK-NEXT: }, 905 // CHECK-NEXT: "name": "e", 906 // CHECK-NEXT: "type": { 907 // CHECK-NEXT: "qualType": "void (Ty)" 908 // CHECK-NEXT: }, 909 // CHECK-NEXT: "inner": [ 910 // CHECK-NEXT: { 911 // CHECK-NEXT: "id": "0x{{.*}}", 912 // CHECK-NEXT: "kind": "ParmVarDecl", 913 // CHECK-NEXT: "loc": { 914 // CHECK-NEXT: "offset": 383, 915 // CHECK-NEXT: "col": 10, 916 // CHECK-NEXT: "tokLen": 1 917 // CHECK-NEXT: }, 918 // CHECK-NEXT: "range": { 919 // CHECK-NEXT: "begin": { 920 // CHECK-NEXT: "offset": 381, 921 // CHECK-NEXT: "col": 8, 922 // CHECK-NEXT: "tokLen": 2 923 // CHECK-NEXT: }, 924 // CHECK-NEXT: "end": { 925 // CHECK-NEXT: "offset": 381, 926 // CHECK-NEXT: "col": 8, 927 // CHECK-NEXT: "tokLen": 2 928 // CHECK-NEXT: } 929 // CHECK-NEXT: }, 930 // CHECK-NEXT: "type": { 931 // CHECK-NEXT: "qualType": "Ty" 932 // CHECK-NEXT: } 933 // CHECK-NEXT: } 934 // CHECK-NEXT: ] 935 // CHECK-NEXT: } 936 // CHECK-NEXT: ] 937 // CHECK-NEXT: }, 938 // CHECK-NEXT: { 939 // CHECK-NEXT: "id": "0x{{.*}}", 940 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 941 // CHECK-NEXT: "loc": { 942 // CHECK-NEXT: "offset": 409, 943 // CHECK-NEXT: "line": 22, 944 // CHECK-NEXT: "col": 6, 945 // CHECK-NEXT: "tokLen": 1 946 // CHECK-NEXT: }, 947 // CHECK-NEXT: "range": { 948 // CHECK-NEXT: "begin": { 949 // CHECK-NEXT: "offset": 387, 950 // CHECK-NEXT: "line": 21, 951 // CHECK-NEXT: "col": 1, 952 // CHECK-NEXT: "tokLen": 8 953 // CHECK-NEXT: }, 954 // CHECK-NEXT: "end": { 955 // CHECK-NEXT: "offset": 420, 956 // CHECK-NEXT: "line": 22, 957 // CHECK-NEXT: "col": 17, 958 // CHECK-NEXT: "tokLen": 1 959 // CHECK-NEXT: } 960 // CHECK-NEXT: }, 961 // CHECK-NEXT: "name": "f", 962 // CHECK-NEXT: "inner": [ 963 // CHECK-NEXT: { 964 // CHECK-NEXT: "id": "0x{{.*}}", 965 // CHECK-NEXT: "kind": "NonTypeTemplateParmDecl", 966 // CHECK-NEXT: "loc": { 967 // CHECK-NEXT: "offset": 401, 968 // CHECK-NEXT: "line": 21, 969 // CHECK-NEXT: "col": 15, 970 // CHECK-NEXT: "tokLen": 1 971 // CHECK-NEXT: }, 972 // CHECK-NEXT: "range": { 973 // CHECK-NEXT: "begin": { 974 // CHECK-NEXT: "offset": 397, 975 // CHECK-NEXT: "col": 11, 976 // CHECK-NEXT: "tokLen": 3 977 // CHECK-NEXT: }, 978 // CHECK-NEXT: "end": { 979 // CHECK-NEXT: "offset": 401, 980 // CHECK-NEXT: "col": 15, 981 // CHECK-NEXT: "tokLen": 1 982 // CHECK-NEXT: } 983 // CHECK-NEXT: }, 984 // CHECK-NEXT: "isReferenced": true, 985 // CHECK-NEXT: "name": "N", 986 // CHECK-NEXT: "type": { 987 // CHECK-NEXT: "qualType": "int" 988 // CHECK-NEXT: }, 989 // CHECK-NEXT: "depth": 0, 990 // CHECK-NEXT: "index": 0 991 // CHECK-NEXT: }, 992 // CHECK-NEXT: { 993 // CHECK-NEXT: "id": "0x{{.*}}", 994 // CHECK-NEXT: "kind": "FunctionDecl", 995 // CHECK-NEXT: "loc": { 996 // CHECK-NEXT: "offset": 409, 997 // CHECK-NEXT: "line": 22, 998 // CHECK-NEXT: "col": 6, 999 // CHECK-NEXT: "tokLen": 1 1000 // CHECK-NEXT: }, 1001 // CHECK-NEXT: "range": { 1002 // CHECK-NEXT: "begin": { 1003 // CHECK-NEXT: "offset": 404, 1004 // CHECK-NEXT: "col": 1, 1005 // CHECK-NEXT: "tokLen": 4 1006 // CHECK-NEXT: }, 1007 // CHECK-NEXT: "end": { 1008 // CHECK-NEXT: "offset": 420, 1009 // CHECK-NEXT: "col": 17, 1010 // CHECK-NEXT: "tokLen": 1 1011 // CHECK-NEXT: } 1012 // CHECK-NEXT: }, 1013 // CHECK-NEXT: "name": "f", 1014 // CHECK-NEXT: "type": { 1015 // CHECK-NEXT: "qualType": "void (int)" 1016 // CHECK-NEXT: }, 1017 // CHECK-NEXT: "inner": [ 1018 // CHECK-NEXT: { 1019 // CHECK-NEXT: "id": "0x{{.*}}", 1020 // CHECK-NEXT: "kind": "ParmVarDecl", 1021 // CHECK-NEXT: "loc": { 1022 // CHECK-NEXT: "offset": 415, 1023 // CHECK-NEXT: "col": 12, 1024 // CHECK-NEXT: "tokLen": 1 1025 // CHECK-NEXT: }, 1026 // CHECK-NEXT: "range": { 1027 // CHECK-NEXT: "begin": { 1028 // CHECK-NEXT: "offset": 411, 1029 // CHECK-NEXT: "col": 8, 1030 // CHECK-NEXT: "tokLen": 3 1031 // CHECK-NEXT: }, 1032 // CHECK-NEXT: "end": { 1033 // CHECK-NEXT: "offset": 419, 1034 // CHECK-NEXT: "col": 16, 1035 // CHECK-NEXT: "tokLen": 1 1036 // CHECK-NEXT: } 1037 // CHECK-NEXT: }, 1038 // CHECK-NEXT: "name": "i", 1039 // CHECK-NEXT: "mangledName": "_ZZ1fiE1i", 1040 // CHECK-NEXT: "type": { 1041 // CHECK-NEXT: "qualType": "int" 1042 // CHECK-NEXT: }, 1043 // CHECK-NEXT: "init": "c", 1044 // CHECK-NEXT: "inner": [ 1045 // CHECK-NEXT: { 1046 // CHECK-NEXT: "id": "0x{{.*}}", 1047 // CHECK-NEXT: "kind": "DeclRefExpr", 1048 // CHECK-NEXT: "range": { 1049 // CHECK-NEXT: "begin": { 1050 // CHECK-NEXT: "offset": 419, 1051 // CHECK-NEXT: "col": 16, 1052 // CHECK-NEXT: "tokLen": 1 1053 // CHECK-NEXT: }, 1054 // CHECK-NEXT: "end": { 1055 // CHECK-NEXT: "offset": 419, 1056 // CHECK-NEXT: "col": 16, 1057 // CHECK-NEXT: "tokLen": 1 1058 // CHECK-NEXT: } 1059 // CHECK-NEXT: }, 1060 // CHECK-NEXT: "type": { 1061 // CHECK-NEXT: "qualType": "int" 1062 // CHECK-NEXT: }, 1063 // CHECK-NEXT: "valueCategory": "rvalue", 1064 // CHECK-NEXT: "referencedDecl": { 1065 // CHECK-NEXT: "id": "0x{{.*}}", 1066 // CHECK-NEXT: "kind": "NonTypeTemplateParmDecl", 1067 // CHECK-NEXT: "name": "N", 1068 // CHECK-NEXT: "type": { 1069 // CHECK-NEXT: "qualType": "int" 1070 // CHECK-NEXT: } 1071 // CHECK-NEXT: } 1072 // CHECK-NEXT: } 1073 // CHECK-NEXT: ] 1074 // CHECK-NEXT: } 1075 // CHECK-NEXT: ] 1076 // CHECK-NEXT: } 1077 // CHECK-NEXT: ] 1078 // CHECK-NEXT: }, 1079 // CHECK-NEXT: { 1080 // CHECK-NEXT: "id": "0x{{.*}}", 1081 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 1082 // CHECK-NEXT: "loc": { 1083 // CHECK-NEXT: "offset": 458, 1084 // CHECK-NEXT: "line": 25, 1085 // CHECK-NEXT: "col": 6, 1086 // CHECK-NEXT: "tokLen": 1 1087 // CHECK-NEXT: }, 1088 // CHECK-NEXT: "range": { 1089 // CHECK-NEXT: "begin": { 1090 // CHECK-NEXT: "offset": 424, 1091 // CHECK-NEXT: "line": 24, 1092 // CHECK-NEXT: "col": 1, 1093 // CHECK-NEXT: "tokLen": 8 1094 // CHECK-NEXT: }, 1095 // CHECK-NEXT: "end": { 1096 // CHECK-NEXT: "offset": 462, 1097 // CHECK-NEXT: "line": 25, 1098 // CHECK-NEXT: "col": 10, 1099 // CHECK-NEXT: "tokLen": 1 1100 // CHECK-NEXT: } 1101 // CHECK-NEXT: }, 1102 // CHECK-NEXT: "name": "g", 1103 // CHECK-NEXT: "inner": [ 1104 // CHECK-NEXT: { 1105 // CHECK-NEXT: "id": "0x{{.*}}", 1106 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 1107 // CHECK-NEXT: "loc": { 1108 // CHECK-NEXT: "offset": 443, 1109 // CHECK-NEXT: "line": 24, 1110 // CHECK-NEXT: "col": 20, 1111 // CHECK-NEXT: "tokLen": 2 1112 // CHECK-NEXT: }, 1113 // CHECK-NEXT: "range": { 1114 // CHECK-NEXT: "begin": { 1115 // CHECK-NEXT: "offset": 434, 1116 // CHECK-NEXT: "col": 11, 1117 // CHECK-NEXT: "tokLen": 8 1118 // CHECK-NEXT: }, 1119 // CHECK-NEXT: "end": { 1120 // CHECK-NEXT: "offset": 448, 1121 // CHECK-NEXT: "col": 25, 1122 // CHECK-NEXT: "tokLen": 3 1123 // CHECK-NEXT: } 1124 // CHECK-NEXT: }, 1125 // CHECK-NEXT: "isReferenced": true, 1126 // CHECK-NEXT: "name": "Ty", 1127 // CHECK-NEXT: "tagUsed": "typename", 1128 // CHECK-NEXT: "depth": 0, 1129 // CHECK-NEXT: "index": 0, 1130 // CHECK-NEXT: "defaultArg": { 1131 // CHECK-NEXT: "kind": "TemplateArgument", 1132 // CHECK-NEXT: "type": { 1133 // CHECK-NEXT: "qualType": "int" 1134 // CHECK-NEXT: } 1135 // CHECK-NEXT: }, 1136 // CHECK-NEXT: "inner": [ 1137 // CHECK-NEXT: { 1138 // CHECK-NEXT: "kind": "TemplateArgument", 1139 // CHECK-NEXT: "type": { 1140 // CHECK-NEXT: "qualType": "int" 1141 // CHECK-NEXT: }, 1142 // CHECK-NEXT: "inner": [ 1143 // CHECK-NEXT: { 1144 // CHECK-NEXT: "id": "0x{{.*}}", 1145 // CHECK-NEXT: "kind": "BuiltinType", 1146 // CHECK-NEXT: "type": { 1147 // CHECK-NEXT: "qualType": "int" 1148 // CHECK-NEXT: } 1149 // CHECK-NEXT: } 1150 // CHECK-NEXT: ] 1151 // CHECK-NEXT: } 1152 // CHECK-NEXT: ] 1153 // CHECK-NEXT: }, 1154 // CHECK-NEXT: { 1155 // CHECK-NEXT: "id": "0x{{.*}}", 1156 // CHECK-NEXT: "kind": "FunctionDecl", 1157 // CHECK-NEXT: "loc": { 1158 // CHECK-NEXT: "offset": 458, 1159 // CHECK-NEXT: "line": 25, 1160 // CHECK-NEXT: "col": 6, 1161 // CHECK-NEXT: "tokLen": 1 1162 // CHECK-NEXT: }, 1163 // CHECK-NEXT: "range": { 1164 // CHECK-NEXT: "begin": { 1165 // CHECK-NEXT: "offset": 453, 1166 // CHECK-NEXT: "col": 1, 1167 // CHECK-NEXT: "tokLen": 4 1168 // CHECK-NEXT: }, 1169 // CHECK-NEXT: "end": { 1170 // CHECK-NEXT: "offset": 462, 1171 // CHECK-NEXT: "col": 10, 1172 // CHECK-NEXT: "tokLen": 1 1173 // CHECK-NEXT: } 1174 // CHECK-NEXT: }, 1175 // CHECK-NEXT: "name": "g", 1176 // CHECK-NEXT: "type": { 1177 // CHECK-NEXT: "qualType": "void (Ty)" 1178 // CHECK-NEXT: }, 1179 // CHECK-NEXT: "inner": [ 1180 // CHECK-NEXT: { 1181 // CHECK-NEXT: "id": "0x{{.*}}", 1182 // CHECK-NEXT: "kind": "ParmVarDecl", 1183 // CHECK-NEXT: "loc": { 1184 // CHECK-NEXT: "offset": 462, 1185 // CHECK-NEXT: "col": 10, 1186 // CHECK-NEXT: "tokLen": 1 1187 // CHECK-NEXT: }, 1188 // CHECK-NEXT: "range": { 1189 // CHECK-NEXT: "begin": { 1190 // CHECK-NEXT: "offset": 460, 1191 // CHECK-NEXT: "col": 8, 1192 // CHECK-NEXT: "tokLen": 2 1193 // CHECK-NEXT: }, 1194 // CHECK-NEXT: "end": { 1195 // CHECK-NEXT: "offset": 460, 1196 // CHECK-NEXT: "col": 8, 1197 // CHECK-NEXT: "tokLen": 2 1198 // CHECK-NEXT: } 1199 // CHECK-NEXT: }, 1200 // CHECK-NEXT: "type": { 1201 // CHECK-NEXT: "qualType": "Ty" 1202 // CHECK-NEXT: } 1203 // CHECK-NEXT: } 1204 // CHECK-NEXT: ] 1205 // CHECK-NEXT: } 1206 // CHECK-NEXT: ] 1207 // CHECK-NEXT: }, 1208 // CHECK-NEXT: { 1209 // CHECK-NEXT: "id": "0x{{.*}}", 1210 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 1211 // CHECK-NEXT: "loc": { 1212 // CHECK-NEXT: "offset": 498, 1213 // CHECK-NEXT: "line": 28, 1214 // CHECK-NEXT: "col": 6, 1215 // CHECK-NEXT: "tokLen": 1 1216 // CHECK-NEXT: }, 1217 // CHECK-NEXT: "range": { 1218 // CHECK-NEXT: "begin": { 1219 // CHECK-NEXT: "offset": 466, 1220 // CHECK-NEXT: "line": 27, 1221 // CHECK-NEXT: "col": 1, 1222 // CHECK-NEXT: "tokLen": 8 1223 // CHECK-NEXT: }, 1224 // CHECK-NEXT: "end": { 1225 // CHECK-NEXT: "offset": 500, 1226 // CHECK-NEXT: "line": 28, 1227 // CHECK-NEXT: "col": 8, 1228 // CHECK-NEXT: "tokLen": 1 1229 // CHECK-NEXT: } 1230 // CHECK-NEXT: }, 1231 // CHECK-NEXT: "name": "h", 1232 // CHECK-NEXT: "inner": [ 1233 // CHECK-NEXT: { 1234 // CHECK-NEXT: "id": "0x{{.*}}", 1235 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 1236 // CHECK-NEXT: "loc": { 1237 // CHECK-NEXT: "offset": 485, 1238 // CHECK-NEXT: "line": 27, 1239 // CHECK-NEXT: "col": 20, 1240 // CHECK-NEXT: "tokLen": 1 1241 // CHECK-NEXT: }, 1242 // CHECK-NEXT: "range": { 1243 // CHECK-NEXT: "begin": { 1244 // CHECK-NEXT: "offset": 476, 1245 // CHECK-NEXT: "col": 11, 1246 // CHECK-NEXT: "tokLen": 8 1247 // CHECK-NEXT: }, 1248 // CHECK-NEXT: "end": { 1249 // CHECK-NEXT: "offset": 487, 1250 // CHECK-NEXT: "col": 22, 1251 // CHECK-NEXT: "tokLen": 4 1252 // CHECK-NEXT: } 1253 // CHECK-NEXT: }, 1254 // CHECK-NEXT: "tagUsed": "typename", 1255 // CHECK-NEXT: "depth": 0, 1256 // CHECK-NEXT: "index": 0, 1257 // CHECK-NEXT: "defaultArg": { 1258 // CHECK-NEXT: "kind": "TemplateArgument", 1259 // CHECK-NEXT: "type": { 1260 // CHECK-NEXT: "qualType": "void" 1261 // CHECK-NEXT: } 1262 // CHECK-NEXT: }, 1263 // CHECK-NEXT: "inner": [ 1264 // CHECK-NEXT: { 1265 // CHECK-NEXT: "kind": "TemplateArgument", 1266 // CHECK-NEXT: "type": { 1267 // CHECK-NEXT: "qualType": "void" 1268 // CHECK-NEXT: }, 1269 // CHECK-NEXT: "inner": [ 1270 // CHECK-NEXT: { 1271 // CHECK-NEXT: "id": "0x{{.*}}", 1272 // CHECK-NEXT: "kind": "BuiltinType", 1273 // CHECK-NEXT: "type": { 1274 // CHECK-NEXT: "qualType": "void" 1275 // CHECK-NEXT: } 1276 // CHECK-NEXT: } 1277 // CHECK-NEXT: ] 1278 // CHECK-NEXT: } 1279 // CHECK-NEXT: ] 1280 // CHECK-NEXT: }, 1281 // CHECK-NEXT: { 1282 // CHECK-NEXT: "id": "0x{{.*}}", 1283 // CHECK-NEXT: "kind": "FunctionDecl", 1284 // CHECK-NEXT: "loc": { 1285 // CHECK-NEXT: "offset": 498, 1286 // CHECK-NEXT: "line": 28, 1287 // CHECK-NEXT: "col": 6, 1288 // CHECK-NEXT: "tokLen": 1 1289 // CHECK-NEXT: }, 1290 // CHECK-NEXT: "range": { 1291 // CHECK-NEXT: "begin": { 1292 // CHECK-NEXT: "offset": 493, 1293 // CHECK-NEXT: "col": 1, 1294 // CHECK-NEXT: "tokLen": 4 1295 // CHECK-NEXT: }, 1296 // CHECK-NEXT: "end": { 1297 // CHECK-NEXT: "offset": 500, 1298 // CHECK-NEXT: "col": 8, 1299 // CHECK-NEXT: "tokLen": 1 1300 // CHECK-NEXT: } 1301 // CHECK-NEXT: }, 1302 // CHECK-NEXT: "name": "h", 1303 // CHECK-NEXT: "type": { 1304 // CHECK-NEXT: "qualType": "void ()" 1305 // CHECK-NEXT: } 1306 // CHECK-NEXT: } 1307 // CHECK-NEXT: ] 1308 // CHECK-NEXT: }, 1309 // CHECK-NEXT: { 1310 // CHECK-NEXT: "id": "0x{{.*}}", 1311 // CHECK-NEXT: "kind": "ClassTemplateDecl", 1312 // CHECK-NEXT: "loc": { 1313 // CHECK-NEXT: "offset": 534, 1314 // CHECK-NEXT: "line": 31, 1315 // CHECK-NEXT: "col": 8, 1316 // CHECK-NEXT: "tokLen": 1 1317 // CHECK-NEXT: }, 1318 // CHECK-NEXT: "range": { 1319 // CHECK-NEXT: "begin": { 1320 // CHECK-NEXT: "offset": 504, 1321 // CHECK-NEXT: "line": 30, 1322 // CHECK-NEXT: "col": 1, 1323 // CHECK-NEXT: "tokLen": 8 1324 // CHECK-NEXT: }, 1325 // CHECK-NEXT: "end": { 1326 // CHECK-NEXT: "offset": 537, 1327 // CHECK-NEXT: "line": 31, 1328 // CHECK-NEXT: "col": 11, 1329 // CHECK-NEXT: "tokLen": 1 1330 // CHECK-NEXT: } 1331 // CHECK-NEXT: }, 1332 // CHECK-NEXT: "name": "R", 1333 // CHECK-NEXT: "inner": [ 1334 // CHECK-NEXT: { 1335 // CHECK-NEXT: "id": "0x{{.*}}", 1336 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 1337 // CHECK-NEXT: "loc": { 1338 // CHECK-NEXT: "offset": 523, 1339 // CHECK-NEXT: "line": 30, 1340 // CHECK-NEXT: "col": 20, 1341 // CHECK-NEXT: "tokLen": 2 1342 // CHECK-NEXT: }, 1343 // CHECK-NEXT: "range": { 1344 // CHECK-NEXT: "begin": { 1345 // CHECK-NEXT: "offset": 514, 1346 // CHECK-NEXT: "col": 11, 1347 // CHECK-NEXT: "tokLen": 8 1348 // CHECK-NEXT: }, 1349 // CHECK-NEXT: "end": { 1350 // CHECK-NEXT: "offset": 523, 1351 // CHECK-NEXT: "col": 20, 1352 // CHECK-NEXT: "tokLen": 2 1353 // CHECK-NEXT: } 1354 // CHECK-NEXT: }, 1355 // CHECK-NEXT: "name": "Ty", 1356 // CHECK-NEXT: "tagUsed": "typename", 1357 // CHECK-NEXT: "depth": 0, 1358 // CHECK-NEXT: "index": 0 1359 // CHECK-NEXT: }, 1360 // CHECK-NEXT: { 1361 // CHECK-NEXT: "id": "0x{{.*}}", 1362 // CHECK-NEXT: "kind": "CXXRecordDecl", 1363 // CHECK-NEXT: "loc": { 1364 // CHECK-NEXT: "offset": 534, 1365 // CHECK-NEXT: "line": 31, 1366 // CHECK-NEXT: "col": 8, 1367 // CHECK-NEXT: "tokLen": 1 1368 // CHECK-NEXT: }, 1369 // CHECK-NEXT: "range": { 1370 // CHECK-NEXT: "begin": { 1371 // CHECK-NEXT: "offset": 527, 1372 // CHECK-NEXT: "col": 1, 1373 // CHECK-NEXT: "tokLen": 6 1374 // CHECK-NEXT: }, 1375 // CHECK-NEXT: "end": { 1376 // CHECK-NEXT: "offset": 537, 1377 // CHECK-NEXT: "col": 11, 1378 // CHECK-NEXT: "tokLen": 1 1379 // CHECK-NEXT: } 1380 // CHECK-NEXT: }, 1381 // CHECK-NEXT: "name": "R", 1382 // CHECK-NEXT: "tagUsed": "struct", 1383 // CHECK-NEXT: "completeDefinition": true, 1384 // CHECK-NEXT: "definitionData": { 1385 // CHECK-NEXT: "canConstDefaultInit": true, 1386 // CHECK-NEXT: "copyAssign": { 1387 // CHECK-NEXT: "hasConstParam": true, 1388 // CHECK-NEXT: "implicitHasConstParam": true, 1389 // CHECK-NEXT: "needsImplicit": true, 1390 // CHECK-NEXT: "simple": true, 1391 // CHECK-NEXT: "trivial": true 1392 // CHECK-NEXT: }, 1393 // CHECK-NEXT: "copyCtor": { 1394 // CHECK-NEXT: "hasConstParam": true, 1395 // CHECK-NEXT: "implicitHasConstParam": true, 1396 // CHECK-NEXT: "needsImplicit": true, 1397 // CHECK-NEXT: "simple": true, 1398 // CHECK-NEXT: "trivial": true 1399 // CHECK-NEXT: }, 1400 // CHECK-NEXT: "defaultCtor": { 1401 // CHECK-NEXT: "defaultedIsConstexpr": true, 1402 // CHECK-NEXT: "exists": true, 1403 // CHECK-NEXT: "isConstexpr": true, 1404 // CHECK-NEXT: "needsImplicit": true, 1405 // CHECK-NEXT: "trivial": true 1406 // CHECK-NEXT: }, 1407 // CHECK-NEXT: "dtor": { 1408 // CHECK-NEXT: "irrelevant": true, 1409 // CHECK-NEXT: "needsImplicit": true, 1410 // CHECK-NEXT: "simple": true, 1411 // CHECK-NEXT: "trivial": true 1412 // CHECK-NEXT: }, 1413 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, 1414 // CHECK-NEXT: "isAggregate": true, 1415 // CHECK-NEXT: "isEmpty": true, 1416 // CHECK-NEXT: "isLiteral": true, 1417 // CHECK-NEXT: "isPOD": true, 1418 // CHECK-NEXT: "isStandardLayout": true, 1419 // CHECK-NEXT: "isTrivial": true, 1420 // CHECK-NEXT: "isTriviallyCopyable": true, 1421 // CHECK-NEXT: "moveAssign": { 1422 // CHECK-NEXT: "exists": true, 1423 // CHECK-NEXT: "needsImplicit": true, 1424 // CHECK-NEXT: "simple": true, 1425 // CHECK-NEXT: "trivial": true 1426 // CHECK-NEXT: }, 1427 // CHECK-NEXT: "moveCtor": { 1428 // CHECK-NEXT: "exists": true, 1429 // CHECK-NEXT: "needsImplicit": true, 1430 // CHECK-NEXT: "simple": true, 1431 // CHECK-NEXT: "trivial": true 1432 // CHECK-NEXT: } 1433 // CHECK-NEXT: }, 1434 // CHECK-NEXT: "inner": [ 1435 // CHECK-NEXT: { 1436 // CHECK-NEXT: "id": "0x{{.*}}", 1437 // CHECK-NEXT: "kind": "CXXRecordDecl", 1438 // CHECK-NEXT: "loc": { 1439 // CHECK-NEXT: "offset": 534, 1440 // CHECK-NEXT: "col": 8, 1441 // CHECK-NEXT: "tokLen": 1 1442 // CHECK-NEXT: }, 1443 // CHECK-NEXT: "range": { 1444 // CHECK-NEXT: "begin": { 1445 // CHECK-NEXT: "offset": 527, 1446 // CHECK-NEXT: "col": 1, 1447 // CHECK-NEXT: "tokLen": 6 1448 // CHECK-NEXT: }, 1449 // CHECK-NEXT: "end": { 1450 // CHECK-NEXT: "offset": 534, 1451 // CHECK-NEXT: "col": 8, 1452 // CHECK-NEXT: "tokLen": 1 1453 // CHECK-NEXT: } 1454 // CHECK-NEXT: }, 1455 // CHECK-NEXT: "isImplicit": true, 1456 // CHECK-NEXT: "name": "R", 1457 // CHECK-NEXT: "tagUsed": "struct" 1458 // CHECK-NEXT: } 1459 // CHECK-NEXT: ] 1460 // CHECK-NEXT: }, 1461 // CHECK-NEXT: { 1462 // CHECK-NEXT: "id": "0x{{.*}}", 1463 // CHECK-NEXT: "kind": "ClassTemplateSpecializationDecl", 1464 // CHECK-NEXT: "name": "R" 1465 // CHECK-NEXT: } 1466 // CHECK-NEXT: ] 1467 // CHECK-NEXT: }, 1468 // CHECK-NEXT: { 1469 // CHECK-NEXT: "id": "0x{{.*}}", 1470 // CHECK-NEXT: "kind": "ClassTemplateSpecializationDecl", 1471 // CHECK-NEXT: "loc": { 1472 // CHECK-NEXT: "offset": 560, 1473 // CHECK-NEXT: "line": 34, 1474 // CHECK-NEXT: "col": 8, 1475 // CHECK-NEXT: "tokLen": 1 1476 // CHECK-NEXT: }, 1477 // CHECK-NEXT: "range": { 1478 // CHECK-NEXT: "begin": { 1479 // CHECK-NEXT: "offset": 541, 1480 // CHECK-NEXT: "line": 33, 1481 // CHECK-NEXT: "col": 1, 1482 // CHECK-NEXT: "tokLen": 8 1483 // CHECK-NEXT: }, 1484 // CHECK-NEXT: "end": { 1485 // CHECK-NEXT: "offset": 568, 1486 // CHECK-NEXT: "line": 34, 1487 // CHECK-NEXT: "col": 16, 1488 // CHECK-NEXT: "tokLen": 1 1489 // CHECK-NEXT: } 1490 // CHECK-NEXT: }, 1491 // CHECK-NEXT: "name": "R", 1492 // CHECK-NEXT: "tagUsed": "struct", 1493 // CHECK-NEXT: "completeDefinition": true, 1494 // CHECK-NEXT: "definitionData": { 1495 // CHECK-NEXT: "canConstDefaultInit": true, 1496 // CHECK-NEXT: "canPassInRegisters": true, 1497 // CHECK-NEXT: "copyAssign": { 1498 // CHECK-NEXT: "hasConstParam": true, 1499 // CHECK-NEXT: "implicitHasConstParam": true, 1500 // CHECK-NEXT: "needsImplicit": true, 1501 // CHECK-NEXT: "simple": true, 1502 // CHECK-NEXT: "trivial": true 1503 // CHECK-NEXT: }, 1504 // CHECK-NEXT: "copyCtor": { 1505 // CHECK-NEXT: "hasConstParam": true, 1506 // CHECK-NEXT: "implicitHasConstParam": true, 1507 // CHECK-NEXT: "needsImplicit": true, 1508 // CHECK-NEXT: "simple": true, 1509 // CHECK-NEXT: "trivial": true 1510 // CHECK-NEXT: }, 1511 // CHECK-NEXT: "defaultCtor": { 1512 // CHECK-NEXT: "defaultedIsConstexpr": true, 1513 // CHECK-NEXT: "exists": true, 1514 // CHECK-NEXT: "isConstexpr": true, 1515 // CHECK-NEXT: "needsImplicit": true, 1516 // CHECK-NEXT: "trivial": true 1517 // CHECK-NEXT: }, 1518 // CHECK-NEXT: "dtor": { 1519 // CHECK-NEXT: "irrelevant": true, 1520 // CHECK-NEXT: "needsImplicit": true, 1521 // CHECK-NEXT: "simple": true, 1522 // CHECK-NEXT: "trivial": true 1523 // CHECK-NEXT: }, 1524 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, 1525 // CHECK-NEXT: "isAggregate": true, 1526 // CHECK-NEXT: "isEmpty": true, 1527 // CHECK-NEXT: "isLiteral": true, 1528 // CHECK-NEXT: "isPOD": true, 1529 // CHECK-NEXT: "isStandardLayout": true, 1530 // CHECK-NEXT: "isTrivial": true, 1531 // CHECK-NEXT: "isTriviallyCopyable": true, 1532 // CHECK-NEXT: "moveAssign": { 1533 // CHECK-NEXT: "exists": true, 1534 // CHECK-NEXT: "needsImplicit": true, 1535 // CHECK-NEXT: "simple": true, 1536 // CHECK-NEXT: "trivial": true 1537 // CHECK-NEXT: }, 1538 // CHECK-NEXT: "moveCtor": { 1539 // CHECK-NEXT: "exists": true, 1540 // CHECK-NEXT: "needsImplicit": true, 1541 // CHECK-NEXT: "simple": true, 1542 // CHECK-NEXT: "trivial": true 1543 // CHECK-NEXT: } 1544 // CHECK-NEXT: }, 1545 // CHECK-NEXT: "inner": [ 1546 // CHECK-NEXT: { 1547 // CHECK-NEXT: "kind": "TemplateArgument", 1548 // CHECK-NEXT: "type": { 1549 // CHECK-NEXT: "qualType": "int" 1550 // CHECK-NEXT: }, 1551 // CHECK-NEXT: "inner": [ 1552 // CHECK-NEXT: { 1553 // CHECK-NEXT: "id": "0x{{.*}}", 1554 // CHECK-NEXT: "kind": "BuiltinType", 1555 // CHECK-NEXT: "type": { 1556 // CHECK-NEXT: "qualType": "int" 1557 // CHECK-NEXT: } 1558 // CHECK-NEXT: } 1559 // CHECK-NEXT: ] 1560 // CHECK-NEXT: }, 1561 // CHECK-NEXT: { 1562 // CHECK-NEXT: "id": "0x{{.*}}", 1563 // CHECK-NEXT: "kind": "CXXRecordDecl", 1564 // CHECK-NEXT: "loc": { 1565 // CHECK-NEXT: "offset": 560, 1566 // CHECK-NEXT: "col": 8, 1567 // CHECK-NEXT: "tokLen": 1 1568 // CHECK-NEXT: }, 1569 // CHECK-NEXT: "range": { 1570 // CHECK-NEXT: "begin": { 1571 // CHECK-NEXT: "offset": 553, 1572 // CHECK-NEXT: "col": 1, 1573 // CHECK-NEXT: "tokLen": 6 1574 // CHECK-NEXT: }, 1575 // CHECK-NEXT: "end": { 1576 // CHECK-NEXT: "offset": 560, 1577 // CHECK-NEXT: "col": 8, 1578 // CHECK-NEXT: "tokLen": 1 1579 // CHECK-NEXT: } 1580 // CHECK-NEXT: }, 1581 // CHECK-NEXT: "isImplicit": true, 1582 // CHECK-NEXT: "name": "R", 1583 // CHECK-NEXT: "tagUsed": "struct" 1584 // CHECK-NEXT: } 1585 // CHECK-NEXT: ] 1586 // CHECK-NEXT: }, 1587 // CHECK-NEXT: { 1588 // CHECK-NEXT: "id": "0x{{.*}}", 1589 // CHECK-NEXT: "kind": "ClassTemplateDecl", 1590 // CHECK-NEXT: "loc": { 1591 // CHECK-NEXT: "offset": 612, 1592 // CHECK-NEXT: "line": 37, 1593 // CHECK-NEXT: "col": 8, 1594 // CHECK-NEXT: "tokLen": 1 1595 // CHECK-NEXT: }, 1596 // CHECK-NEXT: "range": { 1597 // CHECK-NEXT: "begin": { 1598 // CHECK-NEXT: "offset": 572, 1599 // CHECK-NEXT: "line": 36, 1600 // CHECK-NEXT: "col": 1, 1601 // CHECK-NEXT: "tokLen": 8 1602 // CHECK-NEXT: }, 1603 // CHECK-NEXT: "end": { 1604 // CHECK-NEXT: "offset": 615, 1605 // CHECK-NEXT: "line": 37, 1606 // CHECK-NEXT: "col": 11, 1607 // CHECK-NEXT: "tokLen": 1 1608 // CHECK-NEXT: } 1609 // CHECK-NEXT: }, 1610 // CHECK-NEXT: "name": "S", 1611 // CHECK-NEXT: "inner": [ 1612 // CHECK-NEXT: { 1613 // CHECK-NEXT: "id": "0x{{.*}}", 1614 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 1615 // CHECK-NEXT: "loc": { 1616 // CHECK-NEXT: "offset": 591, 1617 // CHECK-NEXT: "line": 36, 1618 // CHECK-NEXT: "col": 20, 1619 // CHECK-NEXT: "tokLen": 2 1620 // CHECK-NEXT: }, 1621 // CHECK-NEXT: "range": { 1622 // CHECK-NEXT: "begin": { 1623 // CHECK-NEXT: "offset": 582, 1624 // CHECK-NEXT: "col": 11, 1625 // CHECK-NEXT: "tokLen": 8 1626 // CHECK-NEXT: }, 1627 // CHECK-NEXT: "end": { 1628 // CHECK-NEXT: "offset": 591, 1629 // CHECK-NEXT: "col": 20, 1630 // CHECK-NEXT: "tokLen": 2 1631 // CHECK-NEXT: } 1632 // CHECK-NEXT: }, 1633 // CHECK-NEXT: "name": "Ty", 1634 // CHECK-NEXT: "tagUsed": "typename", 1635 // CHECK-NEXT: "depth": 0, 1636 // CHECK-NEXT: "index": 0 1637 // CHECK-NEXT: }, 1638 // CHECK-NEXT: { 1639 // CHECK-NEXT: "id": "0x{{.*}}", 1640 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 1641 // CHECK-NEXT: "loc": { 1642 // CHECK-NEXT: "offset": 601, 1643 // CHECK-NEXT: "col": 30, 1644 // CHECK-NEXT: "tokLen": 2 1645 // CHECK-NEXT: }, 1646 // CHECK-NEXT: "range": { 1647 // CHECK-NEXT: "begin": { 1648 // CHECK-NEXT: "offset": 595, 1649 // CHECK-NEXT: "col": 24, 1650 // CHECK-NEXT: "tokLen": 5 1651 // CHECK-NEXT: }, 1652 // CHECK-NEXT: "end": { 1653 // CHECK-NEXT: "offset": 601, 1654 // CHECK-NEXT: "col": 30, 1655 // CHECK-NEXT: "tokLen": 2 1656 // CHECK-NEXT: } 1657 // CHECK-NEXT: }, 1658 // CHECK-NEXT: "name": "Uy", 1659 // CHECK-NEXT: "tagUsed": "class", 1660 // CHECK-NEXT: "depth": 0, 1661 // CHECK-NEXT: "index": 1 1662 // CHECK-NEXT: }, 1663 // CHECK-NEXT: { 1664 // CHECK-NEXT: "id": "0x{{.*}}", 1665 // CHECK-NEXT: "kind": "CXXRecordDecl", 1666 // CHECK-NEXT: "loc": { 1667 // CHECK-NEXT: "offset": 612, 1668 // CHECK-NEXT: "line": 37, 1669 // CHECK-NEXT: "col": 8, 1670 // CHECK-NEXT: "tokLen": 1 1671 // CHECK-NEXT: }, 1672 // CHECK-NEXT: "range": { 1673 // CHECK-NEXT: "begin": { 1674 // CHECK-NEXT: "offset": 605, 1675 // CHECK-NEXT: "col": 1, 1676 // CHECK-NEXT: "tokLen": 6 1677 // CHECK-NEXT: }, 1678 // CHECK-NEXT: "end": { 1679 // CHECK-NEXT: "offset": 615, 1680 // CHECK-NEXT: "col": 11, 1681 // CHECK-NEXT: "tokLen": 1 1682 // CHECK-NEXT: } 1683 // CHECK-NEXT: }, 1684 // CHECK-NEXT: "name": "S", 1685 // CHECK-NEXT: "tagUsed": "struct", 1686 // CHECK-NEXT: "completeDefinition": true, 1687 // CHECK-NEXT: "definitionData": { 1688 // CHECK-NEXT: "canConstDefaultInit": true, 1689 // CHECK-NEXT: "copyAssign": { 1690 // CHECK-NEXT: "hasConstParam": true, 1691 // CHECK-NEXT: "implicitHasConstParam": true, 1692 // CHECK-NEXT: "needsImplicit": true, 1693 // CHECK-NEXT: "simple": true, 1694 // CHECK-NEXT: "trivial": true 1695 // CHECK-NEXT: }, 1696 // CHECK-NEXT: "copyCtor": { 1697 // CHECK-NEXT: "hasConstParam": true, 1698 // CHECK-NEXT: "implicitHasConstParam": true, 1699 // CHECK-NEXT: "needsImplicit": true, 1700 // CHECK-NEXT: "simple": true, 1701 // CHECK-NEXT: "trivial": true 1702 // CHECK-NEXT: }, 1703 // CHECK-NEXT: "defaultCtor": { 1704 // CHECK-NEXT: "defaultedIsConstexpr": true, 1705 // CHECK-NEXT: "exists": true, 1706 // CHECK-NEXT: "isConstexpr": true, 1707 // CHECK-NEXT: "needsImplicit": true, 1708 // CHECK-NEXT: "trivial": true 1709 // CHECK-NEXT: }, 1710 // CHECK-NEXT: "dtor": { 1711 // CHECK-NEXT: "irrelevant": true, 1712 // CHECK-NEXT: "needsImplicit": true, 1713 // CHECK-NEXT: "simple": true, 1714 // CHECK-NEXT: "trivial": true 1715 // CHECK-NEXT: }, 1716 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, 1717 // CHECK-NEXT: "isAggregate": true, 1718 // CHECK-NEXT: "isEmpty": true, 1719 // CHECK-NEXT: "isLiteral": true, 1720 // CHECK-NEXT: "isPOD": true, 1721 // CHECK-NEXT: "isStandardLayout": true, 1722 // CHECK-NEXT: "isTrivial": true, 1723 // CHECK-NEXT: "isTriviallyCopyable": true, 1724 // CHECK-NEXT: "moveAssign": { 1725 // CHECK-NEXT: "exists": true, 1726 // CHECK-NEXT: "needsImplicit": true, 1727 // CHECK-NEXT: "simple": true, 1728 // CHECK-NEXT: "trivial": true 1729 // CHECK-NEXT: }, 1730 // CHECK-NEXT: "moveCtor": { 1731 // CHECK-NEXT: "exists": true, 1732 // CHECK-NEXT: "needsImplicit": true, 1733 // CHECK-NEXT: "simple": true, 1734 // CHECK-NEXT: "trivial": true 1735 // CHECK-NEXT: } 1736 // CHECK-NEXT: }, 1737 // CHECK-NEXT: "inner": [ 1738 // CHECK-NEXT: { 1739 // CHECK-NEXT: "id": "0x{{.*}}", 1740 // CHECK-NEXT: "kind": "CXXRecordDecl", 1741 // CHECK-NEXT: "loc": { 1742 // CHECK-NEXT: "offset": 612, 1743 // CHECK-NEXT: "col": 8, 1744 // CHECK-NEXT: "tokLen": 1 1745 // CHECK-NEXT: }, 1746 // CHECK-NEXT: "range": { 1747 // CHECK-NEXT: "begin": { 1748 // CHECK-NEXT: "offset": 605, 1749 // CHECK-NEXT: "col": 1, 1750 // CHECK-NEXT: "tokLen": 6 1751 // CHECK-NEXT: }, 1752 // CHECK-NEXT: "end": { 1753 // CHECK-NEXT: "offset": 612, 1754 // CHECK-NEXT: "col": 8, 1755 // CHECK-NEXT: "tokLen": 1 1756 // CHECK-NEXT: } 1757 // CHECK-NEXT: }, 1758 // CHECK-NEXT: "isImplicit": true, 1759 // CHECK-NEXT: "name": "S", 1760 // CHECK-NEXT: "tagUsed": "struct" 1761 // CHECK-NEXT: } 1762 // CHECK-NEXT: ] 1763 // CHECK-NEXT: } 1764 // CHECK-NEXT: ] 1765 // CHECK-NEXT: }, 1766 // CHECK-NEXT: { 1767 // CHECK-NEXT: "id": "0x{{.*}}", 1768 // CHECK-NEXT: "kind": "ClassTemplatePartialSpecializationDecl", 1769 // CHECK-NEXT: "loc": { 1770 // CHECK-NEXT: "offset": 649, 1771 // CHECK-NEXT: "line": 40, 1772 // CHECK-NEXT: "col": 8, 1773 // CHECK-NEXT: "tokLen": 1 1774 // CHECK-NEXT: }, 1775 // CHECK-NEXT: "range": { 1776 // CHECK-NEXT: "begin": { 1777 // CHECK-NEXT: "offset": 619, 1778 // CHECK-NEXT: "line": 39, 1779 // CHECK-NEXT: "col": 1, 1780 // CHECK-NEXT: "tokLen": 8 1781 // CHECK-NEXT: }, 1782 // CHECK-NEXT: "end": { 1783 // CHECK-NEXT: "offset": 661, 1784 // CHECK-NEXT: "line": 40, 1785 // CHECK-NEXT: "col": 20, 1786 // CHECK-NEXT: "tokLen": 1 1787 // CHECK-NEXT: } 1788 // CHECK-NEXT: }, 1789 // CHECK-NEXT: "name": "S", 1790 // CHECK-NEXT: "tagUsed": "struct", 1791 // CHECK-NEXT: "completeDefinition": true, 1792 // CHECK-NEXT: "definitionData": { 1793 // CHECK-NEXT: "canConstDefaultInit": true, 1794 // CHECK-NEXT: "copyAssign": { 1795 // CHECK-NEXT: "hasConstParam": true, 1796 // CHECK-NEXT: "implicitHasConstParam": true, 1797 // CHECK-NEXT: "needsImplicit": true, 1798 // CHECK-NEXT: "simple": true, 1799 // CHECK-NEXT: "trivial": true 1800 // CHECK-NEXT: }, 1801 // CHECK-NEXT: "copyCtor": { 1802 // CHECK-NEXT: "hasConstParam": true, 1803 // CHECK-NEXT: "implicitHasConstParam": true, 1804 // CHECK-NEXT: "needsImplicit": true, 1805 // CHECK-NEXT: "simple": true, 1806 // CHECK-NEXT: "trivial": true 1807 // CHECK-NEXT: }, 1808 // CHECK-NEXT: "defaultCtor": { 1809 // CHECK-NEXT: "defaultedIsConstexpr": true, 1810 // CHECK-NEXT: "exists": true, 1811 // CHECK-NEXT: "isConstexpr": true, 1812 // CHECK-NEXT: "needsImplicit": true, 1813 // CHECK-NEXT: "trivial": true 1814 // CHECK-NEXT: }, 1815 // CHECK-NEXT: "dtor": { 1816 // CHECK-NEXT: "irrelevant": true, 1817 // CHECK-NEXT: "needsImplicit": true, 1818 // CHECK-NEXT: "simple": true, 1819 // CHECK-NEXT: "trivial": true 1820 // CHECK-NEXT: }, 1821 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, 1822 // CHECK-NEXT: "isAggregate": true, 1823 // CHECK-NEXT: "isEmpty": true, 1824 // CHECK-NEXT: "isLiteral": true, 1825 // CHECK-NEXT: "isPOD": true, 1826 // CHECK-NEXT: "isStandardLayout": true, 1827 // CHECK-NEXT: "isTrivial": true, 1828 // CHECK-NEXT: "isTriviallyCopyable": true, 1829 // CHECK-NEXT: "moveAssign": { 1830 // CHECK-NEXT: "exists": true, 1831 // CHECK-NEXT: "needsImplicit": true, 1832 // CHECK-NEXT: "simple": true, 1833 // CHECK-NEXT: "trivial": true 1834 // CHECK-NEXT: }, 1835 // CHECK-NEXT: "moveCtor": { 1836 // CHECK-NEXT: "exists": true, 1837 // CHECK-NEXT: "needsImplicit": true, 1838 // CHECK-NEXT: "simple": true, 1839 // CHECK-NEXT: "trivial": true 1840 // CHECK-NEXT: } 1841 // CHECK-NEXT: }, 1842 // CHECK-NEXT: "inner": [ 1843 // CHECK-NEXT: { 1844 // CHECK-NEXT: "kind": "TemplateArgument", 1845 // CHECK-NEXT: "type": { 1846 // CHECK-NEXT: "qualType": "type-parameter-0-0" 1847 // CHECK-NEXT: }, 1848 // CHECK-NEXT: "inner": [ 1849 // CHECK-NEXT: { 1850 // CHECK-NEXT: "id": "0x{{.*}}", 1851 // CHECK-NEXT: "kind": "TemplateTypeParmType", 1852 // CHECK-NEXT: "type": { 1853 // CHECK-NEXT: "qualType": "type-parameter-0-0" 1854 // CHECK-NEXT: }, 1855 // CHECK-NEXT: "isDependent": true, 1856 // CHECK-NEXT: "isInstantiationDependent": true, 1857 // CHECK-NEXT: "depth": 0, 1858 // CHECK-NEXT: "index": 0, 1859 // CHECK-NEXT: "decl": { 1860 // CHECK-NEXT: "id": "0x0" 1861 // CHECK-NEXT: } 1862 // CHECK-NEXT: } 1863 // CHECK-NEXT: ] 1864 // CHECK-NEXT: }, 1865 // CHECK-NEXT: { 1866 // CHECK-NEXT: "kind": "TemplateArgument", 1867 // CHECK-NEXT: "type": { 1868 // CHECK-NEXT: "qualType": "int" 1869 // CHECK-NEXT: }, 1870 // CHECK-NEXT: "inner": [ 1871 // CHECK-NEXT: { 1872 // CHECK-NEXT: "id": "0x{{.*}}", 1873 // CHECK-NEXT: "kind": "BuiltinType", 1874 // CHECK-NEXT: "type": { 1875 // CHECK-NEXT: "qualType": "int" 1876 // CHECK-NEXT: } 1877 // CHECK-NEXT: } 1878 // CHECK-NEXT: ] 1879 // CHECK-NEXT: }, 1880 // CHECK-NEXT: { 1881 // CHECK-NEXT: "id": "0x{{.*}}", 1882 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 1883 // CHECK-NEXT: "loc": { 1884 // CHECK-NEXT: "offset": 638, 1885 // CHECK-NEXT: "line": 39, 1886 // CHECK-NEXT: "col": 20, 1887 // CHECK-NEXT: "tokLen": 2 1888 // CHECK-NEXT: }, 1889 // CHECK-NEXT: "range": { 1890 // CHECK-NEXT: "begin": { 1891 // CHECK-NEXT: "offset": 629, 1892 // CHECK-NEXT: "col": 11, 1893 // CHECK-NEXT: "tokLen": 8 1894 // CHECK-NEXT: }, 1895 // CHECK-NEXT: "end": { 1896 // CHECK-NEXT: "offset": 638, 1897 // CHECK-NEXT: "col": 20, 1898 // CHECK-NEXT: "tokLen": 2 1899 // CHECK-NEXT: } 1900 // CHECK-NEXT: }, 1901 // CHECK-NEXT: "isReferenced": true, 1902 // CHECK-NEXT: "name": "Ty", 1903 // CHECK-NEXT: "tagUsed": "typename", 1904 // CHECK-NEXT: "depth": 0, 1905 // CHECK-NEXT: "index": 0 1906 // CHECK-NEXT: }, 1907 // CHECK-NEXT: { 1908 // CHECK-NEXT: "id": "0x{{.*}}", 1909 // CHECK-NEXT: "kind": "CXXRecordDecl", 1910 // CHECK-NEXT: "loc": { 1911 // CHECK-NEXT: "offset": 649, 1912 // CHECK-NEXT: "line": 40, 1913 // CHECK-NEXT: "col": 8, 1914 // CHECK-NEXT: "tokLen": 1 1915 // CHECK-NEXT: }, 1916 // CHECK-NEXT: "range": { 1917 // CHECK-NEXT: "begin": { 1918 // CHECK-NEXT: "offset": 642, 1919 // CHECK-NEXT: "col": 1, 1920 // CHECK-NEXT: "tokLen": 6 1921 // CHECK-NEXT: }, 1922 // CHECK-NEXT: "end": { 1923 // CHECK-NEXT: "offset": 649, 1924 // CHECK-NEXT: "col": 8, 1925 // CHECK-NEXT: "tokLen": 1 1926 // CHECK-NEXT: } 1927 // CHECK-NEXT: }, 1928 // CHECK-NEXT: "isImplicit": true, 1929 // CHECK-NEXT: "name": "S", 1930 // CHECK-NEXT: "tagUsed": "struct" 1931 // CHECK-NEXT: } 1932 // CHECK-NEXT: ] 1933 // CHECK-NEXT: }, 1934 // CHECK-NEXT: { 1935 // CHECK-NEXT: "id": "0x{{.*}}", 1936 // CHECK-NEXT: "kind": "ClassTemplateDecl", 1937 // CHECK-NEXT: "loc": { 1938 // CHECK-NEXT: "offset": 688, 1939 // CHECK-NEXT: "line": 43, 1940 // CHECK-NEXT: "col": 8, 1941 // CHECK-NEXT: "tokLen": 1 1942 // CHECK-NEXT: }, 1943 // CHECK-NEXT: "range": { 1944 // CHECK-NEXT: "begin": { 1945 // CHECK-NEXT: "offset": 665, 1946 // CHECK-NEXT: "line": 42, 1947 // CHECK-NEXT: "col": 1, 1948 // CHECK-NEXT: "tokLen": 8 1949 // CHECK-NEXT: }, 1950 // CHECK-NEXT: "end": { 1951 // CHECK-NEXT: "offset": 691, 1952 // CHECK-NEXT: "line": 43, 1953 // CHECK-NEXT: "col": 11, 1954 // CHECK-NEXT: "tokLen": 1 1955 // CHECK-NEXT: } 1956 // CHECK-NEXT: }, 1957 // CHECK-NEXT: "name": "T", 1958 // CHECK-NEXT: "inner": [ 1959 // CHECK-NEXT: { 1960 // CHECK-NEXT: "id": "0x{{.*}}", 1961 // CHECK-NEXT: "kind": "NonTypeTemplateParmDecl", 1962 // CHECK-NEXT: "loc": { 1963 // CHECK-NEXT: "offset": 679, 1964 // CHECK-NEXT: "line": 42, 1965 // CHECK-NEXT: "col": 15, 1966 // CHECK-NEXT: "tokLen": 1 1967 // CHECK-NEXT: }, 1968 // CHECK-NEXT: "range": { 1969 // CHECK-NEXT: "begin": { 1970 // CHECK-NEXT: "offset": 675, 1971 // CHECK-NEXT: "col": 11, 1972 // CHECK-NEXT: "tokLen": 4 1973 // CHECK-NEXT: }, 1974 // CHECK-NEXT: "end": { 1975 // CHECK-NEXT: "offset": 675, 1976 // CHECK-NEXT: "col": 11, 1977 // CHECK-NEXT: "tokLen": 4 1978 // CHECK-NEXT: } 1979 // CHECK-NEXT: }, 1980 // CHECK-NEXT: "type": { 1981 // CHECK-NEXT: "qualType": "auto" 1982 // CHECK-NEXT: }, 1983 // CHECK-NEXT: "depth": 0, 1984 // CHECK-NEXT: "index": 0 1985 // CHECK-NEXT: }, 1986 // CHECK-NEXT: { 1987 // CHECK-NEXT: "id": "0x{{.*}}", 1988 // CHECK-NEXT: "kind": "CXXRecordDecl", 1989 // CHECK-NEXT: "loc": { 1990 // CHECK-NEXT: "offset": 688, 1991 // CHECK-NEXT: "line": 43, 1992 // CHECK-NEXT: "col": 8, 1993 // CHECK-NEXT: "tokLen": 1 1994 // CHECK-NEXT: }, 1995 // CHECK-NEXT: "range": { 1996 // CHECK-NEXT: "begin": { 1997 // CHECK-NEXT: "offset": 681, 1998 // CHECK-NEXT: "col": 1, 1999 // CHECK-NEXT: "tokLen": 6 2000 // CHECK-NEXT: }, 2001 // CHECK-NEXT: "end": { 2002 // CHECK-NEXT: "offset": 691, 2003 // CHECK-NEXT: "col": 11, 2004 // CHECK-NEXT: "tokLen": 1 2005 // CHECK-NEXT: } 2006 // CHECK-NEXT: }, 2007 // CHECK-NEXT: "name": "T", 2008 // CHECK-NEXT: "tagUsed": "struct", 2009 // CHECK-NEXT: "completeDefinition": true, 2010 // CHECK-NEXT: "definitionData": { 2011 // CHECK-NEXT: "canConstDefaultInit": true, 2012 // CHECK-NEXT: "copyAssign": { 2013 // CHECK-NEXT: "hasConstParam": true, 2014 // CHECK-NEXT: "implicitHasConstParam": true, 2015 // CHECK-NEXT: "needsImplicit": true, 2016 // CHECK-NEXT: "simple": true, 2017 // CHECK-NEXT: "trivial": true 2018 // CHECK-NEXT: }, 2019 // CHECK-NEXT: "copyCtor": { 2020 // CHECK-NEXT: "hasConstParam": true, 2021 // CHECK-NEXT: "implicitHasConstParam": true, 2022 // CHECK-NEXT: "needsImplicit": true, 2023 // CHECK-NEXT: "simple": true, 2024 // CHECK-NEXT: "trivial": true 2025 // CHECK-NEXT: }, 2026 // CHECK-NEXT: "defaultCtor": { 2027 // CHECK-NEXT: "defaultedIsConstexpr": true, 2028 // CHECK-NEXT: "exists": true, 2029 // CHECK-NEXT: "isConstexpr": true, 2030 // CHECK-NEXT: "needsImplicit": true, 2031 // CHECK-NEXT: "trivial": true 2032 // CHECK-NEXT: }, 2033 // CHECK-NEXT: "dtor": { 2034 // CHECK-NEXT: "irrelevant": true, 2035 // CHECK-NEXT: "needsImplicit": true, 2036 // CHECK-NEXT: "simple": true, 2037 // CHECK-NEXT: "trivial": true 2038 // CHECK-NEXT: }, 2039 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, 2040 // CHECK-NEXT: "isAggregate": true, 2041 // CHECK-NEXT: "isEmpty": true, 2042 // CHECK-NEXT: "isLiteral": true, 2043 // CHECK-NEXT: "isPOD": true, 2044 // CHECK-NEXT: "isStandardLayout": true, 2045 // CHECK-NEXT: "isTrivial": true, 2046 // CHECK-NEXT: "isTriviallyCopyable": true, 2047 // CHECK-NEXT: "moveAssign": { 2048 // CHECK-NEXT: "exists": true, 2049 // CHECK-NEXT: "needsImplicit": true, 2050 // CHECK-NEXT: "simple": true, 2051 // CHECK-NEXT: "trivial": true 2052 // CHECK-NEXT: }, 2053 // CHECK-NEXT: "moveCtor": { 2054 // CHECK-NEXT: "exists": true, 2055 // CHECK-NEXT: "needsImplicit": true, 2056 // CHECK-NEXT: "simple": true, 2057 // CHECK-NEXT: "trivial": true 2058 // CHECK-NEXT: } 2059 // CHECK-NEXT: }, 2060 // CHECK-NEXT: "inner": [ 2061 // CHECK-NEXT: { 2062 // CHECK-NEXT: "id": "0x{{.*}}", 2063 // CHECK-NEXT: "kind": "CXXRecordDecl", 2064 // CHECK-NEXT: "loc": { 2065 // CHECK-NEXT: "offset": 688, 2066 // CHECK-NEXT: "col": 8, 2067 // CHECK-NEXT: "tokLen": 1 2068 // CHECK-NEXT: }, 2069 // CHECK-NEXT: "range": { 2070 // CHECK-NEXT: "begin": { 2071 // CHECK-NEXT: "offset": 681, 2072 // CHECK-NEXT: "col": 1, 2073 // CHECK-NEXT: "tokLen": 6 2074 // CHECK-NEXT: }, 2075 // CHECK-NEXT: "end": { 2076 // CHECK-NEXT: "offset": 688, 2077 // CHECK-NEXT: "col": 8, 2078 // CHECK-NEXT: "tokLen": 1 2079 // CHECK-NEXT: } 2080 // CHECK-NEXT: }, 2081 // CHECK-NEXT: "isImplicit": true, 2082 // CHECK-NEXT: "name": "T", 2083 // CHECK-NEXT: "tagUsed": "struct" 2084 // CHECK-NEXT: } 2085 // CHECK-NEXT: ] 2086 // CHECK-NEXT: } 2087 // CHECK-NEXT: ] 2088 // CHECK-NEXT: }, 2089 // CHECK-NEXT: { 2090 // CHECK-NEXT: "id": "0x{{.*}}", 2091 // CHECK-NEXT: "kind": "ClassTemplateDecl", 2092 // CHECK-NEXT: "loc": { 2093 // CHECK-NEXT: "offset": 728, 2094 // CHECK-NEXT: "line": 46, 2095 // CHECK-NEXT: "col": 8, 2096 // CHECK-NEXT: "tokLen": 1 2097 // CHECK-NEXT: }, 2098 // CHECK-NEXT: "range": { 2099 // CHECK-NEXT: "begin": { 2100 // CHECK-NEXT: "offset": 695, 2101 // CHECK-NEXT: "line": 45, 2102 // CHECK-NEXT: "col": 1, 2103 // CHECK-NEXT: "tokLen": 8 2104 // CHECK-NEXT: }, 2105 // CHECK-NEXT: "end": { 2106 // CHECK-NEXT: "offset": 731, 2107 // CHECK-NEXT: "line": 46, 2108 // CHECK-NEXT: "col": 11, 2109 // CHECK-NEXT: "tokLen": 1 2110 // CHECK-NEXT: } 2111 // CHECK-NEXT: }, 2112 // CHECK-NEXT: "name": "U", 2113 // CHECK-NEXT: "inner": [ 2114 // CHECK-NEXT: { 2115 // CHECK-NEXT: "id": "0x{{.*}}", 2116 // CHECK-NEXT: "kind": "NonTypeTemplateParmDecl", 2117 // CHECK-NEXT: "loc": { 2118 // CHECK-NEXT: "offset": 719, 2119 // CHECK-NEXT: "line": 45, 2120 // CHECK-NEXT: "col": 25, 2121 // CHECK-NEXT: "tokLen": 1 2122 // CHECK-NEXT: }, 2123 // CHECK-NEXT: "range": { 2124 // CHECK-NEXT: "begin": { 2125 // CHECK-NEXT: "offset": 705, 2126 // CHECK-NEXT: "col": 11, 2127 // CHECK-NEXT: "tokLen": 8 2128 // CHECK-NEXT: }, 2129 // CHECK-NEXT: "end": { 2130 // CHECK-NEXT: "offset": 705, 2131 // CHECK-NEXT: "col": 11, 2132 // CHECK-NEXT: "tokLen": 8 2133 // CHECK-NEXT: } 2134 // CHECK-NEXT: }, 2135 // CHECK-NEXT: "type": { 2136 // CHECK-NEXT: "qualType": "decltype(auto)" 2137 // CHECK-NEXT: }, 2138 // CHECK-NEXT: "depth": 0, 2139 // CHECK-NEXT: "index": 0 2140 // CHECK-NEXT: }, 2141 // CHECK-NEXT: { 2142 // CHECK-NEXT: "id": "0x{{.*}}", 2143 // CHECK-NEXT: "kind": "CXXRecordDecl", 2144 // CHECK-NEXT: "loc": { 2145 // CHECK-NEXT: "offset": 728, 2146 // CHECK-NEXT: "line": 46, 2147 // CHECK-NEXT: "col": 8, 2148 // CHECK-NEXT: "tokLen": 1 2149 // CHECK-NEXT: }, 2150 // CHECK-NEXT: "range": { 2151 // CHECK-NEXT: "begin": { 2152 // CHECK-NEXT: "offset": 721, 2153 // CHECK-NEXT: "col": 1, 2154 // CHECK-NEXT: "tokLen": 6 2155 // CHECK-NEXT: }, 2156 // CHECK-NEXT: "end": { 2157 // CHECK-NEXT: "offset": 731, 2158 // CHECK-NEXT: "col": 11, 2159 // CHECK-NEXT: "tokLen": 1 2160 // CHECK-NEXT: } 2161 // CHECK-NEXT: }, 2162 // CHECK-NEXT: "name": "U", 2163 // CHECK-NEXT: "tagUsed": "struct", 2164 // CHECK-NEXT: "completeDefinition": true, 2165 // CHECK-NEXT: "definitionData": { 2166 // CHECK-NEXT: "canConstDefaultInit": true, 2167 // CHECK-NEXT: "copyAssign": { 2168 // CHECK-NEXT: "hasConstParam": true, 2169 // CHECK-NEXT: "implicitHasConstParam": true, 2170 // CHECK-NEXT: "needsImplicit": true, 2171 // CHECK-NEXT: "simple": true, 2172 // CHECK-NEXT: "trivial": true 2173 // CHECK-NEXT: }, 2174 // CHECK-NEXT: "copyCtor": { 2175 // CHECK-NEXT: "hasConstParam": true, 2176 // CHECK-NEXT: "implicitHasConstParam": true, 2177 // CHECK-NEXT: "needsImplicit": true, 2178 // CHECK-NEXT: "simple": true, 2179 // CHECK-NEXT: "trivial": true 2180 // CHECK-NEXT: }, 2181 // CHECK-NEXT: "defaultCtor": { 2182 // CHECK-NEXT: "defaultedIsConstexpr": true, 2183 // CHECK-NEXT: "exists": true, 2184 // CHECK-NEXT: "isConstexpr": true, 2185 // CHECK-NEXT: "needsImplicit": true, 2186 // CHECK-NEXT: "trivial": true 2187 // CHECK-NEXT: }, 2188 // CHECK-NEXT: "dtor": { 2189 // CHECK-NEXT: "irrelevant": true, 2190 // CHECK-NEXT: "needsImplicit": true, 2191 // CHECK-NEXT: "simple": true, 2192 // CHECK-NEXT: "trivial": true 2193 // CHECK-NEXT: }, 2194 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, 2195 // CHECK-NEXT: "isAggregate": true, 2196 // CHECK-NEXT: "isEmpty": true, 2197 // CHECK-NEXT: "isLiteral": true, 2198 // CHECK-NEXT: "isPOD": true, 2199 // CHECK-NEXT: "isStandardLayout": true, 2200 // CHECK-NEXT: "isTrivial": true, 2201 // CHECK-NEXT: "isTriviallyCopyable": true, 2202 // CHECK-NEXT: "moveAssign": { 2203 // CHECK-NEXT: "exists": true, 2204 // CHECK-NEXT: "needsImplicit": true, 2205 // CHECK-NEXT: "simple": true, 2206 // CHECK-NEXT: "trivial": true 2207 // CHECK-NEXT: }, 2208 // CHECK-NEXT: "moveCtor": { 2209 // CHECK-NEXT: "exists": true, 2210 // CHECK-NEXT: "needsImplicit": true, 2211 // CHECK-NEXT: "simple": true, 2212 // CHECK-NEXT: "trivial": true 2213 // CHECK-NEXT: } 2214 // CHECK-NEXT: }, 2215 // CHECK-NEXT: "inner": [ 2216 // CHECK-NEXT: { 2217 // CHECK-NEXT: "id": "0x{{.*}}", 2218 // CHECK-NEXT: "kind": "CXXRecordDecl", 2219 // CHECK-NEXT: "loc": { 2220 // CHECK-NEXT: "offset": 728, 2221 // CHECK-NEXT: "col": 8, 2222 // CHECK-NEXT: "tokLen": 1 2223 // CHECK-NEXT: }, 2224 // CHECK-NEXT: "range": { 2225 // CHECK-NEXT: "begin": { 2226 // CHECK-NEXT: "offset": 721, 2227 // CHECK-NEXT: "col": 1, 2228 // CHECK-NEXT: "tokLen": 6 2229 // CHECK-NEXT: }, 2230 // CHECK-NEXT: "end": { 2231 // CHECK-NEXT: "offset": 728, 2232 // CHECK-NEXT: "col": 8, 2233 // CHECK-NEXT: "tokLen": 1 2234 // CHECK-NEXT: } 2235 // CHECK-NEXT: }, 2236 // CHECK-NEXT: "isImplicit": true, 2237 // CHECK-NEXT: "name": "U", 2238 // CHECK-NEXT: "tagUsed": "struct" 2239 // CHECK-NEXT: } 2240 // CHECK-NEXT: ] 2241 // CHECK-NEXT: } 2242 // CHECK-NEXT: ] 2243 // CHECK-NEXT: }, 2244 // CHECK-NEXT: { 2245 // CHECK-NEXT: "id": "0x{{.*}}", 2246 // CHECK-NEXT: "kind": "ClassTemplateDecl", 2247 // CHECK-NEXT: "loc": { 2248 // CHECK-NEXT: "offset": 765, 2249 // CHECK-NEXT: "line": 49, 2250 // CHECK-NEXT: "col": 8, 2251 // CHECK-NEXT: "tokLen": 1 2252 // CHECK-NEXT: }, 2253 // CHECK-NEXT: "range": { 2254 // CHECK-NEXT: "begin": { 2255 // CHECK-NEXT: "offset": 735, 2256 // CHECK-NEXT: "line": 48, 2257 // CHECK-NEXT: "col": 1, 2258 // CHECK-NEXT: "tokLen": 8 2259 // CHECK-NEXT: }, 2260 // CHECK-NEXT: "end": { 2261 // CHECK-NEXT: "offset": 806, 2262 // CHECK-NEXT: "line": 52, 2263 // CHECK-NEXT: "col": 1, 2264 // CHECK-NEXT: "tokLen": 1 2265 // CHECK-NEXT: } 2266 // CHECK-NEXT: }, 2267 // CHECK-NEXT: "name": "V", 2268 // CHECK-NEXT: "inner": [ 2269 // CHECK-NEXT: { 2270 // CHECK-NEXT: "id": "0x{{.*}}", 2271 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 2272 // CHECK-NEXT: "loc": { 2273 // CHECK-NEXT: "offset": 754, 2274 // CHECK-NEXT: "line": 48, 2275 // CHECK-NEXT: "col": 20, 2276 // CHECK-NEXT: "tokLen": 2 2277 // CHECK-NEXT: }, 2278 // CHECK-NEXT: "range": { 2279 // CHECK-NEXT: "begin": { 2280 // CHECK-NEXT: "offset": 745, 2281 // CHECK-NEXT: "col": 11, 2282 // CHECK-NEXT: "tokLen": 8 2283 // CHECK-NEXT: }, 2284 // CHECK-NEXT: "end": { 2285 // CHECK-NEXT: "offset": 754, 2286 // CHECK-NEXT: "col": 20, 2287 // CHECK-NEXT: "tokLen": 2 2288 // CHECK-NEXT: } 2289 // CHECK-NEXT: }, 2290 // CHECK-NEXT: "name": "Ty", 2291 // CHECK-NEXT: "tagUsed": "typename", 2292 // CHECK-NEXT: "depth": 0, 2293 // CHECK-NEXT: "index": 0 2294 // CHECK-NEXT: }, 2295 // CHECK-NEXT: { 2296 // CHECK-NEXT: "id": "0x{{.*}}", 2297 // CHECK-NEXT: "kind": "CXXRecordDecl", 2298 // CHECK-NEXT: "loc": { 2299 // CHECK-NEXT: "offset": 765, 2300 // CHECK-NEXT: "line": 49, 2301 // CHECK-NEXT: "col": 8, 2302 // CHECK-NEXT: "tokLen": 1 2303 // CHECK-NEXT: }, 2304 // CHECK-NEXT: "range": { 2305 // CHECK-NEXT: "begin": { 2306 // CHECK-NEXT: "offset": 758, 2307 // CHECK-NEXT: "col": 1, 2308 // CHECK-NEXT: "tokLen": 6 2309 // CHECK-NEXT: }, 2310 // CHECK-NEXT: "end": { 2311 // CHECK-NEXT: "offset": 806, 2312 // CHECK-NEXT: "line": 52, 2313 // CHECK-NEXT: "col": 1, 2314 // CHECK-NEXT: "tokLen": 1 2315 // CHECK-NEXT: } 2316 // CHECK-NEXT: }, 2317 // CHECK-NEXT: "name": "V", 2318 // CHECK-NEXT: "tagUsed": "struct", 2319 // CHECK-NEXT: "completeDefinition": true, 2320 // CHECK-NEXT: "definitionData": { 2321 // CHECK-NEXT: "canConstDefaultInit": true, 2322 // CHECK-NEXT: "copyAssign": { 2323 // CHECK-NEXT: "hasConstParam": true, 2324 // CHECK-NEXT: "implicitHasConstParam": true, 2325 // CHECK-NEXT: "needsImplicit": true, 2326 // CHECK-NEXT: "simple": true, 2327 // CHECK-NEXT: "trivial": true 2328 // CHECK-NEXT: }, 2329 // CHECK-NEXT: "copyCtor": { 2330 // CHECK-NEXT: "hasConstParam": true, 2331 // CHECK-NEXT: "implicitHasConstParam": true, 2332 // CHECK-NEXT: "needsImplicit": true, 2333 // CHECK-NEXT: "simple": true, 2334 // CHECK-NEXT: "trivial": true 2335 // CHECK-NEXT: }, 2336 // CHECK-NEXT: "defaultCtor": { 2337 // CHECK-NEXT: "defaultedIsConstexpr": true, 2338 // CHECK-NEXT: "exists": true, 2339 // CHECK-NEXT: "isConstexpr": true, 2340 // CHECK-NEXT: "needsImplicit": true, 2341 // CHECK-NEXT: "trivial": true 2342 // CHECK-NEXT: }, 2343 // CHECK-NEXT: "dtor": { 2344 // CHECK-NEXT: "irrelevant": true, 2345 // CHECK-NEXT: "needsImplicit": true, 2346 // CHECK-NEXT: "simple": true, 2347 // CHECK-NEXT: "trivial": true 2348 // CHECK-NEXT: }, 2349 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, 2350 // CHECK-NEXT: "isAggregate": true, 2351 // CHECK-NEXT: "isEmpty": true, 2352 // CHECK-NEXT: "isLiteral": true, 2353 // CHECK-NEXT: "isPOD": true, 2354 // CHECK-NEXT: "isStandardLayout": true, 2355 // CHECK-NEXT: "isTrivial": true, 2356 // CHECK-NEXT: "isTriviallyCopyable": true, 2357 // CHECK-NEXT: "moveAssign": { 2358 // CHECK-NEXT: "exists": true, 2359 // CHECK-NEXT: "needsImplicit": true, 2360 // CHECK-NEXT: "simple": true, 2361 // CHECK-NEXT: "trivial": true 2362 // CHECK-NEXT: }, 2363 // CHECK-NEXT: "moveCtor": { 2364 // CHECK-NEXT: "exists": true, 2365 // CHECK-NEXT: "needsImplicit": true, 2366 // CHECK-NEXT: "simple": true, 2367 // CHECK-NEXT: "trivial": true 2368 // CHECK-NEXT: } 2369 // CHECK-NEXT: }, 2370 // CHECK-NEXT: "inner": [ 2371 // CHECK-NEXT: { 2372 // CHECK-NEXT: "id": "0x{{.*}}", 2373 // CHECK-NEXT: "kind": "CXXRecordDecl", 2374 // CHECK-NEXT: "loc": { 2375 // CHECK-NEXT: "offset": 765, 2376 // CHECK-NEXT: "line": 49, 2377 // CHECK-NEXT: "col": 8, 2378 // CHECK-NEXT: "tokLen": 1 2379 // CHECK-NEXT: }, 2380 // CHECK-NEXT: "range": { 2381 // CHECK-NEXT: "begin": { 2382 // CHECK-NEXT: "offset": 758, 2383 // CHECK-NEXT: "col": 1, 2384 // CHECK-NEXT: "tokLen": 6 2385 // CHECK-NEXT: }, 2386 // CHECK-NEXT: "end": { 2387 // CHECK-NEXT: "offset": 765, 2388 // CHECK-NEXT: "col": 8, 2389 // CHECK-NEXT: "tokLen": 1 2390 // CHECK-NEXT: } 2391 // CHECK-NEXT: }, 2392 // CHECK-NEXT: "isImplicit": true, 2393 // CHECK-NEXT: "name": "V", 2394 // CHECK-NEXT: "tagUsed": "struct" 2395 // CHECK-NEXT: }, 2396 // CHECK-NEXT: { 2397 // CHECK-NEXT: "id": "0x{{.*}}", 2398 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 2399 // CHECK-NEXT: "loc": { 2400 // CHECK-NEXT: "offset": 801, 2401 // CHECK-NEXT: "line": 51, 2402 // CHECK-NEXT: "col": 8, 2403 // CHECK-NEXT: "tokLen": 1 2404 // CHECK-NEXT: }, 2405 // CHECK-NEXT: "range": { 2406 // CHECK-NEXT: "begin": { 2407 // CHECK-NEXT: "offset": 771, 2408 // CHECK-NEXT: "line": 50, 2409 // CHECK-NEXT: "col": 3, 2410 // CHECK-NEXT: "tokLen": 8 2411 // CHECK-NEXT: }, 2412 // CHECK-NEXT: "end": { 2413 // CHECK-NEXT: "offset": 803, 2414 // CHECK-NEXT: "line": 51, 2415 // CHECK-NEXT: "col": 10, 2416 // CHECK-NEXT: "tokLen": 1 2417 // CHECK-NEXT: } 2418 // CHECK-NEXT: }, 2419 // CHECK-NEXT: "name": "f", 2420 // CHECK-NEXT: "inner": [ 2421 // CHECK-NEXT: { 2422 // CHECK-NEXT: "id": "0x{{.*}}", 2423 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 2424 // CHECK-NEXT: "loc": { 2425 // CHECK-NEXT: "offset": 790, 2426 // CHECK-NEXT: "line": 50, 2427 // CHECK-NEXT: "col": 22, 2428 // CHECK-NEXT: "tokLen": 2 2429 // CHECK-NEXT: }, 2430 // CHECK-NEXT: "range": { 2431 // CHECK-NEXT: "begin": { 2432 // CHECK-NEXT: "offset": 781, 2433 // CHECK-NEXT: "col": 13, 2434 // CHECK-NEXT: "tokLen": 8 2435 // CHECK-NEXT: }, 2436 // CHECK-NEXT: "end": { 2437 // CHECK-NEXT: "offset": 790, 2438 // CHECK-NEXT: "col": 22, 2439 // CHECK-NEXT: "tokLen": 2 2440 // CHECK-NEXT: } 2441 // CHECK-NEXT: }, 2442 // CHECK-NEXT: "name": "Uy", 2443 // CHECK-NEXT: "tagUsed": "typename", 2444 // CHECK-NEXT: "depth": 1, 2445 // CHECK-NEXT: "index": 0 2446 // CHECK-NEXT: }, 2447 // CHECK-NEXT: { 2448 // CHECK-NEXT: "id": "0x{{.*}}", 2449 // CHECK-NEXT: "kind": "CXXMethodDecl", 2450 // CHECK-NEXT: "loc": { 2451 // CHECK-NEXT: "offset": 801, 2452 // CHECK-NEXT: "line": 51, 2453 // CHECK-NEXT: "col": 8, 2454 // CHECK-NEXT: "tokLen": 1 2455 // CHECK-NEXT: }, 2456 // CHECK-NEXT: "range": { 2457 // CHECK-NEXT: "begin": { 2458 // CHECK-NEXT: "offset": 796, 2459 // CHECK-NEXT: "col": 3, 2460 // CHECK-NEXT: "tokLen": 4 2461 // CHECK-NEXT: }, 2462 // CHECK-NEXT: "end": { 2463 // CHECK-NEXT: "offset": 803, 2464 // CHECK-NEXT: "col": 10, 2465 // CHECK-NEXT: "tokLen": 1 2466 // CHECK-NEXT: } 2467 // CHECK-NEXT: }, 2468 // CHECK-NEXT: "name": "f", 2469 // CHECK-NEXT: "type": { 2470 // CHECK-NEXT: "qualType": "void ()" 2471 // CHECK-NEXT: } 2472 // CHECK-NEXT: } 2473 // CHECK-NEXT: ] 2474 // CHECK-NEXT: } 2475 // CHECK-NEXT: ] 2476 // CHECK-NEXT: } 2477 // CHECK-NEXT: ] 2478 // CHECK-NEXT: }, 2479 // CHECK-NEXT: { 2480 // CHECK-NEXT: "id": "0x{{.*}}", 2481 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 2482 // CHECK-NEXT: "loc": { 2483 // CHECK-NEXT: "offset": 868, 2484 // CHECK-NEXT: "line": 56, 2485 // CHECK-NEXT: "col": 13, 2486 // CHECK-NEXT: "tokLen": 1 2487 // CHECK-NEXT: }, 2488 // CHECK-NEXT: "range": { 2489 // CHECK-NEXT: "begin": { 2490 // CHECK-NEXT: "offset": 833, 2491 // CHECK-NEXT: "line": 55, 2492 // CHECK-NEXT: "col": 1, 2493 // CHECK-NEXT: "tokLen": 8 2494 // CHECK-NEXT: }, 2495 // CHECK-NEXT: "end": { 2496 // CHECK-NEXT: "offset": 873, 2497 // CHECK-NEXT: "line": 56, 2498 // CHECK-NEXT: "col": 18, 2499 // CHECK-NEXT: "tokLen": 1 2500 // CHECK-NEXT: } 2501 // CHECK-NEXT: }, 2502 // CHECK-NEXT: "parentDeclContextId": "0x{{.*}}", 2503 // CHECK-NEXT: "previousDecl": "0x{{.*}}", 2504 // CHECK-NEXT: "name": "f", 2505 // CHECK-NEXT: "inner": [ 2506 // CHECK-NEXT: { 2507 // CHECK-NEXT: "id": "0x{{.*}}", 2508 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 2509 // CHECK-NEXT: "loc": { 2510 // CHECK-NEXT: "offset": 852, 2511 // CHECK-NEXT: "line": 55, 2512 // CHECK-NEXT: "col": 20, 2513 // CHECK-NEXT: "tokLen": 2 2514 // CHECK-NEXT: }, 2515 // CHECK-NEXT: "range": { 2516 // CHECK-NEXT: "begin": { 2517 // CHECK-NEXT: "offset": 843, 2518 // CHECK-NEXT: "col": 11, 2519 // CHECK-NEXT: "tokLen": 8 2520 // CHECK-NEXT: }, 2521 // CHECK-NEXT: "end": { 2522 // CHECK-NEXT: "offset": 852, 2523 // CHECK-NEXT: "col": 20, 2524 // CHECK-NEXT: "tokLen": 2 2525 // CHECK-NEXT: } 2526 // CHECK-NEXT: }, 2527 // CHECK-NEXT: "name": "Uy", 2528 // CHECK-NEXT: "tagUsed": "typename", 2529 // CHECK-NEXT: "depth": 1, 2530 // CHECK-NEXT: "index": 0 2531 // CHECK-NEXT: }, 2532 // CHECK-NEXT: { 2533 // CHECK-NEXT: "id": "0x{{.*}}", 2534 // CHECK-NEXT: "kind": "CXXMethodDecl", 2535 // CHECK-NEXT: "loc": { 2536 // CHECK-NEXT: "offset": 868, 2537 // CHECK-NEXT: "line": 56, 2538 // CHECK-NEXT: "col": 13, 2539 // CHECK-NEXT: "tokLen": 1 2540 // CHECK-NEXT: }, 2541 // CHECK-NEXT: "range": { 2542 // CHECK-NEXT: "begin": { 2543 // CHECK-NEXT: "offset": 810, 2544 // CHECK-NEXT: "line": 54, 2545 // CHECK-NEXT: "col": 1, 2546 // CHECK-NEXT: "tokLen": 8 2547 // CHECK-NEXT: }, 2548 // CHECK-NEXT: "end": { 2549 // CHECK-NEXT: "offset": 873, 2550 // CHECK-NEXT: "line": 56, 2551 // CHECK-NEXT: "col": 18, 2552 // CHECK-NEXT: "tokLen": 1 2553 // CHECK-NEXT: } 2554 // CHECK-NEXT: }, 2555 // CHECK-NEXT: "parentDeclContextId": "0x{{.*}}", 2556 // CHECK-NEXT: "previousDecl": "0x{{.*}}", 2557 // CHECK-NEXT: "name": "f", 2558 // CHECK-NEXT: "type": { 2559 // CHECK-NEXT: "qualType": "void ()" 2560 // CHECK-NEXT: }, 2561 // CHECK-NEXT: "inner": [ 2562 // CHECK-NEXT: { 2563 // CHECK-NEXT: "id": "0x{{.*}}", 2564 // CHECK-NEXT: "kind": "CompoundStmt", 2565 // CHECK-NEXT: "range": { 2566 // CHECK-NEXT: "begin": { 2567 // CHECK-NEXT: "offset": 872, 2568 // CHECK-NEXT: "col": 17, 2569 // CHECK-NEXT: "tokLen": 1 2570 // CHECK-NEXT: }, 2571 // CHECK-NEXT: "end": { 2572 // CHECK-NEXT: "offset": 873, 2573 // CHECK-NEXT: "col": 18, 2574 // CHECK-NEXT: "tokLen": 1 2575 // CHECK-NEXT: } 2576 // CHECK-NEXT: } 2577 // CHECK-NEXT: } 2578 // CHECK-NEXT: ] 2579 // CHECK-NEXT: } 2580 // CHECK-NEXT: ] 2581 // CHECK-NEXT: } 2582 // CHECK-NEXT: ] 2583 // CHECK-NEXT: } 2584