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