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