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: "type": { 592 // CHECK-NEXT: "qualType": "void (float)" 593 // CHECK-NEXT: }, 594 // CHECK-NEXT: "inner": [ 595 // CHECK-NEXT: { 596 // CHECK-NEXT: "kind": "TemplateArgument", 597 // CHECK-NEXT: "type": { 598 // CHECK-NEXT: "qualType": "float" 599 // CHECK-NEXT: } 600 // CHECK-NEXT: }, 601 // CHECK-NEXT: { 602 // CHECK-NEXT: "kind": "TemplateArgument", 603 // CHECK-NEXT: "type": { 604 // CHECK-NEXT: "qualType": "int" 605 // CHECK-NEXT: } 606 // CHECK-NEXT: }, 607 // CHECK-NEXT: { 608 // CHECK-NEXT: "id": "0x{{.*}}", 609 // CHECK-NEXT: "kind": "ParmVarDecl", 610 // CHECK-NEXT: "loc": { 611 // CHECK-NEXT: "offset": 274, 612 // CHECK-NEXT: "col": 25, 613 // CHECK-NEXT: "tokLen": 1 614 // CHECK-NEXT: }, 615 // CHECK-NEXT: "range": { 616 // CHECK-NEXT: "begin": { 617 // CHECK-NEXT: "offset": 269, 618 // CHECK-NEXT: "col": 20, 619 // CHECK-NEXT: "tokLen": 5 620 // CHECK-NEXT: }, 621 // CHECK-NEXT: "end": { 622 // CHECK-NEXT: "offset": 269, 623 // CHECK-NEXT: "col": 20, 624 // CHECK-NEXT: "tokLen": 5 625 // CHECK-NEXT: } 626 // CHECK-NEXT: }, 627 // CHECK-NEXT: "type": { 628 // CHECK-NEXT: "qualType": "float" 629 // CHECK-NEXT: } 630 // CHECK-NEXT: } 631 // CHECK-NEXT: ] 632 // CHECK-NEXT: }, 633 // CHECK-NEXT: { 634 // CHECK-NEXT: "id": "0x{{.*}}", 635 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 636 // CHECK-NEXT: "loc": { 637 // CHECK-NEXT: "offset": 338, 638 // CHECK-NEXT: "line": 16, 639 // CHECK-NEXT: "col": 6, 640 // CHECK-NEXT: "tokLen": 1 641 // CHECK-NEXT: }, 642 // CHECK-NEXT: "range": { 643 // CHECK-NEXT: "begin": { 644 // CHECK-NEXT: "offset": 278, 645 // CHECK-NEXT: "line": 15, 646 // CHECK-NEXT: "col": 1, 647 // CHECK-NEXT: "tokLen": 8 648 // CHECK-NEXT: }, 649 // CHECK-NEXT: "end": { 650 // CHECK-NEXT: "offset": 350, 651 // CHECK-NEXT: "line": 16, 652 // CHECK-NEXT: "col": 18, 653 // CHECK-NEXT: "tokLen": 1 654 // CHECK-NEXT: } 655 // CHECK-NEXT: }, 656 // CHECK-NEXT: "name": "d", 657 // CHECK-NEXT: "inner": [ 658 // CHECK-NEXT: { 659 // CHECK-NEXT: "id": "0x{{.*}}", 660 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 661 // CHECK-NEXT: "loc": { 662 // CHECK-NEXT: "offset": 297, 663 // CHECK-NEXT: "line": 15, 664 // CHECK-NEXT: "col": 20, 665 // CHECK-NEXT: "tokLen": 2 666 // CHECK-NEXT: }, 667 // CHECK-NEXT: "range": { 668 // CHECK-NEXT: "begin": { 669 // CHECK-NEXT: "offset": 288, 670 // CHECK-NEXT: "col": 11, 671 // CHECK-NEXT: "tokLen": 8 672 // CHECK-NEXT: }, 673 // CHECK-NEXT: "end": { 674 // CHECK-NEXT: "offset": 297, 675 // CHECK-NEXT: "col": 20, 676 // CHECK-NEXT: "tokLen": 2 677 // CHECK-NEXT: } 678 // CHECK-NEXT: }, 679 // CHECK-NEXT: "isReferenced": true, 680 // CHECK-NEXT: "name": "Ty", 681 // CHECK-NEXT: "tagUsed": "typename", 682 // CHECK-NEXT: "depth": 0, 683 // CHECK-NEXT: "index": 0 684 // CHECK-NEXT: }, 685 // CHECK-NEXT: { 686 // CHECK-NEXT: "id": "0x{{.*}}", 687 // CHECK-NEXT: "kind": "TemplateTemplateParmDecl", 688 // CHECK-NEXT: "loc": { 689 // CHECK-NEXT: "offset": 329, 690 // CHECK-NEXT: "col": 52, 691 // CHECK-NEXT: "tokLen": 2 692 // CHECK-NEXT: }, 693 // CHECK-NEXT: "range": { 694 // CHECK-NEXT: "begin": { 695 // CHECK-NEXT: "offset": 301, 696 // CHECK-NEXT: "col": 24, 697 // CHECK-NEXT: "tokLen": 8 698 // CHECK-NEXT: }, 699 // CHECK-NEXT: "end": { 700 // CHECK-NEXT: "offset": 329, 701 // CHECK-NEXT: "col": 52, 702 // CHECK-NEXT: "tokLen": 2 703 // CHECK-NEXT: } 704 // CHECK-NEXT: }, 705 // CHECK-NEXT: "name": "Uy", 706 // CHECK-NEXT: "depth": 0, 707 // CHECK-NEXT: "index": 1, 708 // CHECK-NEXT: "inner": [ 709 // CHECK-NEXT: { 710 // CHECK-NEXT: "id": "0x{{.*}}", 711 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 712 // CHECK-NEXT: "loc": { 713 // CHECK-NEXT: "offset": 318, 714 // CHECK-NEXT: "col": 41, 715 // CHECK-NEXT: "tokLen": 1 716 // CHECK-NEXT: }, 717 // CHECK-NEXT: "range": { 718 // CHECK-NEXT: "begin": { 719 // CHECK-NEXT: "offset": 310, 720 // CHECK-NEXT: "col": 33, 721 // CHECK-NEXT: "tokLen": 8 722 // CHECK-NEXT: }, 723 // CHECK-NEXT: "end": { 724 // CHECK-NEXT: "offset": 310, 725 // CHECK-NEXT: "col": 33, 726 // CHECK-NEXT: "tokLen": 8 727 // CHECK-NEXT: } 728 // CHECK-NEXT: }, 729 // CHECK-NEXT: "tagUsed": "typename", 730 // CHECK-NEXT: "depth": 1, 731 // CHECK-NEXT: "index": 0 732 // CHECK-NEXT: } 733 // CHECK-NEXT: ] 734 // CHECK-NEXT: }, 735 // CHECK-NEXT: { 736 // CHECK-NEXT: "id": "0x{{.*}}", 737 // CHECK-NEXT: "kind": "FunctionDecl", 738 // CHECK-NEXT: "loc": { 739 // CHECK-NEXT: "offset": 338, 740 // CHECK-NEXT: "line": 16, 741 // CHECK-NEXT: "col": 6, 742 // CHECK-NEXT: "tokLen": 1 743 // CHECK-NEXT: }, 744 // CHECK-NEXT: "range": { 745 // CHECK-NEXT: "begin": { 746 // CHECK-NEXT: "offset": 333, 747 // CHECK-NEXT: "col": 1, 748 // CHECK-NEXT: "tokLen": 4 749 // CHECK-NEXT: }, 750 // CHECK-NEXT: "end": { 751 // CHECK-NEXT: "offset": 350, 752 // CHECK-NEXT: "col": 18, 753 // CHECK-NEXT: "tokLen": 1 754 // CHECK-NEXT: } 755 // CHECK-NEXT: }, 756 // CHECK-NEXT: "name": "d", 757 // CHECK-NEXT: "type": { 758 // CHECK-NEXT: "qualType": "void (Ty, Uy<Ty>)" 759 // CHECK-NEXT: }, 760 // CHECK-NEXT: "inner": [ 761 // CHECK-NEXT: { 762 // CHECK-NEXT: "id": "0x{{.*}}", 763 // CHECK-NEXT: "kind": "ParmVarDecl", 764 // CHECK-NEXT: "loc": { 765 // CHECK-NEXT: "offset": 342, 766 // CHECK-NEXT: "col": 10, 767 // CHECK-NEXT: "tokLen": 1 768 // CHECK-NEXT: }, 769 // CHECK-NEXT: "range": { 770 // CHECK-NEXT: "begin": { 771 // CHECK-NEXT: "offset": 340, 772 // CHECK-NEXT: "col": 8, 773 // CHECK-NEXT: "tokLen": 2 774 // CHECK-NEXT: }, 775 // CHECK-NEXT: "end": { 776 // CHECK-NEXT: "offset": 340, 777 // CHECK-NEXT: "col": 8, 778 // CHECK-NEXT: "tokLen": 2 779 // CHECK-NEXT: } 780 // CHECK-NEXT: }, 781 // CHECK-NEXT: "type": { 782 // CHECK-NEXT: "qualType": "Ty" 783 // CHECK-NEXT: } 784 // CHECK-NEXT: }, 785 // CHECK-NEXT: { 786 // CHECK-NEXT: "id": "0x{{.*}}", 787 // CHECK-NEXT: "kind": "ParmVarDecl", 788 // CHECK-NEXT: "loc": { 789 // CHECK-NEXT: "offset": 350, 790 // CHECK-NEXT: "col": 18, 791 // CHECK-NEXT: "tokLen": 1 792 // CHECK-NEXT: }, 793 // CHECK-NEXT: "range": { 794 // CHECK-NEXT: "begin": { 795 // CHECK-NEXT: "offset": 344, 796 // CHECK-NEXT: "col": 12, 797 // CHECK-NEXT: "tokLen": 2 798 // CHECK-NEXT: }, 799 // CHECK-NEXT: "end": { 800 // CHECK-NEXT: "offset": 349, 801 // CHECK-NEXT: "col": 17, 802 // CHECK-NEXT: "tokLen": 1 803 // CHECK-NEXT: } 804 // CHECK-NEXT: }, 805 // CHECK-NEXT: "type": { 806 // CHECK-NEXT: "qualType": "Uy<Ty>" 807 // CHECK-NEXT: } 808 // CHECK-NEXT: } 809 // CHECK-NEXT: ] 810 // CHECK-NEXT: } 811 // CHECK-NEXT: ] 812 // CHECK-NEXT: }, 813 // CHECK-NEXT: { 814 // CHECK-NEXT: "id": "0x{{.*}}", 815 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 816 // CHECK-NEXT: "loc": { 817 // CHECK-NEXT: "offset": 379, 818 // CHECK-NEXT: "line": 19, 819 // CHECK-NEXT: "col": 6, 820 // CHECK-NEXT: "tokLen": 1 821 // CHECK-NEXT: }, 822 // CHECK-NEXT: "range": { 823 // CHECK-NEXT: "begin": { 824 // CHECK-NEXT: "offset": 354, 825 // CHECK-NEXT: "line": 18, 826 // CHECK-NEXT: "col": 1, 827 // CHECK-NEXT: "tokLen": 8 828 // CHECK-NEXT: }, 829 // CHECK-NEXT: "end": { 830 // CHECK-NEXT: "offset": 383, 831 // CHECK-NEXT: "line": 19, 832 // CHECK-NEXT: "col": 10, 833 // CHECK-NEXT: "tokLen": 1 834 // CHECK-NEXT: } 835 // CHECK-NEXT: }, 836 // CHECK-NEXT: "name": "e", 837 // CHECK-NEXT: "inner": [ 838 // CHECK-NEXT: { 839 // CHECK-NEXT: "id": "0x{{.*}}", 840 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 841 // CHECK-NEXT: "loc": { 842 // CHECK-NEXT: "offset": 370, 843 // CHECK-NEXT: "line": 18, 844 // CHECK-NEXT: "col": 17, 845 // CHECK-NEXT: "tokLen": 2 846 // CHECK-NEXT: }, 847 // CHECK-NEXT: "range": { 848 // CHECK-NEXT: "begin": { 849 // CHECK-NEXT: "offset": 364, 850 // CHECK-NEXT: "col": 11, 851 // CHECK-NEXT: "tokLen": 5 852 // CHECK-NEXT: }, 853 // CHECK-NEXT: "end": { 854 // CHECK-NEXT: "offset": 370, 855 // CHECK-NEXT: "col": 17, 856 // CHECK-NEXT: "tokLen": 2 857 // CHECK-NEXT: } 858 // CHECK-NEXT: }, 859 // CHECK-NEXT: "isReferenced": true, 860 // CHECK-NEXT: "name": "Ty", 861 // CHECK-NEXT: "tagUsed": "class", 862 // CHECK-NEXT: "depth": 0, 863 // CHECK-NEXT: "index": 0 864 // CHECK-NEXT: }, 865 // CHECK-NEXT: { 866 // CHECK-NEXT: "id": "0x{{.*}}", 867 // CHECK-NEXT: "kind": "FunctionDecl", 868 // CHECK-NEXT: "loc": { 869 // CHECK-NEXT: "offset": 379, 870 // CHECK-NEXT: "line": 19, 871 // CHECK-NEXT: "col": 6, 872 // CHECK-NEXT: "tokLen": 1 873 // CHECK-NEXT: }, 874 // CHECK-NEXT: "range": { 875 // CHECK-NEXT: "begin": { 876 // CHECK-NEXT: "offset": 374, 877 // CHECK-NEXT: "col": 1, 878 // CHECK-NEXT: "tokLen": 4 879 // CHECK-NEXT: }, 880 // CHECK-NEXT: "end": { 881 // CHECK-NEXT: "offset": 383, 882 // CHECK-NEXT: "col": 10, 883 // CHECK-NEXT: "tokLen": 1 884 // CHECK-NEXT: } 885 // CHECK-NEXT: }, 886 // CHECK-NEXT: "name": "e", 887 // CHECK-NEXT: "type": { 888 // CHECK-NEXT: "qualType": "void (Ty)" 889 // CHECK-NEXT: }, 890 // CHECK-NEXT: "inner": [ 891 // CHECK-NEXT: { 892 // CHECK-NEXT: "id": "0x{{.*}}", 893 // CHECK-NEXT: "kind": "ParmVarDecl", 894 // CHECK-NEXT: "loc": { 895 // CHECK-NEXT: "offset": 383, 896 // CHECK-NEXT: "col": 10, 897 // CHECK-NEXT: "tokLen": 1 898 // CHECK-NEXT: }, 899 // CHECK-NEXT: "range": { 900 // CHECK-NEXT: "begin": { 901 // CHECK-NEXT: "offset": 381, 902 // CHECK-NEXT: "col": 8, 903 // CHECK-NEXT: "tokLen": 2 904 // CHECK-NEXT: }, 905 // CHECK-NEXT: "end": { 906 // CHECK-NEXT: "offset": 381, 907 // CHECK-NEXT: "col": 8, 908 // CHECK-NEXT: "tokLen": 2 909 // CHECK-NEXT: } 910 // CHECK-NEXT: }, 911 // CHECK-NEXT: "type": { 912 // CHECK-NEXT: "qualType": "Ty" 913 // CHECK-NEXT: } 914 // CHECK-NEXT: } 915 // CHECK-NEXT: ] 916 // CHECK-NEXT: } 917 // CHECK-NEXT: ] 918 // CHECK-NEXT: }, 919 // CHECK-NEXT: { 920 // CHECK-NEXT: "id": "0x{{.*}}", 921 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 922 // CHECK-NEXT: "loc": { 923 // CHECK-NEXT: "offset": 409, 924 // CHECK-NEXT: "line": 22, 925 // CHECK-NEXT: "col": 6, 926 // CHECK-NEXT: "tokLen": 1 927 // CHECK-NEXT: }, 928 // CHECK-NEXT: "range": { 929 // CHECK-NEXT: "begin": { 930 // CHECK-NEXT: "offset": 387, 931 // CHECK-NEXT: "line": 21, 932 // CHECK-NEXT: "col": 1, 933 // CHECK-NEXT: "tokLen": 8 934 // CHECK-NEXT: }, 935 // CHECK-NEXT: "end": { 936 // CHECK-NEXT: "offset": 420, 937 // CHECK-NEXT: "line": 22, 938 // CHECK-NEXT: "col": 17, 939 // CHECK-NEXT: "tokLen": 1 940 // CHECK-NEXT: } 941 // CHECK-NEXT: }, 942 // CHECK-NEXT: "name": "f", 943 // CHECK-NEXT: "inner": [ 944 // CHECK-NEXT: { 945 // CHECK-NEXT: "id": "0x{{.*}}", 946 // CHECK-NEXT: "kind": "NonTypeTemplateParmDecl", 947 // CHECK-NEXT: "loc": { 948 // CHECK-NEXT: "offset": 401, 949 // CHECK-NEXT: "line": 21, 950 // CHECK-NEXT: "col": 15, 951 // CHECK-NEXT: "tokLen": 1 952 // CHECK-NEXT: }, 953 // CHECK-NEXT: "range": { 954 // CHECK-NEXT: "begin": { 955 // CHECK-NEXT: "offset": 397, 956 // CHECK-NEXT: "col": 11, 957 // CHECK-NEXT: "tokLen": 3 958 // CHECK-NEXT: }, 959 // CHECK-NEXT: "end": { 960 // CHECK-NEXT: "offset": 401, 961 // CHECK-NEXT: "col": 15, 962 // CHECK-NEXT: "tokLen": 1 963 // CHECK-NEXT: } 964 // CHECK-NEXT: }, 965 // CHECK-NEXT: "isReferenced": true, 966 // CHECK-NEXT: "name": "N", 967 // CHECK-NEXT: "type": { 968 // CHECK-NEXT: "qualType": "int" 969 // CHECK-NEXT: }, 970 // CHECK-NEXT: "depth": 0, 971 // CHECK-NEXT: "index": 0 972 // CHECK-NEXT: }, 973 // CHECK-NEXT: { 974 // CHECK-NEXT: "id": "0x{{.*}}", 975 // CHECK-NEXT: "kind": "FunctionDecl", 976 // CHECK-NEXT: "loc": { 977 // CHECK-NEXT: "offset": 409, 978 // CHECK-NEXT: "line": 22, 979 // CHECK-NEXT: "col": 6, 980 // CHECK-NEXT: "tokLen": 1 981 // CHECK-NEXT: }, 982 // CHECK-NEXT: "range": { 983 // CHECK-NEXT: "begin": { 984 // CHECK-NEXT: "offset": 404, 985 // CHECK-NEXT: "col": 1, 986 // CHECK-NEXT: "tokLen": 4 987 // CHECK-NEXT: }, 988 // CHECK-NEXT: "end": { 989 // CHECK-NEXT: "offset": 420, 990 // CHECK-NEXT: "col": 17, 991 // CHECK-NEXT: "tokLen": 1 992 // CHECK-NEXT: } 993 // CHECK-NEXT: }, 994 // CHECK-NEXT: "name": "f", 995 // CHECK-NEXT: "type": { 996 // CHECK-NEXT: "qualType": "void (int)" 997 // CHECK-NEXT: }, 998 // CHECK-NEXT: "inner": [ 999 // CHECK-NEXT: { 1000 // CHECK-NEXT: "id": "0x{{.*}}", 1001 // CHECK-NEXT: "kind": "ParmVarDecl", 1002 // CHECK-NEXT: "loc": { 1003 // CHECK-NEXT: "offset": 415, 1004 // CHECK-NEXT: "col": 12, 1005 // CHECK-NEXT: "tokLen": 1 1006 // CHECK-NEXT: }, 1007 // CHECK-NEXT: "range": { 1008 // CHECK-NEXT: "begin": { 1009 // CHECK-NEXT: "offset": 411, 1010 // CHECK-NEXT: "col": 8, 1011 // CHECK-NEXT: "tokLen": 3 1012 // CHECK-NEXT: }, 1013 // CHECK-NEXT: "end": { 1014 // CHECK-NEXT: "offset": 419, 1015 // CHECK-NEXT: "col": 16, 1016 // CHECK-NEXT: "tokLen": 1 1017 // CHECK-NEXT: } 1018 // CHECK-NEXT: }, 1019 // CHECK-NEXT: "name": "i", 1020 // CHECK-NEXT: "type": { 1021 // CHECK-NEXT: "qualType": "int" 1022 // CHECK-NEXT: }, 1023 // CHECK-NEXT: "init": "c", 1024 // CHECK-NEXT: "inner": [ 1025 // CHECK-NEXT: { 1026 // CHECK-NEXT: "id": "0x{{.*}}", 1027 // CHECK-NEXT: "kind": "DeclRefExpr", 1028 // CHECK-NEXT: "range": { 1029 // CHECK-NEXT: "begin": { 1030 // CHECK-NEXT: "offset": 419, 1031 // CHECK-NEXT: "col": 16, 1032 // CHECK-NEXT: "tokLen": 1 1033 // CHECK-NEXT: }, 1034 // CHECK-NEXT: "end": { 1035 // CHECK-NEXT: "offset": 419, 1036 // CHECK-NEXT: "col": 16, 1037 // CHECK-NEXT: "tokLen": 1 1038 // CHECK-NEXT: } 1039 // CHECK-NEXT: }, 1040 // CHECK-NEXT: "type": { 1041 // CHECK-NEXT: "qualType": "int" 1042 // CHECK-NEXT: }, 1043 // CHECK-NEXT: "valueCategory": "rvalue", 1044 // CHECK-NEXT: "referencedDecl": { 1045 // CHECK-NEXT: "id": "0x{{.*}}", 1046 // CHECK-NEXT: "kind": "NonTypeTemplateParmDecl", 1047 // CHECK-NEXT: "name": "N", 1048 // CHECK-NEXT: "type": { 1049 // CHECK-NEXT: "qualType": "int" 1050 // CHECK-NEXT: } 1051 // CHECK-NEXT: } 1052 // CHECK-NEXT: } 1053 // CHECK-NEXT: ] 1054 // CHECK-NEXT: } 1055 // CHECK-NEXT: ] 1056 // CHECK-NEXT: } 1057 // CHECK-NEXT: ] 1058 // CHECK-NEXT: }, 1059 // CHECK-NEXT: { 1060 // CHECK-NEXT: "id": "0x{{.*}}", 1061 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 1062 // CHECK-NEXT: "loc": { 1063 // CHECK-NEXT: "offset": 458, 1064 // CHECK-NEXT: "line": 25, 1065 // CHECK-NEXT: "col": 6, 1066 // CHECK-NEXT: "tokLen": 1 1067 // CHECK-NEXT: }, 1068 // CHECK-NEXT: "range": { 1069 // CHECK-NEXT: "begin": { 1070 // CHECK-NEXT: "offset": 424, 1071 // CHECK-NEXT: "line": 24, 1072 // CHECK-NEXT: "col": 1, 1073 // CHECK-NEXT: "tokLen": 8 1074 // CHECK-NEXT: }, 1075 // CHECK-NEXT: "end": { 1076 // CHECK-NEXT: "offset": 462, 1077 // CHECK-NEXT: "line": 25, 1078 // CHECK-NEXT: "col": 10, 1079 // CHECK-NEXT: "tokLen": 1 1080 // CHECK-NEXT: } 1081 // CHECK-NEXT: }, 1082 // CHECK-NEXT: "name": "g", 1083 // CHECK-NEXT: "inner": [ 1084 // CHECK-NEXT: { 1085 // CHECK-NEXT: "id": "0x{{.*}}", 1086 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 1087 // CHECK-NEXT: "loc": { 1088 // CHECK-NEXT: "offset": 443, 1089 // CHECK-NEXT: "line": 24, 1090 // CHECK-NEXT: "col": 20, 1091 // CHECK-NEXT: "tokLen": 2 1092 // CHECK-NEXT: }, 1093 // CHECK-NEXT: "range": { 1094 // CHECK-NEXT: "begin": { 1095 // CHECK-NEXT: "offset": 434, 1096 // CHECK-NEXT: "col": 11, 1097 // CHECK-NEXT: "tokLen": 8 1098 // CHECK-NEXT: }, 1099 // CHECK-NEXT: "end": { 1100 // CHECK-NEXT: "offset": 448, 1101 // CHECK-NEXT: "col": 25, 1102 // CHECK-NEXT: "tokLen": 3 1103 // CHECK-NEXT: } 1104 // CHECK-NEXT: }, 1105 // CHECK-NEXT: "isReferenced": true, 1106 // CHECK-NEXT: "name": "Ty", 1107 // CHECK-NEXT: "tagUsed": "typename", 1108 // CHECK-NEXT: "depth": 0, 1109 // CHECK-NEXT: "index": 0, 1110 // CHECK-NEXT: "defaultArg": { 1111 // CHECK-NEXT: "kind": "TemplateArgument", 1112 // CHECK-NEXT: "type": { 1113 // CHECK-NEXT: "qualType": "int" 1114 // CHECK-NEXT: } 1115 // CHECK-NEXT: }, 1116 // CHECK-NEXT: "inner": [ 1117 // CHECK-NEXT: { 1118 // CHECK-NEXT: "kind": "TemplateArgument", 1119 // CHECK-NEXT: "type": { 1120 // CHECK-NEXT: "qualType": "int" 1121 // CHECK-NEXT: } 1122 // CHECK-NEXT: } 1123 // CHECK-NEXT: ] 1124 // CHECK-NEXT: }, 1125 // CHECK-NEXT: { 1126 // CHECK-NEXT: "id": "0x{{.*}}", 1127 // CHECK-NEXT: "kind": "FunctionDecl", 1128 // CHECK-NEXT: "loc": { 1129 // CHECK-NEXT: "offset": 458, 1130 // CHECK-NEXT: "line": 25, 1131 // CHECK-NEXT: "col": 6, 1132 // CHECK-NEXT: "tokLen": 1 1133 // CHECK-NEXT: }, 1134 // CHECK-NEXT: "range": { 1135 // CHECK-NEXT: "begin": { 1136 // CHECK-NEXT: "offset": 453, 1137 // CHECK-NEXT: "col": 1, 1138 // CHECK-NEXT: "tokLen": 4 1139 // CHECK-NEXT: }, 1140 // CHECK-NEXT: "end": { 1141 // CHECK-NEXT: "offset": 462, 1142 // CHECK-NEXT: "col": 10, 1143 // CHECK-NEXT: "tokLen": 1 1144 // CHECK-NEXT: } 1145 // CHECK-NEXT: }, 1146 // CHECK-NEXT: "name": "g", 1147 // CHECK-NEXT: "type": { 1148 // CHECK-NEXT: "qualType": "void (Ty)" 1149 // CHECK-NEXT: }, 1150 // CHECK-NEXT: "inner": [ 1151 // CHECK-NEXT: { 1152 // CHECK-NEXT: "id": "0x{{.*}}", 1153 // CHECK-NEXT: "kind": "ParmVarDecl", 1154 // CHECK-NEXT: "loc": { 1155 // CHECK-NEXT: "offset": 462, 1156 // CHECK-NEXT: "col": 10, 1157 // CHECK-NEXT: "tokLen": 1 1158 // CHECK-NEXT: }, 1159 // CHECK-NEXT: "range": { 1160 // CHECK-NEXT: "begin": { 1161 // CHECK-NEXT: "offset": 460, 1162 // CHECK-NEXT: "col": 8, 1163 // CHECK-NEXT: "tokLen": 2 1164 // CHECK-NEXT: }, 1165 // CHECK-NEXT: "end": { 1166 // CHECK-NEXT: "offset": 460, 1167 // CHECK-NEXT: "col": 8, 1168 // CHECK-NEXT: "tokLen": 2 1169 // CHECK-NEXT: } 1170 // CHECK-NEXT: }, 1171 // CHECK-NEXT: "type": { 1172 // CHECK-NEXT: "qualType": "Ty" 1173 // CHECK-NEXT: } 1174 // CHECK-NEXT: } 1175 // CHECK-NEXT: ] 1176 // CHECK-NEXT: } 1177 // CHECK-NEXT: ] 1178 // CHECK-NEXT: }, 1179 // CHECK-NEXT: { 1180 // CHECK-NEXT: "id": "0x{{.*}}", 1181 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 1182 // CHECK-NEXT: "loc": { 1183 // CHECK-NEXT: "offset": 498, 1184 // CHECK-NEXT: "line": 28, 1185 // CHECK-NEXT: "col": 6, 1186 // CHECK-NEXT: "tokLen": 1 1187 // CHECK-NEXT: }, 1188 // CHECK-NEXT: "range": { 1189 // CHECK-NEXT: "begin": { 1190 // CHECK-NEXT: "offset": 466, 1191 // CHECK-NEXT: "line": 27, 1192 // CHECK-NEXT: "col": 1, 1193 // CHECK-NEXT: "tokLen": 8 1194 // CHECK-NEXT: }, 1195 // CHECK-NEXT: "end": { 1196 // CHECK-NEXT: "offset": 500, 1197 // CHECK-NEXT: "line": 28, 1198 // CHECK-NEXT: "col": 8, 1199 // CHECK-NEXT: "tokLen": 1 1200 // CHECK-NEXT: } 1201 // CHECK-NEXT: }, 1202 // CHECK-NEXT: "name": "h", 1203 // CHECK-NEXT: "inner": [ 1204 // CHECK-NEXT: { 1205 // CHECK-NEXT: "id": "0x{{.*}}", 1206 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 1207 // CHECK-NEXT: "loc": { 1208 // CHECK-NEXT: "offset": 485, 1209 // CHECK-NEXT: "line": 27, 1210 // CHECK-NEXT: "col": 20, 1211 // CHECK-NEXT: "tokLen": 1 1212 // CHECK-NEXT: }, 1213 // CHECK-NEXT: "range": { 1214 // CHECK-NEXT: "begin": { 1215 // CHECK-NEXT: "offset": 476, 1216 // CHECK-NEXT: "col": 11, 1217 // CHECK-NEXT: "tokLen": 8 1218 // CHECK-NEXT: }, 1219 // CHECK-NEXT: "end": { 1220 // CHECK-NEXT: "offset": 487, 1221 // CHECK-NEXT: "col": 22, 1222 // CHECK-NEXT: "tokLen": 4 1223 // CHECK-NEXT: } 1224 // CHECK-NEXT: }, 1225 // CHECK-NEXT: "tagUsed": "typename", 1226 // CHECK-NEXT: "depth": 0, 1227 // CHECK-NEXT: "index": 0, 1228 // CHECK-NEXT: "defaultArg": { 1229 // CHECK-NEXT: "kind": "TemplateArgument", 1230 // CHECK-NEXT: "type": { 1231 // CHECK-NEXT: "qualType": "void" 1232 // CHECK-NEXT: } 1233 // CHECK-NEXT: }, 1234 // CHECK-NEXT: "inner": [ 1235 // CHECK-NEXT: { 1236 // CHECK-NEXT: "kind": "TemplateArgument", 1237 // CHECK-NEXT: "type": { 1238 // CHECK-NEXT: "qualType": "void" 1239 // CHECK-NEXT: } 1240 // CHECK-NEXT: } 1241 // CHECK-NEXT: ] 1242 // CHECK-NEXT: }, 1243 // CHECK-NEXT: { 1244 // CHECK-NEXT: "id": "0x{{.*}}", 1245 // CHECK-NEXT: "kind": "FunctionDecl", 1246 // CHECK-NEXT: "loc": { 1247 // CHECK-NEXT: "offset": 498, 1248 // CHECK-NEXT: "line": 28, 1249 // CHECK-NEXT: "col": 6, 1250 // CHECK-NEXT: "tokLen": 1 1251 // CHECK-NEXT: }, 1252 // CHECK-NEXT: "range": { 1253 // CHECK-NEXT: "begin": { 1254 // CHECK-NEXT: "offset": 493, 1255 // CHECK-NEXT: "col": 1, 1256 // CHECK-NEXT: "tokLen": 4 1257 // CHECK-NEXT: }, 1258 // CHECK-NEXT: "end": { 1259 // CHECK-NEXT: "offset": 500, 1260 // CHECK-NEXT: "col": 8, 1261 // CHECK-NEXT: "tokLen": 1 1262 // CHECK-NEXT: } 1263 // CHECK-NEXT: }, 1264 // CHECK-NEXT: "name": "h", 1265 // CHECK-NEXT: "type": { 1266 // CHECK-NEXT: "qualType": "void ()" 1267 // CHECK-NEXT: } 1268 // CHECK-NEXT: } 1269 // CHECK-NEXT: ] 1270 // CHECK-NEXT: }, 1271 // CHECK-NEXT: { 1272 // CHECK-NEXT: "id": "0x{{.*}}", 1273 // CHECK-NEXT: "kind": "ClassTemplateDecl", 1274 // CHECK-NEXT: "loc": { 1275 // CHECK-NEXT: "offset": 534, 1276 // CHECK-NEXT: "line": 31, 1277 // CHECK-NEXT: "col": 8, 1278 // CHECK-NEXT: "tokLen": 1 1279 // CHECK-NEXT: }, 1280 // CHECK-NEXT: "range": { 1281 // CHECK-NEXT: "begin": { 1282 // CHECK-NEXT: "offset": 504, 1283 // CHECK-NEXT: "line": 30, 1284 // CHECK-NEXT: "col": 1, 1285 // CHECK-NEXT: "tokLen": 8 1286 // CHECK-NEXT: }, 1287 // CHECK-NEXT: "end": { 1288 // CHECK-NEXT: "offset": 537, 1289 // CHECK-NEXT: "line": 31, 1290 // CHECK-NEXT: "col": 11, 1291 // CHECK-NEXT: "tokLen": 1 1292 // CHECK-NEXT: } 1293 // CHECK-NEXT: }, 1294 // CHECK-NEXT: "name": "R", 1295 // CHECK-NEXT: "inner": [ 1296 // CHECK-NEXT: { 1297 // CHECK-NEXT: "id": "0x{{.*}}", 1298 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 1299 // CHECK-NEXT: "loc": { 1300 // CHECK-NEXT: "offset": 523, 1301 // CHECK-NEXT: "line": 30, 1302 // CHECK-NEXT: "col": 20, 1303 // CHECK-NEXT: "tokLen": 2 1304 // CHECK-NEXT: }, 1305 // CHECK-NEXT: "range": { 1306 // CHECK-NEXT: "begin": { 1307 // CHECK-NEXT: "offset": 514, 1308 // CHECK-NEXT: "col": 11, 1309 // CHECK-NEXT: "tokLen": 8 1310 // CHECK-NEXT: }, 1311 // CHECK-NEXT: "end": { 1312 // CHECK-NEXT: "offset": 523, 1313 // CHECK-NEXT: "col": 20, 1314 // CHECK-NEXT: "tokLen": 2 1315 // CHECK-NEXT: } 1316 // CHECK-NEXT: }, 1317 // CHECK-NEXT: "name": "Ty", 1318 // CHECK-NEXT: "tagUsed": "typename", 1319 // CHECK-NEXT: "depth": 0, 1320 // CHECK-NEXT: "index": 0 1321 // CHECK-NEXT: }, 1322 // CHECK-NEXT: { 1323 // CHECK-NEXT: "id": "0x{{.*}}", 1324 // CHECK-NEXT: "kind": "CXXRecordDecl", 1325 // CHECK-NEXT: "loc": { 1326 // CHECK-NEXT: "offset": 534, 1327 // CHECK-NEXT: "line": 31, 1328 // CHECK-NEXT: "col": 8, 1329 // CHECK-NEXT: "tokLen": 1 1330 // CHECK-NEXT: }, 1331 // CHECK-NEXT: "range": { 1332 // CHECK-NEXT: "begin": { 1333 // CHECK-NEXT: "offset": 527, 1334 // CHECK-NEXT: "col": 1, 1335 // CHECK-NEXT: "tokLen": 6 1336 // CHECK-NEXT: }, 1337 // CHECK-NEXT: "end": { 1338 // CHECK-NEXT: "offset": 537, 1339 // CHECK-NEXT: "col": 11, 1340 // CHECK-NEXT: "tokLen": 1 1341 // CHECK-NEXT: } 1342 // CHECK-NEXT: }, 1343 // CHECK-NEXT: "name": "R", 1344 // CHECK-NEXT: "tagUsed": "struct", 1345 // CHECK-NEXT: "completeDefinition": true, 1346 // CHECK-NEXT: "definitionData": { 1347 // CHECK-NEXT: "canConstDefaultInit": true, 1348 // CHECK-NEXT: "copyAssign": { 1349 // CHECK-NEXT: "hasConstParam": true, 1350 // CHECK-NEXT: "implicitHasConstParam": true, 1351 // CHECK-NEXT: "needsImplicit": true, 1352 // CHECK-NEXT: "trivial": true 1353 // CHECK-NEXT: }, 1354 // CHECK-NEXT: "copyCtor": { 1355 // CHECK-NEXT: "hasConstParam": true, 1356 // CHECK-NEXT: "implicitHasConstParam": true, 1357 // CHECK-NEXT: "needsImplicit": true, 1358 // CHECK-NEXT: "simple": true, 1359 // CHECK-NEXT: "trivial": true 1360 // CHECK-NEXT: }, 1361 // CHECK-NEXT: "defaultCtor": { 1362 // CHECK-NEXT: "defaultedIsConstexpr": true, 1363 // CHECK-NEXT: "exists": true, 1364 // CHECK-NEXT: "isConstexpr": true, 1365 // CHECK-NEXT: "needsImplicit": true, 1366 // CHECK-NEXT: "trivial": true 1367 // CHECK-NEXT: }, 1368 // CHECK-NEXT: "dtor": { 1369 // CHECK-NEXT: "irrelevant": true, 1370 // CHECK-NEXT: "needsImplicit": true, 1371 // CHECK-NEXT: "simple": true, 1372 // CHECK-NEXT: "trivial": true 1373 // CHECK-NEXT: }, 1374 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, 1375 // CHECK-NEXT: "isAggregate": true, 1376 // CHECK-NEXT: "isEmpty": true, 1377 // CHECK-NEXT: "isLiteral": true, 1378 // CHECK-NEXT: "isPOD": true, 1379 // CHECK-NEXT: "isStandardLayout": true, 1380 // CHECK-NEXT: "isTrivial": true, 1381 // CHECK-NEXT: "isTriviallyCopyable": true, 1382 // CHECK-NEXT: "moveAssign": { 1383 // CHECK-NEXT: "exists": true, 1384 // CHECK-NEXT: "needsImplicit": true, 1385 // CHECK-NEXT: "simple": true, 1386 // CHECK-NEXT: "trivial": true 1387 // CHECK-NEXT: }, 1388 // CHECK-NEXT: "moveCtor": { 1389 // CHECK-NEXT: "exists": true, 1390 // CHECK-NEXT: "needsImplicit": true, 1391 // CHECK-NEXT: "simple": true, 1392 // CHECK-NEXT: "trivial": true 1393 // CHECK-NEXT: } 1394 // CHECK-NEXT: }, 1395 // CHECK-NEXT: "inner": [ 1396 // CHECK-NEXT: { 1397 // CHECK-NEXT: "id": "0x{{.*}}", 1398 // CHECK-NEXT: "kind": "CXXRecordDecl", 1399 // CHECK-NEXT: "loc": { 1400 // CHECK-NEXT: "offset": 534, 1401 // CHECK-NEXT: "col": 8, 1402 // CHECK-NEXT: "tokLen": 1 1403 // CHECK-NEXT: }, 1404 // CHECK-NEXT: "range": { 1405 // CHECK-NEXT: "begin": { 1406 // CHECK-NEXT: "offset": 527, 1407 // CHECK-NEXT: "col": 1, 1408 // CHECK-NEXT: "tokLen": 6 1409 // CHECK-NEXT: }, 1410 // CHECK-NEXT: "end": { 1411 // CHECK-NEXT: "offset": 534, 1412 // CHECK-NEXT: "col": 8, 1413 // CHECK-NEXT: "tokLen": 1 1414 // CHECK-NEXT: } 1415 // CHECK-NEXT: }, 1416 // CHECK-NEXT: "isImplicit": true, 1417 // CHECK-NEXT: "name": "R", 1418 // CHECK-NEXT: "tagUsed": "struct" 1419 // CHECK-NEXT: } 1420 // CHECK-NEXT: ] 1421 // CHECK-NEXT: }, 1422 // CHECK-NEXT: { 1423 // CHECK-NEXT: "id": "0x{{.*}}", 1424 // CHECK-NEXT: "kind": "ClassTemplateSpecializationDecl", 1425 // CHECK-NEXT: "name": "R" 1426 // CHECK-NEXT: } 1427 // CHECK-NEXT: ] 1428 // CHECK-NEXT: }, 1429 // CHECK-NEXT: { 1430 // CHECK-NEXT: "id": "0x{{.*}}", 1431 // CHECK-NEXT: "kind": "ClassTemplateSpecializationDecl", 1432 // CHECK-NEXT: "loc": { 1433 // CHECK-NEXT: "offset": 560, 1434 // CHECK-NEXT: "line": 34, 1435 // CHECK-NEXT: "col": 8, 1436 // CHECK-NEXT: "tokLen": 1 1437 // CHECK-NEXT: }, 1438 // CHECK-NEXT: "range": { 1439 // CHECK-NEXT: "begin": { 1440 // CHECK-NEXT: "offset": 541, 1441 // CHECK-NEXT: "line": 33, 1442 // CHECK-NEXT: "col": 1, 1443 // CHECK-NEXT: "tokLen": 8 1444 // CHECK-NEXT: }, 1445 // CHECK-NEXT: "end": { 1446 // CHECK-NEXT: "offset": 568, 1447 // CHECK-NEXT: "line": 34, 1448 // CHECK-NEXT: "col": 16, 1449 // CHECK-NEXT: "tokLen": 1 1450 // CHECK-NEXT: } 1451 // CHECK-NEXT: }, 1452 // CHECK-NEXT: "name": "R", 1453 // CHECK-NEXT: "tagUsed": "struct", 1454 // CHECK-NEXT: "completeDefinition": true, 1455 // CHECK-NEXT: "definitionData": { 1456 // CHECK-NEXT: "canConstDefaultInit": true, 1457 // CHECK-NEXT: "canPassInRegisters": true, 1458 // CHECK-NEXT: "copyAssign": { 1459 // CHECK-NEXT: "hasConstParam": true, 1460 // CHECK-NEXT: "implicitHasConstParam": true, 1461 // CHECK-NEXT: "needsImplicit": true, 1462 // CHECK-NEXT: "trivial": true 1463 // CHECK-NEXT: }, 1464 // CHECK-NEXT: "copyCtor": { 1465 // CHECK-NEXT: "hasConstParam": true, 1466 // CHECK-NEXT: "implicitHasConstParam": true, 1467 // CHECK-NEXT: "needsImplicit": true, 1468 // CHECK-NEXT: "simple": true, 1469 // CHECK-NEXT: "trivial": true 1470 // CHECK-NEXT: }, 1471 // CHECK-NEXT: "defaultCtor": { 1472 // CHECK-NEXT: "defaultedIsConstexpr": true, 1473 // CHECK-NEXT: "exists": true, 1474 // CHECK-NEXT: "isConstexpr": true, 1475 // CHECK-NEXT: "needsImplicit": true, 1476 // CHECK-NEXT: "trivial": true 1477 // CHECK-NEXT: }, 1478 // CHECK-NEXT: "dtor": { 1479 // CHECK-NEXT: "irrelevant": true, 1480 // CHECK-NEXT: "needsImplicit": true, 1481 // CHECK-NEXT: "simple": true, 1482 // CHECK-NEXT: "trivial": true 1483 // CHECK-NEXT: }, 1484 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, 1485 // CHECK-NEXT: "isAggregate": true, 1486 // CHECK-NEXT: "isEmpty": true, 1487 // CHECK-NEXT: "isLiteral": true, 1488 // CHECK-NEXT: "isPOD": true, 1489 // CHECK-NEXT: "isStandardLayout": true, 1490 // CHECK-NEXT: "isTrivial": true, 1491 // CHECK-NEXT: "isTriviallyCopyable": true, 1492 // CHECK-NEXT: "moveAssign": { 1493 // CHECK-NEXT: "exists": true, 1494 // CHECK-NEXT: "needsImplicit": true, 1495 // CHECK-NEXT: "simple": true, 1496 // CHECK-NEXT: "trivial": true 1497 // CHECK-NEXT: }, 1498 // CHECK-NEXT: "moveCtor": { 1499 // CHECK-NEXT: "exists": true, 1500 // CHECK-NEXT: "needsImplicit": true, 1501 // CHECK-NEXT: "simple": true, 1502 // CHECK-NEXT: "trivial": true 1503 // CHECK-NEXT: } 1504 // CHECK-NEXT: }, 1505 // CHECK-NEXT: "inner": [ 1506 // CHECK-NEXT: { 1507 // CHECK-NEXT: "kind": "TemplateArgument", 1508 // CHECK-NEXT: "type": { 1509 // CHECK-NEXT: "qualType": "int" 1510 // CHECK-NEXT: } 1511 // CHECK-NEXT: }, 1512 // CHECK-NEXT: { 1513 // CHECK-NEXT: "id": "0x{{.*}}", 1514 // CHECK-NEXT: "kind": "CXXRecordDecl", 1515 // CHECK-NEXT: "loc": { 1516 // CHECK-NEXT: "offset": 560, 1517 // CHECK-NEXT: "col": 8, 1518 // CHECK-NEXT: "tokLen": 1 1519 // CHECK-NEXT: }, 1520 // CHECK-NEXT: "range": { 1521 // CHECK-NEXT: "begin": { 1522 // CHECK-NEXT: "offset": 553, 1523 // CHECK-NEXT: "col": 1, 1524 // CHECK-NEXT: "tokLen": 6 1525 // CHECK-NEXT: }, 1526 // CHECK-NEXT: "end": { 1527 // CHECK-NEXT: "offset": 560, 1528 // CHECK-NEXT: "col": 8, 1529 // CHECK-NEXT: "tokLen": 1 1530 // CHECK-NEXT: } 1531 // CHECK-NEXT: }, 1532 // CHECK-NEXT: "isImplicit": true, 1533 // CHECK-NEXT: "name": "R", 1534 // CHECK-NEXT: "tagUsed": "struct" 1535 // CHECK-NEXT: } 1536 // CHECK-NEXT: ] 1537 // CHECK-NEXT: }, 1538 // CHECK-NEXT: { 1539 // CHECK-NEXT: "id": "0x{{.*}}", 1540 // CHECK-NEXT: "kind": "ClassTemplateDecl", 1541 // CHECK-NEXT: "loc": { 1542 // CHECK-NEXT: "offset": 612, 1543 // CHECK-NEXT: "line": 37, 1544 // CHECK-NEXT: "col": 8, 1545 // CHECK-NEXT: "tokLen": 1 1546 // CHECK-NEXT: }, 1547 // CHECK-NEXT: "range": { 1548 // CHECK-NEXT: "begin": { 1549 // CHECK-NEXT: "offset": 572, 1550 // CHECK-NEXT: "line": 36, 1551 // CHECK-NEXT: "col": 1, 1552 // CHECK-NEXT: "tokLen": 8 1553 // CHECK-NEXT: }, 1554 // CHECK-NEXT: "end": { 1555 // CHECK-NEXT: "offset": 615, 1556 // CHECK-NEXT: "line": 37, 1557 // CHECK-NEXT: "col": 11, 1558 // CHECK-NEXT: "tokLen": 1 1559 // CHECK-NEXT: } 1560 // CHECK-NEXT: }, 1561 // CHECK-NEXT: "name": "S", 1562 // CHECK-NEXT: "inner": [ 1563 // CHECK-NEXT: { 1564 // CHECK-NEXT: "id": "0x{{.*}}", 1565 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 1566 // CHECK-NEXT: "loc": { 1567 // CHECK-NEXT: "offset": 591, 1568 // CHECK-NEXT: "line": 36, 1569 // CHECK-NEXT: "col": 20, 1570 // CHECK-NEXT: "tokLen": 2 1571 // CHECK-NEXT: }, 1572 // CHECK-NEXT: "range": { 1573 // CHECK-NEXT: "begin": { 1574 // CHECK-NEXT: "offset": 582, 1575 // CHECK-NEXT: "col": 11, 1576 // CHECK-NEXT: "tokLen": 8 1577 // CHECK-NEXT: }, 1578 // CHECK-NEXT: "end": { 1579 // CHECK-NEXT: "offset": 591, 1580 // CHECK-NEXT: "col": 20, 1581 // CHECK-NEXT: "tokLen": 2 1582 // CHECK-NEXT: } 1583 // CHECK-NEXT: }, 1584 // CHECK-NEXT: "name": "Ty", 1585 // CHECK-NEXT: "tagUsed": "typename", 1586 // CHECK-NEXT: "depth": 0, 1587 // CHECK-NEXT: "index": 0 1588 // CHECK-NEXT: }, 1589 // CHECK-NEXT: { 1590 // CHECK-NEXT: "id": "0x{{.*}}", 1591 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 1592 // CHECK-NEXT: "loc": { 1593 // CHECK-NEXT: "offset": 601, 1594 // CHECK-NEXT: "col": 30, 1595 // CHECK-NEXT: "tokLen": 2 1596 // CHECK-NEXT: }, 1597 // CHECK-NEXT: "range": { 1598 // CHECK-NEXT: "begin": { 1599 // CHECK-NEXT: "offset": 595, 1600 // CHECK-NEXT: "col": 24, 1601 // CHECK-NEXT: "tokLen": 5 1602 // CHECK-NEXT: }, 1603 // CHECK-NEXT: "end": { 1604 // CHECK-NEXT: "offset": 601, 1605 // CHECK-NEXT: "col": 30, 1606 // CHECK-NEXT: "tokLen": 2 1607 // CHECK-NEXT: } 1608 // CHECK-NEXT: }, 1609 // CHECK-NEXT: "name": "Uy", 1610 // CHECK-NEXT: "tagUsed": "class", 1611 // CHECK-NEXT: "depth": 0, 1612 // CHECK-NEXT: "index": 1 1613 // CHECK-NEXT: }, 1614 // CHECK-NEXT: { 1615 // CHECK-NEXT: "id": "0x{{.*}}", 1616 // CHECK-NEXT: "kind": "CXXRecordDecl", 1617 // CHECK-NEXT: "loc": { 1618 // CHECK-NEXT: "offset": 612, 1619 // CHECK-NEXT: "line": 37, 1620 // CHECK-NEXT: "col": 8, 1621 // CHECK-NEXT: "tokLen": 1 1622 // CHECK-NEXT: }, 1623 // CHECK-NEXT: "range": { 1624 // CHECK-NEXT: "begin": { 1625 // CHECK-NEXT: "offset": 605, 1626 // CHECK-NEXT: "col": 1, 1627 // CHECK-NEXT: "tokLen": 6 1628 // CHECK-NEXT: }, 1629 // CHECK-NEXT: "end": { 1630 // CHECK-NEXT: "offset": 615, 1631 // CHECK-NEXT: "col": 11, 1632 // CHECK-NEXT: "tokLen": 1 1633 // CHECK-NEXT: } 1634 // CHECK-NEXT: }, 1635 // CHECK-NEXT: "name": "S", 1636 // CHECK-NEXT: "tagUsed": "struct", 1637 // CHECK-NEXT: "completeDefinition": true, 1638 // CHECK-NEXT: "definitionData": { 1639 // CHECK-NEXT: "canConstDefaultInit": true, 1640 // CHECK-NEXT: "copyAssign": { 1641 // CHECK-NEXT: "hasConstParam": true, 1642 // CHECK-NEXT: "implicitHasConstParam": true, 1643 // CHECK-NEXT: "needsImplicit": true, 1644 // CHECK-NEXT: "trivial": true 1645 // CHECK-NEXT: }, 1646 // CHECK-NEXT: "copyCtor": { 1647 // CHECK-NEXT: "hasConstParam": true, 1648 // CHECK-NEXT: "implicitHasConstParam": true, 1649 // CHECK-NEXT: "needsImplicit": true, 1650 // CHECK-NEXT: "simple": true, 1651 // CHECK-NEXT: "trivial": true 1652 // CHECK-NEXT: }, 1653 // CHECK-NEXT: "defaultCtor": { 1654 // CHECK-NEXT: "defaultedIsConstexpr": true, 1655 // CHECK-NEXT: "exists": true, 1656 // CHECK-NEXT: "isConstexpr": true, 1657 // CHECK-NEXT: "needsImplicit": true, 1658 // CHECK-NEXT: "trivial": true 1659 // CHECK-NEXT: }, 1660 // CHECK-NEXT: "dtor": { 1661 // CHECK-NEXT: "irrelevant": true, 1662 // CHECK-NEXT: "needsImplicit": true, 1663 // CHECK-NEXT: "simple": true, 1664 // CHECK-NEXT: "trivial": true 1665 // CHECK-NEXT: }, 1666 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, 1667 // CHECK-NEXT: "isAggregate": true, 1668 // CHECK-NEXT: "isEmpty": true, 1669 // CHECK-NEXT: "isLiteral": true, 1670 // CHECK-NEXT: "isPOD": true, 1671 // CHECK-NEXT: "isStandardLayout": true, 1672 // CHECK-NEXT: "isTrivial": true, 1673 // CHECK-NEXT: "isTriviallyCopyable": true, 1674 // CHECK-NEXT: "moveAssign": { 1675 // CHECK-NEXT: "exists": true, 1676 // CHECK-NEXT: "needsImplicit": true, 1677 // CHECK-NEXT: "simple": true, 1678 // CHECK-NEXT: "trivial": true 1679 // CHECK-NEXT: }, 1680 // CHECK-NEXT: "moveCtor": { 1681 // CHECK-NEXT: "exists": true, 1682 // CHECK-NEXT: "needsImplicit": true, 1683 // CHECK-NEXT: "simple": true, 1684 // CHECK-NEXT: "trivial": true 1685 // CHECK-NEXT: } 1686 // CHECK-NEXT: }, 1687 // CHECK-NEXT: "inner": [ 1688 // CHECK-NEXT: { 1689 // CHECK-NEXT: "id": "0x{{.*}}", 1690 // CHECK-NEXT: "kind": "CXXRecordDecl", 1691 // CHECK-NEXT: "loc": { 1692 // CHECK-NEXT: "offset": 612, 1693 // CHECK-NEXT: "col": 8, 1694 // CHECK-NEXT: "tokLen": 1 1695 // CHECK-NEXT: }, 1696 // CHECK-NEXT: "range": { 1697 // CHECK-NEXT: "begin": { 1698 // CHECK-NEXT: "offset": 605, 1699 // CHECK-NEXT: "col": 1, 1700 // CHECK-NEXT: "tokLen": 6 1701 // CHECK-NEXT: }, 1702 // CHECK-NEXT: "end": { 1703 // CHECK-NEXT: "offset": 612, 1704 // CHECK-NEXT: "col": 8, 1705 // CHECK-NEXT: "tokLen": 1 1706 // CHECK-NEXT: } 1707 // CHECK-NEXT: }, 1708 // CHECK-NEXT: "isImplicit": true, 1709 // CHECK-NEXT: "name": "S", 1710 // CHECK-NEXT: "tagUsed": "struct" 1711 // CHECK-NEXT: } 1712 // CHECK-NEXT: ] 1713 // CHECK-NEXT: } 1714 // CHECK-NEXT: ] 1715 // CHECK-NEXT: }, 1716 // CHECK-NEXT: { 1717 // CHECK-NEXT: "id": "0x{{.*}}", 1718 // CHECK-NEXT: "kind": "ClassTemplatePartialSpecializationDecl", 1719 // CHECK-NEXT: "loc": { 1720 // CHECK-NEXT: "offset": 649, 1721 // CHECK-NEXT: "line": 40, 1722 // CHECK-NEXT: "col": 8, 1723 // CHECK-NEXT: "tokLen": 1 1724 // CHECK-NEXT: }, 1725 // CHECK-NEXT: "range": { 1726 // CHECK-NEXT: "begin": { 1727 // CHECK-NEXT: "offset": 619, 1728 // CHECK-NEXT: "line": 39, 1729 // CHECK-NEXT: "col": 1, 1730 // CHECK-NEXT: "tokLen": 8 1731 // CHECK-NEXT: }, 1732 // CHECK-NEXT: "end": { 1733 // CHECK-NEXT: "offset": 661, 1734 // CHECK-NEXT: "line": 40, 1735 // CHECK-NEXT: "col": 20, 1736 // CHECK-NEXT: "tokLen": 1 1737 // CHECK-NEXT: } 1738 // CHECK-NEXT: }, 1739 // CHECK-NEXT: "name": "S", 1740 // CHECK-NEXT: "tagUsed": "struct", 1741 // CHECK-NEXT: "completeDefinition": true, 1742 // CHECK-NEXT: "definitionData": { 1743 // CHECK-NEXT: "canConstDefaultInit": true, 1744 // CHECK-NEXT: "copyAssign": { 1745 // CHECK-NEXT: "hasConstParam": true, 1746 // CHECK-NEXT: "implicitHasConstParam": true, 1747 // CHECK-NEXT: "needsImplicit": true, 1748 // CHECK-NEXT: "trivial": true 1749 // CHECK-NEXT: }, 1750 // CHECK-NEXT: "copyCtor": { 1751 // CHECK-NEXT: "hasConstParam": true, 1752 // CHECK-NEXT: "implicitHasConstParam": true, 1753 // CHECK-NEXT: "needsImplicit": true, 1754 // CHECK-NEXT: "simple": true, 1755 // CHECK-NEXT: "trivial": true 1756 // CHECK-NEXT: }, 1757 // CHECK-NEXT: "defaultCtor": { 1758 // CHECK-NEXT: "defaultedIsConstexpr": true, 1759 // CHECK-NEXT: "exists": true, 1760 // CHECK-NEXT: "isConstexpr": true, 1761 // CHECK-NEXT: "needsImplicit": true, 1762 // CHECK-NEXT: "trivial": true 1763 // CHECK-NEXT: }, 1764 // CHECK-NEXT: "dtor": { 1765 // CHECK-NEXT: "irrelevant": true, 1766 // CHECK-NEXT: "needsImplicit": true, 1767 // CHECK-NEXT: "simple": true, 1768 // CHECK-NEXT: "trivial": true 1769 // CHECK-NEXT: }, 1770 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, 1771 // CHECK-NEXT: "isAggregate": true, 1772 // CHECK-NEXT: "isEmpty": true, 1773 // CHECK-NEXT: "isLiteral": true, 1774 // CHECK-NEXT: "isPOD": true, 1775 // CHECK-NEXT: "isStandardLayout": true, 1776 // CHECK-NEXT: "isTrivial": true, 1777 // CHECK-NEXT: "isTriviallyCopyable": true, 1778 // CHECK-NEXT: "moveAssign": { 1779 // CHECK-NEXT: "exists": true, 1780 // CHECK-NEXT: "needsImplicit": true, 1781 // CHECK-NEXT: "simple": true, 1782 // CHECK-NEXT: "trivial": true 1783 // CHECK-NEXT: }, 1784 // CHECK-NEXT: "moveCtor": { 1785 // CHECK-NEXT: "exists": true, 1786 // CHECK-NEXT: "needsImplicit": true, 1787 // CHECK-NEXT: "simple": true, 1788 // CHECK-NEXT: "trivial": true 1789 // CHECK-NEXT: } 1790 // CHECK-NEXT: }, 1791 // CHECK-NEXT: "inner": [ 1792 // CHECK-NEXT: { 1793 // CHECK-NEXT: "kind": "TemplateArgument", 1794 // CHECK-NEXT: "type": { 1795 // CHECK-NEXT: "qualType": "type-parameter-0-0" 1796 // CHECK-NEXT: } 1797 // CHECK-NEXT: }, 1798 // CHECK-NEXT: { 1799 // CHECK-NEXT: "kind": "TemplateArgument", 1800 // CHECK-NEXT: "type": { 1801 // CHECK-NEXT: "qualType": "int" 1802 // CHECK-NEXT: } 1803 // CHECK-NEXT: }, 1804 // CHECK-NEXT: { 1805 // CHECK-NEXT: "id": "0x{{.*}}", 1806 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 1807 // CHECK-NEXT: "loc": { 1808 // CHECK-NEXT: "offset": 638, 1809 // CHECK-NEXT: "line": 39, 1810 // CHECK-NEXT: "col": 20, 1811 // CHECK-NEXT: "tokLen": 2 1812 // CHECK-NEXT: }, 1813 // CHECK-NEXT: "range": { 1814 // CHECK-NEXT: "begin": { 1815 // CHECK-NEXT: "offset": 629, 1816 // CHECK-NEXT: "col": 11, 1817 // CHECK-NEXT: "tokLen": 8 1818 // CHECK-NEXT: }, 1819 // CHECK-NEXT: "end": { 1820 // CHECK-NEXT: "offset": 638, 1821 // CHECK-NEXT: "col": 20, 1822 // CHECK-NEXT: "tokLen": 2 1823 // CHECK-NEXT: } 1824 // CHECK-NEXT: }, 1825 // CHECK-NEXT: "isReferenced": true, 1826 // CHECK-NEXT: "name": "Ty", 1827 // CHECK-NEXT: "tagUsed": "typename", 1828 // CHECK-NEXT: "depth": 0, 1829 // CHECK-NEXT: "index": 0 1830 // CHECK-NEXT: }, 1831 // CHECK-NEXT: { 1832 // CHECK-NEXT: "id": "0x{{.*}}", 1833 // CHECK-NEXT: "kind": "CXXRecordDecl", 1834 // CHECK-NEXT: "loc": { 1835 // CHECK-NEXT: "offset": 649, 1836 // CHECK-NEXT: "line": 40, 1837 // CHECK-NEXT: "col": 8, 1838 // CHECK-NEXT: "tokLen": 1 1839 // CHECK-NEXT: }, 1840 // CHECK-NEXT: "range": { 1841 // CHECK-NEXT: "begin": { 1842 // CHECK-NEXT: "offset": 642, 1843 // CHECK-NEXT: "col": 1, 1844 // CHECK-NEXT: "tokLen": 6 1845 // CHECK-NEXT: }, 1846 // CHECK-NEXT: "end": { 1847 // CHECK-NEXT: "offset": 649, 1848 // CHECK-NEXT: "col": 8, 1849 // CHECK-NEXT: "tokLen": 1 1850 // CHECK-NEXT: } 1851 // CHECK-NEXT: }, 1852 // CHECK-NEXT: "isImplicit": true, 1853 // CHECK-NEXT: "name": "S", 1854 // CHECK-NEXT: "tagUsed": "struct" 1855 // CHECK-NEXT: } 1856 // CHECK-NEXT: ] 1857 // CHECK-NEXT: }, 1858 // CHECK-NEXT: { 1859 // CHECK-NEXT: "id": "0x{{.*}}", 1860 // CHECK-NEXT: "kind": "ClassTemplateDecl", 1861 // CHECK-NEXT: "loc": { 1862 // CHECK-NEXT: "offset": 688, 1863 // CHECK-NEXT: "line": 43, 1864 // CHECK-NEXT: "col": 8, 1865 // CHECK-NEXT: "tokLen": 1 1866 // CHECK-NEXT: }, 1867 // CHECK-NEXT: "range": { 1868 // CHECK-NEXT: "begin": { 1869 // CHECK-NEXT: "offset": 665, 1870 // CHECK-NEXT: "line": 42, 1871 // CHECK-NEXT: "col": 1, 1872 // CHECK-NEXT: "tokLen": 8 1873 // CHECK-NEXT: }, 1874 // CHECK-NEXT: "end": { 1875 // CHECK-NEXT: "offset": 691, 1876 // CHECK-NEXT: "line": 43, 1877 // CHECK-NEXT: "col": 11, 1878 // CHECK-NEXT: "tokLen": 1 1879 // CHECK-NEXT: } 1880 // CHECK-NEXT: }, 1881 // CHECK-NEXT: "name": "T", 1882 // CHECK-NEXT: "inner": [ 1883 // CHECK-NEXT: { 1884 // CHECK-NEXT: "id": "0x{{.*}}", 1885 // CHECK-NEXT: "kind": "NonTypeTemplateParmDecl", 1886 // CHECK-NEXT: "loc": { 1887 // CHECK-NEXT: "offset": 679, 1888 // CHECK-NEXT: "line": 42, 1889 // CHECK-NEXT: "col": 15, 1890 // CHECK-NEXT: "tokLen": 1 1891 // CHECK-NEXT: }, 1892 // CHECK-NEXT: "range": { 1893 // CHECK-NEXT: "begin": { 1894 // CHECK-NEXT: "offset": 675, 1895 // CHECK-NEXT: "col": 11, 1896 // CHECK-NEXT: "tokLen": 4 1897 // CHECK-NEXT: }, 1898 // CHECK-NEXT: "end": { 1899 // CHECK-NEXT: "offset": 675, 1900 // CHECK-NEXT: "col": 11, 1901 // CHECK-NEXT: "tokLen": 4 1902 // CHECK-NEXT: } 1903 // CHECK-NEXT: }, 1904 // CHECK-NEXT: "type": { 1905 // CHECK-NEXT: "qualType": "auto" 1906 // CHECK-NEXT: }, 1907 // CHECK-NEXT: "depth": 0, 1908 // CHECK-NEXT: "index": 0 1909 // CHECK-NEXT: }, 1910 // CHECK-NEXT: { 1911 // CHECK-NEXT: "id": "0x{{.*}}", 1912 // CHECK-NEXT: "kind": "CXXRecordDecl", 1913 // CHECK-NEXT: "loc": { 1914 // CHECK-NEXT: "offset": 688, 1915 // CHECK-NEXT: "line": 43, 1916 // CHECK-NEXT: "col": 8, 1917 // CHECK-NEXT: "tokLen": 1 1918 // CHECK-NEXT: }, 1919 // CHECK-NEXT: "range": { 1920 // CHECK-NEXT: "begin": { 1921 // CHECK-NEXT: "offset": 681, 1922 // CHECK-NEXT: "col": 1, 1923 // CHECK-NEXT: "tokLen": 6 1924 // CHECK-NEXT: }, 1925 // CHECK-NEXT: "end": { 1926 // CHECK-NEXT: "offset": 691, 1927 // CHECK-NEXT: "col": 11, 1928 // CHECK-NEXT: "tokLen": 1 1929 // CHECK-NEXT: } 1930 // CHECK-NEXT: }, 1931 // CHECK-NEXT: "name": "T", 1932 // CHECK-NEXT: "tagUsed": "struct", 1933 // CHECK-NEXT: "completeDefinition": true, 1934 // CHECK-NEXT: "definitionData": { 1935 // CHECK-NEXT: "canConstDefaultInit": true, 1936 // CHECK-NEXT: "copyAssign": { 1937 // CHECK-NEXT: "hasConstParam": true, 1938 // CHECK-NEXT: "implicitHasConstParam": true, 1939 // CHECK-NEXT: "needsImplicit": true, 1940 // CHECK-NEXT: "trivial": true 1941 // CHECK-NEXT: }, 1942 // CHECK-NEXT: "copyCtor": { 1943 // CHECK-NEXT: "hasConstParam": true, 1944 // CHECK-NEXT: "implicitHasConstParam": true, 1945 // CHECK-NEXT: "needsImplicit": true, 1946 // CHECK-NEXT: "simple": true, 1947 // CHECK-NEXT: "trivial": true 1948 // CHECK-NEXT: }, 1949 // CHECK-NEXT: "defaultCtor": { 1950 // CHECK-NEXT: "defaultedIsConstexpr": true, 1951 // CHECK-NEXT: "exists": true, 1952 // CHECK-NEXT: "isConstexpr": true, 1953 // CHECK-NEXT: "needsImplicit": true, 1954 // CHECK-NEXT: "trivial": true 1955 // CHECK-NEXT: }, 1956 // CHECK-NEXT: "dtor": { 1957 // CHECK-NEXT: "irrelevant": true, 1958 // CHECK-NEXT: "needsImplicit": true, 1959 // CHECK-NEXT: "simple": true, 1960 // CHECK-NEXT: "trivial": true 1961 // CHECK-NEXT: }, 1962 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, 1963 // CHECK-NEXT: "isAggregate": true, 1964 // CHECK-NEXT: "isEmpty": true, 1965 // CHECK-NEXT: "isLiteral": true, 1966 // CHECK-NEXT: "isPOD": true, 1967 // CHECK-NEXT: "isStandardLayout": true, 1968 // CHECK-NEXT: "isTrivial": true, 1969 // CHECK-NEXT: "isTriviallyCopyable": true, 1970 // CHECK-NEXT: "moveAssign": { 1971 // CHECK-NEXT: "exists": true, 1972 // CHECK-NEXT: "needsImplicit": true, 1973 // CHECK-NEXT: "simple": true, 1974 // CHECK-NEXT: "trivial": true 1975 // CHECK-NEXT: }, 1976 // CHECK-NEXT: "moveCtor": { 1977 // CHECK-NEXT: "exists": true, 1978 // CHECK-NEXT: "needsImplicit": true, 1979 // CHECK-NEXT: "simple": true, 1980 // CHECK-NEXT: "trivial": true 1981 // CHECK-NEXT: } 1982 // CHECK-NEXT: }, 1983 // CHECK-NEXT: "inner": [ 1984 // CHECK-NEXT: { 1985 // CHECK-NEXT: "id": "0x{{.*}}", 1986 // CHECK-NEXT: "kind": "CXXRecordDecl", 1987 // CHECK-NEXT: "loc": { 1988 // CHECK-NEXT: "offset": 688, 1989 // CHECK-NEXT: "col": 8, 1990 // CHECK-NEXT: "tokLen": 1 1991 // CHECK-NEXT: }, 1992 // CHECK-NEXT: "range": { 1993 // CHECK-NEXT: "begin": { 1994 // CHECK-NEXT: "offset": 681, 1995 // CHECK-NEXT: "col": 1, 1996 // CHECK-NEXT: "tokLen": 6 1997 // CHECK-NEXT: }, 1998 // CHECK-NEXT: "end": { 1999 // CHECK-NEXT: "offset": 688, 2000 // CHECK-NEXT: "col": 8, 2001 // CHECK-NEXT: "tokLen": 1 2002 // CHECK-NEXT: } 2003 // CHECK-NEXT: }, 2004 // CHECK-NEXT: "isImplicit": true, 2005 // CHECK-NEXT: "name": "T", 2006 // CHECK-NEXT: "tagUsed": "struct" 2007 // CHECK-NEXT: } 2008 // CHECK-NEXT: ] 2009 // CHECK-NEXT: } 2010 // CHECK-NEXT: ] 2011 // CHECK-NEXT: }, 2012 // CHECK-NEXT: { 2013 // CHECK-NEXT: "id": "0x{{.*}}", 2014 // CHECK-NEXT: "kind": "ClassTemplateDecl", 2015 // CHECK-NEXT: "loc": { 2016 // CHECK-NEXT: "offset": 728, 2017 // CHECK-NEXT: "line": 46, 2018 // CHECK-NEXT: "col": 8, 2019 // CHECK-NEXT: "tokLen": 1 2020 // CHECK-NEXT: }, 2021 // CHECK-NEXT: "range": { 2022 // CHECK-NEXT: "begin": { 2023 // CHECK-NEXT: "offset": 695, 2024 // CHECK-NEXT: "line": 45, 2025 // CHECK-NEXT: "col": 1, 2026 // CHECK-NEXT: "tokLen": 8 2027 // CHECK-NEXT: }, 2028 // CHECK-NEXT: "end": { 2029 // CHECK-NEXT: "offset": 731, 2030 // CHECK-NEXT: "line": 46, 2031 // CHECK-NEXT: "col": 11, 2032 // CHECK-NEXT: "tokLen": 1 2033 // CHECK-NEXT: } 2034 // CHECK-NEXT: }, 2035 // CHECK-NEXT: "name": "U", 2036 // CHECK-NEXT: "inner": [ 2037 // CHECK-NEXT: { 2038 // CHECK-NEXT: "id": "0x{{.*}}", 2039 // CHECK-NEXT: "kind": "NonTypeTemplateParmDecl", 2040 // CHECK-NEXT: "loc": { 2041 // CHECK-NEXT: "offset": 719, 2042 // CHECK-NEXT: "line": 45, 2043 // CHECK-NEXT: "col": 25, 2044 // CHECK-NEXT: "tokLen": 1 2045 // CHECK-NEXT: }, 2046 // CHECK-NEXT: "range": { 2047 // CHECK-NEXT: "begin": { 2048 // CHECK-NEXT: "offset": 705, 2049 // CHECK-NEXT: "col": 11, 2050 // CHECK-NEXT: "tokLen": 8 2051 // CHECK-NEXT: }, 2052 // CHECK-NEXT: "end": { 2053 // CHECK-NEXT: "offset": 705, 2054 // CHECK-NEXT: "col": 11, 2055 // CHECK-NEXT: "tokLen": 8 2056 // CHECK-NEXT: } 2057 // CHECK-NEXT: }, 2058 // CHECK-NEXT: "type": { 2059 // CHECK-NEXT: "qualType": "decltype(auto)" 2060 // CHECK-NEXT: }, 2061 // CHECK-NEXT: "depth": 0, 2062 // CHECK-NEXT: "index": 0 2063 // CHECK-NEXT: }, 2064 // CHECK-NEXT: { 2065 // CHECK-NEXT: "id": "0x{{.*}}", 2066 // CHECK-NEXT: "kind": "CXXRecordDecl", 2067 // CHECK-NEXT: "loc": { 2068 // CHECK-NEXT: "offset": 728, 2069 // CHECK-NEXT: "line": 46, 2070 // CHECK-NEXT: "col": 8, 2071 // CHECK-NEXT: "tokLen": 1 2072 // CHECK-NEXT: }, 2073 // CHECK-NEXT: "range": { 2074 // CHECK-NEXT: "begin": { 2075 // CHECK-NEXT: "offset": 721, 2076 // CHECK-NEXT: "col": 1, 2077 // CHECK-NEXT: "tokLen": 6 2078 // CHECK-NEXT: }, 2079 // CHECK-NEXT: "end": { 2080 // CHECK-NEXT: "offset": 731, 2081 // CHECK-NEXT: "col": 11, 2082 // CHECK-NEXT: "tokLen": 1 2083 // CHECK-NEXT: } 2084 // CHECK-NEXT: }, 2085 // CHECK-NEXT: "name": "U", 2086 // CHECK-NEXT: "tagUsed": "struct", 2087 // CHECK-NEXT: "completeDefinition": true, 2088 // CHECK-NEXT: "definitionData": { 2089 // CHECK-NEXT: "canConstDefaultInit": true, 2090 // CHECK-NEXT: "copyAssign": { 2091 // CHECK-NEXT: "hasConstParam": true, 2092 // CHECK-NEXT: "implicitHasConstParam": true, 2093 // CHECK-NEXT: "needsImplicit": true, 2094 // CHECK-NEXT: "trivial": true 2095 // CHECK-NEXT: }, 2096 // CHECK-NEXT: "copyCtor": { 2097 // CHECK-NEXT: "hasConstParam": true, 2098 // CHECK-NEXT: "implicitHasConstParam": true, 2099 // CHECK-NEXT: "needsImplicit": true, 2100 // CHECK-NEXT: "simple": true, 2101 // CHECK-NEXT: "trivial": true 2102 // CHECK-NEXT: }, 2103 // CHECK-NEXT: "defaultCtor": { 2104 // CHECK-NEXT: "defaultedIsConstexpr": true, 2105 // CHECK-NEXT: "exists": true, 2106 // CHECK-NEXT: "isConstexpr": true, 2107 // CHECK-NEXT: "needsImplicit": true, 2108 // CHECK-NEXT: "trivial": true 2109 // CHECK-NEXT: }, 2110 // CHECK-NEXT: "dtor": { 2111 // CHECK-NEXT: "irrelevant": true, 2112 // CHECK-NEXT: "needsImplicit": true, 2113 // CHECK-NEXT: "simple": true, 2114 // CHECK-NEXT: "trivial": true 2115 // CHECK-NEXT: }, 2116 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, 2117 // CHECK-NEXT: "isAggregate": true, 2118 // CHECK-NEXT: "isEmpty": true, 2119 // CHECK-NEXT: "isLiteral": true, 2120 // CHECK-NEXT: "isPOD": true, 2121 // CHECK-NEXT: "isStandardLayout": true, 2122 // CHECK-NEXT: "isTrivial": true, 2123 // CHECK-NEXT: "isTriviallyCopyable": true, 2124 // CHECK-NEXT: "moveAssign": { 2125 // CHECK-NEXT: "exists": true, 2126 // CHECK-NEXT: "needsImplicit": true, 2127 // CHECK-NEXT: "simple": true, 2128 // CHECK-NEXT: "trivial": true 2129 // CHECK-NEXT: }, 2130 // CHECK-NEXT: "moveCtor": { 2131 // CHECK-NEXT: "exists": true, 2132 // CHECK-NEXT: "needsImplicit": true, 2133 // CHECK-NEXT: "simple": true, 2134 // CHECK-NEXT: "trivial": true 2135 // CHECK-NEXT: } 2136 // CHECK-NEXT: }, 2137 // CHECK-NEXT: "inner": [ 2138 // CHECK-NEXT: { 2139 // CHECK-NEXT: "id": "0x{{.*}}", 2140 // CHECK-NEXT: "kind": "CXXRecordDecl", 2141 // CHECK-NEXT: "loc": { 2142 // CHECK-NEXT: "offset": 728, 2143 // CHECK-NEXT: "col": 8, 2144 // CHECK-NEXT: "tokLen": 1 2145 // CHECK-NEXT: }, 2146 // CHECK-NEXT: "range": { 2147 // CHECK-NEXT: "begin": { 2148 // CHECK-NEXT: "offset": 721, 2149 // CHECK-NEXT: "col": 1, 2150 // CHECK-NEXT: "tokLen": 6 2151 // CHECK-NEXT: }, 2152 // CHECK-NEXT: "end": { 2153 // CHECK-NEXT: "offset": 728, 2154 // CHECK-NEXT: "col": 8, 2155 // CHECK-NEXT: "tokLen": 1 2156 // CHECK-NEXT: } 2157 // CHECK-NEXT: }, 2158 // CHECK-NEXT: "isImplicit": true, 2159 // CHECK-NEXT: "name": "U", 2160 // CHECK-NEXT: "tagUsed": "struct" 2161 // CHECK-NEXT: } 2162 // CHECK-NEXT: ] 2163 // CHECK-NEXT: } 2164 // CHECK-NEXT: ] 2165 // CHECK-NEXT: }, 2166 // CHECK-NEXT: { 2167 // CHECK-NEXT: "id": "0x{{.*}}", 2168 // CHECK-NEXT: "kind": "ClassTemplateDecl", 2169 // CHECK-NEXT: "loc": { 2170 // CHECK-NEXT: "offset": 765, 2171 // CHECK-NEXT: "line": 49, 2172 // CHECK-NEXT: "col": 8, 2173 // CHECK-NEXT: "tokLen": 1 2174 // CHECK-NEXT: }, 2175 // CHECK-NEXT: "range": { 2176 // CHECK-NEXT: "begin": { 2177 // CHECK-NEXT: "offset": 735, 2178 // CHECK-NEXT: "line": 48, 2179 // CHECK-NEXT: "col": 1, 2180 // CHECK-NEXT: "tokLen": 8 2181 // CHECK-NEXT: }, 2182 // CHECK-NEXT: "end": { 2183 // CHECK-NEXT: "offset": 806, 2184 // CHECK-NEXT: "line": 52, 2185 // CHECK-NEXT: "col": 1, 2186 // CHECK-NEXT: "tokLen": 1 2187 // CHECK-NEXT: } 2188 // CHECK-NEXT: }, 2189 // CHECK-NEXT: "name": "V", 2190 // CHECK-NEXT: "inner": [ 2191 // CHECK-NEXT: { 2192 // CHECK-NEXT: "id": "0x{{.*}}", 2193 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 2194 // CHECK-NEXT: "loc": { 2195 // CHECK-NEXT: "offset": 754, 2196 // CHECK-NEXT: "line": 48, 2197 // CHECK-NEXT: "col": 20, 2198 // CHECK-NEXT: "tokLen": 2 2199 // CHECK-NEXT: }, 2200 // CHECK-NEXT: "range": { 2201 // CHECK-NEXT: "begin": { 2202 // CHECK-NEXT: "offset": 745, 2203 // CHECK-NEXT: "col": 11, 2204 // CHECK-NEXT: "tokLen": 8 2205 // CHECK-NEXT: }, 2206 // CHECK-NEXT: "end": { 2207 // CHECK-NEXT: "offset": 754, 2208 // CHECK-NEXT: "col": 20, 2209 // CHECK-NEXT: "tokLen": 2 2210 // CHECK-NEXT: } 2211 // CHECK-NEXT: }, 2212 // CHECK-NEXT: "name": "Ty", 2213 // CHECK-NEXT: "tagUsed": "typename", 2214 // CHECK-NEXT: "depth": 0, 2215 // CHECK-NEXT: "index": 0 2216 // CHECK-NEXT: }, 2217 // CHECK-NEXT: { 2218 // CHECK-NEXT: "id": "0x{{.*}}", 2219 // CHECK-NEXT: "kind": "CXXRecordDecl", 2220 // CHECK-NEXT: "loc": { 2221 // CHECK-NEXT: "offset": 765, 2222 // CHECK-NEXT: "line": 49, 2223 // CHECK-NEXT: "col": 8, 2224 // CHECK-NEXT: "tokLen": 1 2225 // CHECK-NEXT: }, 2226 // CHECK-NEXT: "range": { 2227 // CHECK-NEXT: "begin": { 2228 // CHECK-NEXT: "offset": 758, 2229 // CHECK-NEXT: "col": 1, 2230 // CHECK-NEXT: "tokLen": 6 2231 // CHECK-NEXT: }, 2232 // CHECK-NEXT: "end": { 2233 // CHECK-NEXT: "offset": 806, 2234 // CHECK-NEXT: "line": 52, 2235 // CHECK-NEXT: "col": 1, 2236 // CHECK-NEXT: "tokLen": 1 2237 // CHECK-NEXT: } 2238 // CHECK-NEXT: }, 2239 // CHECK-NEXT: "name": "V", 2240 // CHECK-NEXT: "tagUsed": "struct", 2241 // CHECK-NEXT: "completeDefinition": true, 2242 // CHECK-NEXT: "definitionData": { 2243 // CHECK-NEXT: "canConstDefaultInit": true, 2244 // CHECK-NEXT: "copyAssign": { 2245 // CHECK-NEXT: "hasConstParam": true, 2246 // CHECK-NEXT: "implicitHasConstParam": true, 2247 // CHECK-NEXT: "needsImplicit": true, 2248 // CHECK-NEXT: "trivial": true 2249 // CHECK-NEXT: }, 2250 // CHECK-NEXT: "copyCtor": { 2251 // CHECK-NEXT: "hasConstParam": true, 2252 // CHECK-NEXT: "implicitHasConstParam": true, 2253 // CHECK-NEXT: "needsImplicit": true, 2254 // CHECK-NEXT: "simple": true, 2255 // CHECK-NEXT: "trivial": true 2256 // CHECK-NEXT: }, 2257 // CHECK-NEXT: "defaultCtor": { 2258 // CHECK-NEXT: "defaultedIsConstexpr": true, 2259 // CHECK-NEXT: "exists": true, 2260 // CHECK-NEXT: "isConstexpr": true, 2261 // CHECK-NEXT: "needsImplicit": true, 2262 // CHECK-NEXT: "trivial": true 2263 // CHECK-NEXT: }, 2264 // CHECK-NEXT: "dtor": { 2265 // CHECK-NEXT: "irrelevant": true, 2266 // CHECK-NEXT: "needsImplicit": true, 2267 // CHECK-NEXT: "simple": true, 2268 // CHECK-NEXT: "trivial": true 2269 // CHECK-NEXT: }, 2270 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, 2271 // CHECK-NEXT: "isAggregate": true, 2272 // CHECK-NEXT: "isEmpty": true, 2273 // CHECK-NEXT: "isLiteral": true, 2274 // CHECK-NEXT: "isPOD": true, 2275 // CHECK-NEXT: "isStandardLayout": true, 2276 // CHECK-NEXT: "isTrivial": true, 2277 // CHECK-NEXT: "isTriviallyCopyable": true, 2278 // CHECK-NEXT: "moveAssign": { 2279 // CHECK-NEXT: "exists": true, 2280 // CHECK-NEXT: "needsImplicit": true, 2281 // CHECK-NEXT: "simple": true, 2282 // CHECK-NEXT: "trivial": true 2283 // CHECK-NEXT: }, 2284 // CHECK-NEXT: "moveCtor": { 2285 // CHECK-NEXT: "exists": true, 2286 // CHECK-NEXT: "needsImplicit": true, 2287 // CHECK-NEXT: "simple": true, 2288 // CHECK-NEXT: "trivial": true 2289 // CHECK-NEXT: } 2290 // CHECK-NEXT: }, 2291 // CHECK-NEXT: "inner": [ 2292 // CHECK-NEXT: { 2293 // CHECK-NEXT: "id": "0x{{.*}}", 2294 // CHECK-NEXT: "kind": "CXXRecordDecl", 2295 // CHECK-NEXT: "loc": { 2296 // CHECK-NEXT: "offset": 765, 2297 // CHECK-NEXT: "line": 49, 2298 // CHECK-NEXT: "col": 8, 2299 // CHECK-NEXT: "tokLen": 1 2300 // CHECK-NEXT: }, 2301 // CHECK-NEXT: "range": { 2302 // CHECK-NEXT: "begin": { 2303 // CHECK-NEXT: "offset": 758, 2304 // CHECK-NEXT: "col": 1, 2305 // CHECK-NEXT: "tokLen": 6 2306 // CHECK-NEXT: }, 2307 // CHECK-NEXT: "end": { 2308 // CHECK-NEXT: "offset": 765, 2309 // CHECK-NEXT: "col": 8, 2310 // CHECK-NEXT: "tokLen": 1 2311 // CHECK-NEXT: } 2312 // CHECK-NEXT: }, 2313 // CHECK-NEXT: "isImplicit": true, 2314 // CHECK-NEXT: "name": "V", 2315 // CHECK-NEXT: "tagUsed": "struct" 2316 // CHECK-NEXT: }, 2317 // CHECK-NEXT: { 2318 // CHECK-NEXT: "id": "0x{{.*}}", 2319 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 2320 // CHECK-NEXT: "loc": { 2321 // CHECK-NEXT: "offset": 801, 2322 // CHECK-NEXT: "line": 51, 2323 // CHECK-NEXT: "col": 8, 2324 // CHECK-NEXT: "tokLen": 1 2325 // CHECK-NEXT: }, 2326 // CHECK-NEXT: "range": { 2327 // CHECK-NEXT: "begin": { 2328 // CHECK-NEXT: "offset": 771, 2329 // CHECK-NEXT: "line": 50, 2330 // CHECK-NEXT: "col": 3, 2331 // CHECK-NEXT: "tokLen": 8 2332 // CHECK-NEXT: }, 2333 // CHECK-NEXT: "end": { 2334 // CHECK-NEXT: "offset": 803, 2335 // CHECK-NEXT: "line": 51, 2336 // CHECK-NEXT: "col": 10, 2337 // CHECK-NEXT: "tokLen": 1 2338 // CHECK-NEXT: } 2339 // CHECK-NEXT: }, 2340 // CHECK-NEXT: "name": "f", 2341 // CHECK-NEXT: "inner": [ 2342 // CHECK-NEXT: { 2343 // CHECK-NEXT: "id": "0x{{.*}}", 2344 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 2345 // CHECK-NEXT: "loc": { 2346 // CHECK-NEXT: "offset": 790, 2347 // CHECK-NEXT: "line": 50, 2348 // CHECK-NEXT: "col": 22, 2349 // CHECK-NEXT: "tokLen": 2 2350 // CHECK-NEXT: }, 2351 // CHECK-NEXT: "range": { 2352 // CHECK-NEXT: "begin": { 2353 // CHECK-NEXT: "offset": 781, 2354 // CHECK-NEXT: "col": 13, 2355 // CHECK-NEXT: "tokLen": 8 2356 // CHECK-NEXT: }, 2357 // CHECK-NEXT: "end": { 2358 // CHECK-NEXT: "offset": 790, 2359 // CHECK-NEXT: "col": 22, 2360 // CHECK-NEXT: "tokLen": 2 2361 // CHECK-NEXT: } 2362 // CHECK-NEXT: }, 2363 // CHECK-NEXT: "name": "Uy", 2364 // CHECK-NEXT: "tagUsed": "typename", 2365 // CHECK-NEXT: "depth": 1, 2366 // CHECK-NEXT: "index": 0 2367 // CHECK-NEXT: }, 2368 // CHECK-NEXT: { 2369 // CHECK-NEXT: "id": "0x{{.*}}", 2370 // CHECK-NEXT: "kind": "CXXMethodDecl", 2371 // CHECK-NEXT: "loc": { 2372 // CHECK-NEXT: "offset": 801, 2373 // CHECK-NEXT: "line": 51, 2374 // CHECK-NEXT: "col": 8, 2375 // CHECK-NEXT: "tokLen": 1 2376 // CHECK-NEXT: }, 2377 // CHECK-NEXT: "range": { 2378 // CHECK-NEXT: "begin": { 2379 // CHECK-NEXT: "offset": 796, 2380 // CHECK-NEXT: "col": 3, 2381 // CHECK-NEXT: "tokLen": 4 2382 // CHECK-NEXT: }, 2383 // CHECK-NEXT: "end": { 2384 // CHECK-NEXT: "offset": 803, 2385 // CHECK-NEXT: "col": 10, 2386 // CHECK-NEXT: "tokLen": 1 2387 // CHECK-NEXT: } 2388 // CHECK-NEXT: }, 2389 // CHECK-NEXT: "name": "f", 2390 // CHECK-NEXT: "type": { 2391 // CHECK-NEXT: "qualType": "void ()" 2392 // CHECK-NEXT: } 2393 // CHECK-NEXT: } 2394 // CHECK-NEXT: ] 2395 // CHECK-NEXT: } 2396 // CHECK-NEXT: ] 2397 // CHECK-NEXT: } 2398 // CHECK-NEXT: ] 2399 // CHECK-NEXT: }, 2400 // CHECK-NEXT: { 2401 // CHECK-NEXT: "id": "0x{{.*}}", 2402 // CHECK-NEXT: "kind": "FunctionTemplateDecl", 2403 // CHECK-NEXT: "loc": { 2404 // CHECK-NEXT: "offset": 868, 2405 // CHECK-NEXT: "line": 56, 2406 // CHECK-NEXT: "col": 13, 2407 // CHECK-NEXT: "tokLen": 1 2408 // CHECK-NEXT: }, 2409 // CHECK-NEXT: "range": { 2410 // CHECK-NEXT: "begin": { 2411 // CHECK-NEXT: "offset": 833, 2412 // CHECK-NEXT: "line": 55, 2413 // CHECK-NEXT: "col": 1, 2414 // CHECK-NEXT: "tokLen": 8 2415 // CHECK-NEXT: }, 2416 // CHECK-NEXT: "end": { 2417 // CHECK-NEXT: "offset": 873, 2418 // CHECK-NEXT: "line": 56, 2419 // CHECK-NEXT: "col": 18, 2420 // CHECK-NEXT: "tokLen": 1 2421 // CHECK-NEXT: } 2422 // CHECK-NEXT: }, 2423 // CHECK-NEXT: "parentDeclContextId": "0x{{.*}}", 2424 // CHECK-NEXT: "previousDecl": "0x{{.*}}", 2425 // CHECK-NEXT: "name": "f", 2426 // CHECK-NEXT: "inner": [ 2427 // CHECK-NEXT: { 2428 // CHECK-NEXT: "id": "0x{{.*}}", 2429 // CHECK-NEXT: "kind": "TemplateTypeParmDecl", 2430 // CHECK-NEXT: "loc": { 2431 // CHECK-NEXT: "offset": 852, 2432 // CHECK-NEXT: "line": 55, 2433 // CHECK-NEXT: "col": 20, 2434 // CHECK-NEXT: "tokLen": 2 2435 // CHECK-NEXT: }, 2436 // CHECK-NEXT: "range": { 2437 // CHECK-NEXT: "begin": { 2438 // CHECK-NEXT: "offset": 843, 2439 // CHECK-NEXT: "col": 11, 2440 // CHECK-NEXT: "tokLen": 8 2441 // CHECK-NEXT: }, 2442 // CHECK-NEXT: "end": { 2443 // CHECK-NEXT: "offset": 852, 2444 // CHECK-NEXT: "col": 20, 2445 // CHECK-NEXT: "tokLen": 2 2446 // CHECK-NEXT: } 2447 // CHECK-NEXT: }, 2448 // CHECK-NEXT: "name": "Uy", 2449 // CHECK-NEXT: "tagUsed": "typename", 2450 // CHECK-NEXT: "depth": 1, 2451 // CHECK-NEXT: "index": 0 2452 // CHECK-NEXT: }, 2453 // CHECK-NEXT: { 2454 // CHECK-NEXT: "id": "0x{{.*}}", 2455 // CHECK-NEXT: "kind": "CXXMethodDecl", 2456 // CHECK-NEXT: "loc": { 2457 // CHECK-NEXT: "offset": 868, 2458 // CHECK-NEXT: "line": 56, 2459 // CHECK-NEXT: "col": 13, 2460 // CHECK-NEXT: "tokLen": 1 2461 // CHECK-NEXT: }, 2462 // CHECK-NEXT: "range": { 2463 // CHECK-NEXT: "begin": { 2464 // CHECK-NEXT: "offset": 810, 2465 // CHECK-NEXT: "line": 54, 2466 // CHECK-NEXT: "col": 1, 2467 // CHECK-NEXT: "tokLen": 8 2468 // CHECK-NEXT: }, 2469 // CHECK-NEXT: "end": { 2470 // CHECK-NEXT: "offset": 873, 2471 // CHECK-NEXT: "line": 56, 2472 // CHECK-NEXT: "col": 18, 2473 // CHECK-NEXT: "tokLen": 1 2474 // CHECK-NEXT: } 2475 // CHECK-NEXT: }, 2476 // CHECK-NEXT: "parentDeclContextId": "0x{{.*}}", 2477 // CHECK-NEXT: "previousDecl": "0x{{.*}}", 2478 // CHECK-NEXT: "name": "f", 2479 // CHECK-NEXT: "type": { 2480 // CHECK-NEXT: "qualType": "void ()" 2481 // CHECK-NEXT: }, 2482 // CHECK-NEXT: "inner": [ 2483 // CHECK-NEXT: { 2484 // CHECK-NEXT: "id": "0x{{.*}}", 2485 // CHECK-NEXT: "kind": "CompoundStmt", 2486 // CHECK-NEXT: "range": { 2487 // CHECK-NEXT: "begin": { 2488 // CHECK-NEXT: "offset": 872, 2489 // CHECK-NEXT: "col": 17, 2490 // CHECK-NEXT: "tokLen": 1 2491 // CHECK-NEXT: }, 2492 // CHECK-NEXT: "end": { 2493 // CHECK-NEXT: "offset": 873, 2494 // CHECK-NEXT: "col": 18, 2495 // CHECK-NEXT: "tokLen": 1 2496 // CHECK-NEXT: } 2497 // CHECK-NEXT: } 2498 // CHECK-NEXT: } 2499 // CHECK-NEXT: ] 2500 // CHECK-NEXT: } 2501 // CHECK-NEXT: ] 2502 // CHECK-NEXT: } 2503 // CHECK-NEXT: ] 2504 // CHECK-NEXT: } 2505