blob: 88d306c70efe8e9300075163cde2c19e4fa72150 [file] [log] [blame]
Aaron Ballman41058822019-05-24 17:39:55 +00001// RUN: %clang_cc1 -Wno-unused -fblocks -ast-dump=json -ast-dump-filter Test %s | FileCheck %s
2
3@protocol P
4@end
5
6@interface A
7@end
8
9@interface TestObjCIvarDecl : A
10@end
11
12@implementation TestObjCIvarDecl {
13 int varDefault;
14 @private int varPrivate;
15 @protected int varProtected;
16 @public int varPublic;
17 @package int varPackage;
18}
19@end
20
21@interface testObjCMethodDecl : A {
22}
23- (int) TestObjCMethodDecl: (int)i, ...;
24@end
25
26@implementation testObjCMethodDecl
27- (int) TestObjCMethodDecl: (int)i, ... {
28 return 0;
29}
30@end
31
32@protocol TestObjCProtocolDecl
33- (void) foo;
34@end
35
36@interface TestObjCClass : A <P>
37- (void) foo;
38@end
39
40@implementation TestObjCClass : A {
41 int i;
42}
43- (void) foo {
44}
45@end
46
47@interface TestObjCClass (TestObjCCategoryDecl) <P>
48- (void) bar;
49@end
50
51@interface TestGenericInterface<T> : A<P> {
52}
53@end
54
55@implementation TestObjCClass (TestObjCCategoryDecl)
56- (void) bar {
57}
58@end
59
60@compatibility_alias TestObjCCompatibleAliasDecl A;
61
62@interface TestObjCProperty: A
63@property(getter=getterFoo, setter=setterFoo:) int foo;
64@property int bar;
65@end
66
67@implementation TestObjCProperty {
68 int i;
69}
70@synthesize foo=i;
71@synthesize bar;
72@end
73
74void TestBlockDecl(int x) {
75 ^(int y, ...){ x; };
76}
77
78@interface B
79+ (int) foo;
80@end
81
82void f() {
83 __typeof__(B.foo) Test;
84}
85
Aaron Ballman1fffe8d2019-06-20 16:22:35 +000086
Aaron Ballman41058822019-05-24 17:39:55 +000087// CHECK: "kind": "ObjCInterfaceDecl",
88// CHECK-NEXT: "loc": {
89// CHECK-NEXT: "col": 12,
90// CHECK-NEXT: "file": "{{.*}}",
91// CHECK-NEXT: "line": 9
92// CHECK-NEXT: },
93// CHECK-NEXT: "range": {
94// CHECK-NEXT: "begin": {
95// CHECK-NEXT: "col": 1,
96// CHECK-NEXT: "file": "{{.*}}",
97// CHECK-NEXT: "line": 9
98// CHECK-NEXT: },
99// CHECK-NEXT: "end": {
100// CHECK-NEXT: "col": 2,
101// CHECK-NEXT: "file": "{{.*}}",
102// CHECK-NEXT: "line": 10
103// CHECK-NEXT: }
104// CHECK-NEXT: },
105// CHECK-NEXT: "name": "TestObjCIvarDecl",
106// CHECK-NEXT: "super": {
107// CHECK-NEXT: "id": "0x{{.*}}",
108// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
109// CHECK-NEXT: "name": "A"
110// CHECK-NEXT: },
111// CHECK-NEXT: "implementation": {
112// CHECK-NEXT: "id": "0x{{.*}}",
113// CHECK-NEXT: "kind": "ObjCImplementationDecl",
114// CHECK-NEXT: "name": "TestObjCIvarDecl"
115// CHECK-NEXT: }
116// CHECK-NEXT: }
117
118
119// CHECK: "kind": "ObjCImplementationDecl",
120// CHECK-NEXT: "loc": {
121// CHECK-NEXT: "col": 17,
122// CHECK-NEXT: "file": "{{.*}}",
123// CHECK-NEXT: "line": 12
124// CHECK-NEXT: },
125// CHECK-NEXT: "range": {
126// CHECK-NEXT: "begin": {
127// CHECK-NEXT: "col": 1,
128// CHECK-NEXT: "file": "{{.*}}",
129// CHECK-NEXT: "line": 12
130// CHECK-NEXT: },
131// CHECK-NEXT: "end": {
132// CHECK-NEXT: "col": 1,
133// CHECK-NEXT: "file": "{{.*}}",
134// CHECK-NEXT: "line": 19
135// CHECK-NEXT: }
136// CHECK-NEXT: },
137// CHECK-NEXT: "name": "TestObjCIvarDecl",
138// CHECK-NEXT: "super": {
139// CHECK-NEXT: "id": "0x{{.*}}"
140// CHECK-NEXT: },
141// CHECK-NEXT: "interface": {
142// CHECK-NEXT: "id": "0x{{.*}}",
143// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
144// CHECK-NEXT: "name": "TestObjCIvarDecl"
145// CHECK-NEXT: },
146// CHECK-NEXT: "inner": [
147// CHECK-NEXT: {
148// CHECK-NEXT: "id": "0x{{.*}}",
149// CHECK-NEXT: "kind": "ObjCIvarDecl",
150// CHECK-NEXT: "loc": {
151// CHECK-NEXT: "col": 7,
152// CHECK-NEXT: "file": "{{.*}}",
153// CHECK-NEXT: "line": 13
154// CHECK-NEXT: },
155// CHECK-NEXT: "range": {
156// CHECK-NEXT: "begin": {
157// CHECK-NEXT: "col": 3,
158// CHECK-NEXT: "file": "{{.*}}",
159// CHECK-NEXT: "line": 13
160// CHECK-NEXT: },
161// CHECK-NEXT: "end": {
162// CHECK-NEXT: "col": 7,
163// CHECK-NEXT: "file": "{{.*}}",
164// CHECK-NEXT: "line": 13
165// CHECK-NEXT: }
166// CHECK-NEXT: },
167// CHECK-NEXT: "name": "varDefault",
168// CHECK-NEXT: "type": {
169// CHECK-NEXT: "qualType": "int"
170// CHECK-NEXT: },
171// CHECK-NEXT: "access": "private"
172// CHECK-NEXT: },
173// CHECK-NEXT: {
174// CHECK-NEXT: "id": "0x{{.*}}",
175// CHECK-NEXT: "kind": "ObjCIvarDecl",
176// CHECK-NEXT: "loc": {
177// CHECK-NEXT: "col": 16,
178// CHECK-NEXT: "file": "{{.*}}",
179// CHECK-NEXT: "line": 14
180// CHECK-NEXT: },
181// CHECK-NEXT: "range": {
182// CHECK-NEXT: "begin": {
183// CHECK-NEXT: "col": 12,
184// CHECK-NEXT: "file": "{{.*}}",
185// CHECK-NEXT: "line": 14
186// CHECK-NEXT: },
187// CHECK-NEXT: "end": {
188// CHECK-NEXT: "col": 16,
189// CHECK-NEXT: "file": "{{.*}}",
190// CHECK-NEXT: "line": 14
191// CHECK-NEXT: }
192// CHECK-NEXT: },
193// CHECK-NEXT: "name": "varPrivate",
194// CHECK-NEXT: "type": {
195// CHECK-NEXT: "qualType": "int"
196// CHECK-NEXT: },
197// CHECK-NEXT: "access": "private"
198// CHECK-NEXT: },
199// CHECK-NEXT: {
200// CHECK-NEXT: "id": "0x{{.*}}",
201// CHECK-NEXT: "kind": "ObjCIvarDecl",
202// CHECK-NEXT: "loc": {
203// CHECK-NEXT: "col": 18,
204// CHECK-NEXT: "file": "{{.*}}",
205// CHECK-NEXT: "line": 15
206// CHECK-NEXT: },
207// CHECK-NEXT: "range": {
208// CHECK-NEXT: "begin": {
209// CHECK-NEXT: "col": 14,
210// CHECK-NEXT: "file": "{{.*}}",
211// CHECK-NEXT: "line": 15
212// CHECK-NEXT: },
213// CHECK-NEXT: "end": {
214// CHECK-NEXT: "col": 18,
215// CHECK-NEXT: "file": "{{.*}}",
216// CHECK-NEXT: "line": 15
217// CHECK-NEXT: }
218// CHECK-NEXT: },
219// CHECK-NEXT: "name": "varProtected",
220// CHECK-NEXT: "type": {
221// CHECK-NEXT: "qualType": "int"
222// CHECK-NEXT: },
223// CHECK-NEXT: "access": "protected"
224// CHECK-NEXT: },
225// CHECK-NEXT: {
226// CHECK-NEXT: "id": "0x{{.*}}",
227// CHECK-NEXT: "kind": "ObjCIvarDecl",
228// CHECK-NEXT: "loc": {
229// CHECK-NEXT: "col": 15,
230// CHECK-NEXT: "file": "{{.*}}",
231// CHECK-NEXT: "line": 16
232// CHECK-NEXT: },
233// CHECK-NEXT: "range": {
234// CHECK-NEXT: "begin": {
235// CHECK-NEXT: "col": 11,
236// CHECK-NEXT: "file": "{{.*}}",
237// CHECK-NEXT: "line": 16
238// CHECK-NEXT: },
239// CHECK-NEXT: "end": {
240// CHECK-NEXT: "col": 15,
241// CHECK-NEXT: "file": "{{.*}}",
242// CHECK-NEXT: "line": 16
243// CHECK-NEXT: }
244// CHECK-NEXT: },
245// CHECK-NEXT: "name": "varPublic",
246// CHECK-NEXT: "type": {
247// CHECK-NEXT: "qualType": "int"
248// CHECK-NEXT: },
249// CHECK-NEXT: "access": "public"
250// CHECK-NEXT: },
251// CHECK-NEXT: {
252// CHECK-NEXT: "id": "0x{{.*}}",
253// CHECK-NEXT: "kind": "ObjCIvarDecl",
254// CHECK-NEXT: "loc": {
255// CHECK-NEXT: "col": 16,
256// CHECK-NEXT: "file": "{{.*}}",
257// CHECK-NEXT: "line": 17
258// CHECK-NEXT: },
259// CHECK-NEXT: "range": {
260// CHECK-NEXT: "begin": {
261// CHECK-NEXT: "col": 12,
262// CHECK-NEXT: "file": "{{.*}}",
263// CHECK-NEXT: "line": 17
264// CHECK-NEXT: },
265// CHECK-NEXT: "end": {
266// CHECK-NEXT: "col": 16,
267// CHECK-NEXT: "file": "{{.*}}",
268// CHECK-NEXT: "line": 17
269// CHECK-NEXT: }
270// CHECK-NEXT: },
271// CHECK-NEXT: "name": "varPackage",
272// CHECK-NEXT: "type": {
273// CHECK-NEXT: "qualType": "int"
274// CHECK-NEXT: },
275// CHECK-NEXT: "access": "package"
276// CHECK-NEXT: }
277// CHECK-NEXT: ]
278// CHECK-NEXT: }
279
280
281// CHECK: "kind": "ObjCMethodDecl",
282// CHECK-NEXT: "loc": {
283// CHECK-NEXT: "col": 1,
284// CHECK-NEXT: "file": "{{.*}}",
285// CHECK-NEXT: "line": 23
286// CHECK-NEXT: },
287// CHECK-NEXT: "range": {
288// CHECK-NEXT: "begin": {
289// CHECK-NEXT: "col": 1,
290// CHECK-NEXT: "file": "{{.*}}",
291// CHECK-NEXT: "line": 23
292// CHECK-NEXT: },
293// CHECK-NEXT: "end": {
294// CHECK-NEXT: "col": 40,
295// CHECK-NEXT: "file": "{{.*}}",
296// CHECK-NEXT: "line": 23
297// CHECK-NEXT: }
298// CHECK-NEXT: },
299// CHECK-NEXT: "name": "TestObjCMethodDecl:",
300// CHECK-NEXT: "returnType": {
301// CHECK-NEXT: "qualType": "int"
302// CHECK-NEXT: },
303// CHECK-NEXT: "instance": true,
304// CHECK-NEXT: "variadic": true,
305// CHECK-NEXT: "inner": [
306// CHECK-NEXT: {
307// CHECK-NEXT: "id": "0x{{.*}}",
308// CHECK-NEXT: "kind": "ParmVarDecl",
309// CHECK-NEXT: "loc": {
310// CHECK-NEXT: "col": 34,
311// CHECK-NEXT: "file": "{{.*}}",
312// CHECK-NEXT: "line": 23
313// CHECK-NEXT: },
314// CHECK-NEXT: "range": {
315// CHECK-NEXT: "begin": {
316// CHECK-NEXT: "col": 30,
317// CHECK-NEXT: "file": "{{.*}}",
318// CHECK-NEXT: "line": 23
319// CHECK-NEXT: },
320// CHECK-NEXT: "end": {
321// CHECK-NEXT: "col": 34,
322// CHECK-NEXT: "file": "{{.*}}",
323// CHECK-NEXT: "line": 23
324// CHECK-NEXT: }
325// CHECK-NEXT: },
326// CHECK-NEXT: "name": "i",
327// CHECK-NEXT: "type": {
328// CHECK-NEXT: "qualType": "int"
329// CHECK-NEXT: }
330// CHECK-NEXT: }
331// CHECK-NEXT: ]
332// CHECK-NEXT: }
333
334
335// CHECK: "kind": "ObjCMethodDecl",
336// CHECK-NEXT: "loc": {
337// CHECK-NEXT: "col": 1,
338// CHECK-NEXT: "file": "{{.*}}",
339// CHECK-NEXT: "line": 27
340// CHECK-NEXT: },
341// CHECK-NEXT: "range": {
342// CHECK-NEXT: "begin": {
343// CHECK-NEXT: "col": 1,
344// CHECK-NEXT: "file": "{{.*}}",
345// CHECK-NEXT: "line": 27
346// CHECK-NEXT: },
347// CHECK-NEXT: "end": {
348// CHECK-NEXT: "col": 1,
349// CHECK-NEXT: "file": "{{.*}}",
350// CHECK-NEXT: "line": 29
351// CHECK-NEXT: }
352// CHECK-NEXT: },
353// CHECK-NEXT: "name": "TestObjCMethodDecl:",
354// CHECK-NEXT: "returnType": {
355// CHECK-NEXT: "qualType": "int"
356// CHECK-NEXT: },
357// CHECK-NEXT: "instance": true,
358// CHECK-NEXT: "variadic": true,
359// CHECK-NEXT: "inner": [
360// CHECK-NEXT: {
361// CHECK-NEXT: "id": "0x{{.*}}",
362// CHECK-NEXT: "kind": "ImplicitParamDecl",
363// CHECK-NEXT: "loc": {},
364// CHECK-NEXT: "range": {
365// CHECK-NEXT: "begin": {},
366// CHECK-NEXT: "end": {}
367// CHECK-NEXT: },
368// CHECK-NEXT: "isImplicit": true,
369// CHECK-NEXT: "name": "self",
370// CHECK-NEXT: "type": {
371// CHECK-NEXT: "qualType": "testObjCMethodDecl *"
372// CHECK-NEXT: }
373// CHECK-NEXT: },
374// CHECK-NEXT: {
375// CHECK-NEXT: "id": "0x{{.*}}",
376// CHECK-NEXT: "kind": "ImplicitParamDecl",
377// CHECK-NEXT: "loc": {},
378// CHECK-NEXT: "range": {
379// CHECK-NEXT: "begin": {},
380// CHECK-NEXT: "end": {}
381// CHECK-NEXT: },
382// CHECK-NEXT: "isImplicit": true,
383// CHECK-NEXT: "name": "_cmd",
384// CHECK-NEXT: "type": {
385// CHECK-NEXT: "desugaredQualType": "SEL *",
386// CHECK-NEXT: "qualType": "SEL"
387// CHECK-NEXT: }
388// CHECK-NEXT: },
389// CHECK-NEXT: {
390// CHECK-NEXT: "id": "0x{{.*}}",
391// CHECK-NEXT: "kind": "ParmVarDecl",
392// CHECK-NEXT: "loc": {
393// CHECK-NEXT: "col": 34,
394// CHECK-NEXT: "file": "{{.*}}",
395// CHECK-NEXT: "line": 27
396// CHECK-NEXT: },
397// CHECK-NEXT: "range": {
398// CHECK-NEXT: "begin": {
399// CHECK-NEXT: "col": 30,
400// CHECK-NEXT: "file": "{{.*}}",
401// CHECK-NEXT: "line": 27
402// CHECK-NEXT: },
403// CHECK-NEXT: "end": {
404// CHECK-NEXT: "col": 34,
405// CHECK-NEXT: "file": "{{.*}}",
406// CHECK-NEXT: "line": 27
407// CHECK-NEXT: }
408// CHECK-NEXT: },
409// CHECK-NEXT: "name": "i",
410// CHECK-NEXT: "type": {
411// CHECK-NEXT: "qualType": "int"
412// CHECK-NEXT: }
413// CHECK-NEXT: },
414// CHECK-NEXT: {
415// CHECK-NEXT: "id": "0x{{.*}}",
416// CHECK-NEXT: "kind": "CompoundStmt",
417// CHECK-NEXT: "range": {
418// CHECK-NEXT: "begin": {
419// CHECK-NEXT: "col": 41,
420// CHECK-NEXT: "file": "{{.*}}",
421// CHECK-NEXT: "line": 27
422// CHECK-NEXT: },
423// CHECK-NEXT: "end": {
424// CHECK-NEXT: "col": 1,
425// CHECK-NEXT: "file": "{{.*}}",
426// CHECK-NEXT: "line": 29
427// CHECK-NEXT: }
428// CHECK-NEXT: },
429// CHECK-NEXT: "inner": [
430// CHECK-NEXT: {
431// CHECK-NEXT: "id": "0x{{.*}}",
432// CHECK-NEXT: "kind": "ReturnStmt",
433// CHECK-NEXT: "range": {
434// CHECK-NEXT: "begin": {
435// CHECK-NEXT: "col": 3,
436// CHECK-NEXT: "file": "{{.*}}",
437// CHECK-NEXT: "line": 28
438// CHECK-NEXT: },
439// CHECK-NEXT: "end": {
440// CHECK-NEXT: "col": 10,
441// CHECK-NEXT: "file": "{{.*}}",
442// CHECK-NEXT: "line": 28
443// CHECK-NEXT: }
444// CHECK-NEXT: },
445// CHECK-NEXT: "inner": [
446// CHECK-NEXT: {
447// CHECK-NEXT: "id": "0x{{.*}}",
448// CHECK-NEXT: "kind": "IntegerLiteral",
449// CHECK-NEXT: "range": {
450// CHECK-NEXT: "begin": {
451// CHECK-NEXT: "col": 10,
452// CHECK-NEXT: "file": "{{.*}}",
453// CHECK-NEXT: "line": 28
454// CHECK-NEXT: },
455// CHECK-NEXT: "end": {
456// CHECK-NEXT: "col": 10,
457// CHECK-NEXT: "file": "{{.*}}",
458// CHECK-NEXT: "line": 28
459// CHECK-NEXT: }
460// CHECK-NEXT: },
461// CHECK-NEXT: "type": {
462// CHECK-NEXT: "qualType": "int"
463// CHECK-NEXT: },
464// CHECK-NEXT: "valueCategory": "rvalue",
465// CHECK-NEXT: "value": "0"
466// CHECK-NEXT: }
467// CHECK-NEXT: ]
468// CHECK-NEXT: }
469// CHECK-NEXT: ]
470// CHECK-NEXT: }
471// CHECK-NEXT: ]
472// CHECK-NEXT: }
473
474
475// CHECK: "kind": "ObjCProtocolDecl",
476// CHECK-NEXT: "loc": {
477// CHECK-NEXT: "col": 11,
478// CHECK-NEXT: "file": "{{.*}}",
479// CHECK-NEXT: "line": 32
480// CHECK-NEXT: },
481// CHECK-NEXT: "range": {
482// CHECK-NEXT: "begin": {
483// CHECK-NEXT: "col": 1,
484// CHECK-NEXT: "file": "{{.*}}",
485// CHECK-NEXT: "line": 32
486// CHECK-NEXT: },
487// CHECK-NEXT: "end": {
488// CHECK-NEXT: "col": 2,
489// CHECK-NEXT: "file": "{{.*}}",
490// CHECK-NEXT: "line": 34
491// CHECK-NEXT: }
492// CHECK-NEXT: },
493// CHECK-NEXT: "name": "TestObjCProtocolDecl",
494// CHECK-NEXT: "inner": [
495// CHECK-NEXT: {
496// CHECK-NEXT: "id": "0x{{.*}}",
497// CHECK-NEXT: "kind": "ObjCMethodDecl",
498// CHECK-NEXT: "loc": {
499// CHECK-NEXT: "col": 1,
500// CHECK-NEXT: "file": "{{.*}}",
501// CHECK-NEXT: "line": 33
502// CHECK-NEXT: },
503// CHECK-NEXT: "range": {
504// CHECK-NEXT: "begin": {
505// CHECK-NEXT: "col": 1,
506// CHECK-NEXT: "file": "{{.*}}",
507// CHECK-NEXT: "line": 33
508// CHECK-NEXT: },
509// CHECK-NEXT: "end": {
510// CHECK-NEXT: "col": 13,
511// CHECK-NEXT: "file": "{{.*}}",
512// CHECK-NEXT: "line": 33
513// CHECK-NEXT: }
514// CHECK-NEXT: },
515// CHECK-NEXT: "name": "foo",
516// CHECK-NEXT: "returnType": {
517// CHECK-NEXT: "qualType": "void"
518// CHECK-NEXT: },
519// CHECK-NEXT: "instance": true
520// CHECK-NEXT: }
521// CHECK-NEXT: ]
522// CHECK-NEXT: }
523
524
525// CHECK: "kind": "ObjCInterfaceDecl",
526// CHECK-NEXT: "loc": {
527// CHECK-NEXT: "col": 12,
528// CHECK-NEXT: "file": "{{.*}}",
529// CHECK-NEXT: "line": 36
530// CHECK-NEXT: },
531// CHECK-NEXT: "range": {
532// CHECK-NEXT: "begin": {
533// CHECK-NEXT: "col": 1,
534// CHECK-NEXT: "file": "{{.*}}",
535// CHECK-NEXT: "line": 36
536// CHECK-NEXT: },
537// CHECK-NEXT: "end": {
538// CHECK-NEXT: "col": 2,
539// CHECK-NEXT: "file": "{{.*}}",
540// CHECK-NEXT: "line": 38
541// CHECK-NEXT: }
542// CHECK-NEXT: },
543// CHECK-NEXT: "name": "TestObjCClass",
544// CHECK-NEXT: "super": {
545// CHECK-NEXT: "id": "0x{{.*}}",
546// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
547// CHECK-NEXT: "name": "A"
548// CHECK-NEXT: },
549// CHECK-NEXT: "implementation": {
550// CHECK-NEXT: "id": "0x{{.*}}",
551// CHECK-NEXT: "kind": "ObjCImplementationDecl",
552// CHECK-NEXT: "name": "TestObjCClass"
553// CHECK-NEXT: },
554// CHECK-NEXT: "protocols": [
555// CHECK-NEXT: {
556// CHECK-NEXT: "id": "0x{{.*}}",
557// CHECK-NEXT: "kind": "ObjCProtocolDecl",
558// CHECK-NEXT: "name": "P"
559// CHECK-NEXT: }
560// CHECK-NEXT: ],
561// CHECK-NEXT: "inner": [
562// CHECK-NEXT: {
563// CHECK-NEXT: "id": "0x{{.*}}",
564// CHECK-NEXT: "kind": "ObjCMethodDecl",
565// CHECK-NEXT: "loc": {
566// CHECK-NEXT: "col": 1,
567// CHECK-NEXT: "file": "{{.*}}",
568// CHECK-NEXT: "line": 37
569// CHECK-NEXT: },
570// CHECK-NEXT: "range": {
571// CHECK-NEXT: "begin": {
572// CHECK-NEXT: "col": 1,
573// CHECK-NEXT: "file": "{{.*}}",
574// CHECK-NEXT: "line": 37
575// CHECK-NEXT: },
576// CHECK-NEXT: "end": {
577// CHECK-NEXT: "col": 13,
578// CHECK-NEXT: "file": "{{.*}}",
579// CHECK-NEXT: "line": 37
580// CHECK-NEXT: }
581// CHECK-NEXT: },
582// CHECK-NEXT: "name": "foo",
583// CHECK-NEXT: "returnType": {
584// CHECK-NEXT: "qualType": "void"
585// CHECK-NEXT: },
586// CHECK-NEXT: "instance": true
587// CHECK-NEXT: }
588// CHECK-NEXT: ]
589// CHECK-NEXT: }
590
591
592// CHECK: "kind": "ObjCImplementationDecl",
593// CHECK-NEXT: "loc": {
594// CHECK-NEXT: "col": 17,
595// CHECK-NEXT: "file": "{{.*}}",
596// CHECK-NEXT: "line": 40
597// CHECK-NEXT: },
598// CHECK-NEXT: "range": {
599// CHECK-NEXT: "begin": {
600// CHECK-NEXT: "col": 1,
601// CHECK-NEXT: "file": "{{.*}}",
602// CHECK-NEXT: "line": 40
603// CHECK-NEXT: },
604// CHECK-NEXT: "end": {
605// CHECK-NEXT: "col": 1,
606// CHECK-NEXT: "file": "{{.*}}",
607// CHECK-NEXT: "line": 45
608// CHECK-NEXT: }
609// CHECK-NEXT: },
610// CHECK-NEXT: "name": "TestObjCClass",
611// CHECK-NEXT: "super": {
612// CHECK-NEXT: "id": "0x{{.*}}",
613// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
614// CHECK-NEXT: "name": "A"
615// CHECK-NEXT: },
616// CHECK-NEXT: "interface": {
617// CHECK-NEXT: "id": "0x{{.*}}",
618// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
619// CHECK-NEXT: "name": "TestObjCClass"
620// CHECK-NEXT: },
621// CHECK-NEXT: "inner": [
622// CHECK-NEXT: {
623// CHECK-NEXT: "id": "0x{{.*}}",
624// CHECK-NEXT: "kind": "ObjCIvarDecl",
625// CHECK-NEXT: "loc": {
626// CHECK-NEXT: "col": 7,
627// CHECK-NEXT: "file": "{{.*}}",
628// CHECK-NEXT: "line": 41
629// CHECK-NEXT: },
630// CHECK-NEXT: "range": {
631// CHECK-NEXT: "begin": {
632// CHECK-NEXT: "col": 3,
633// CHECK-NEXT: "file": "{{.*}}",
634// CHECK-NEXT: "line": 41
635// CHECK-NEXT: },
636// CHECK-NEXT: "end": {
637// CHECK-NEXT: "col": 7,
638// CHECK-NEXT: "file": "{{.*}}",
639// CHECK-NEXT: "line": 41
640// CHECK-NEXT: }
641// CHECK-NEXT: },
642// CHECK-NEXT: "name": "i",
643// CHECK-NEXT: "type": {
644// CHECK-NEXT: "qualType": "int"
645// CHECK-NEXT: },
646// CHECK-NEXT: "access": "private"
647// CHECK-NEXT: },
648// CHECK-NEXT: {
649// CHECK-NEXT: "id": "0x{{.*}}",
650// CHECK-NEXT: "kind": "ObjCMethodDecl",
651// CHECK-NEXT: "loc": {
652// CHECK-NEXT: "col": 1,
653// CHECK-NEXT: "file": "{{.*}}",
654// CHECK-NEXT: "line": 43
655// CHECK-NEXT: },
656// CHECK-NEXT: "range": {
657// CHECK-NEXT: "begin": {
658// CHECK-NEXT: "col": 1,
659// CHECK-NEXT: "file": "{{.*}}",
660// CHECK-NEXT: "line": 43
661// CHECK-NEXT: },
662// CHECK-NEXT: "end": {
663// CHECK-NEXT: "col": 1,
664// CHECK-NEXT: "file": "{{.*}}",
665// CHECK-NEXT: "line": 44
666// CHECK-NEXT: }
667// CHECK-NEXT: },
668// CHECK-NEXT: "name": "foo",
669// CHECK-NEXT: "returnType": {
670// CHECK-NEXT: "qualType": "void"
671// CHECK-NEXT: },
672// CHECK-NEXT: "instance": true,
673// CHECK-NEXT: "inner": [
674// CHECK-NEXT: {
675// CHECK-NEXT: "id": "0x{{.*}}",
676// CHECK-NEXT: "kind": "ImplicitParamDecl",
677// CHECK-NEXT: "loc": {},
678// CHECK-NEXT: "range": {
679// CHECK-NEXT: "begin": {},
680// CHECK-NEXT: "end": {}
681// CHECK-NEXT: },
682// CHECK-NEXT: "isImplicit": true,
683// CHECK-NEXT: "name": "self",
684// CHECK-NEXT: "type": {
685// CHECK-NEXT: "qualType": "TestObjCClass *"
686// CHECK-NEXT: }
687// CHECK-NEXT: },
688// CHECK-NEXT: {
689// CHECK-NEXT: "id": "0x{{.*}}",
690// CHECK-NEXT: "kind": "ImplicitParamDecl",
691// CHECK-NEXT: "loc": {},
692// CHECK-NEXT: "range": {
693// CHECK-NEXT: "begin": {},
694// CHECK-NEXT: "end": {}
695// CHECK-NEXT: },
696// CHECK-NEXT: "isImplicit": true,
697// CHECK-NEXT: "name": "_cmd",
698// CHECK-NEXT: "type": {
699// CHECK-NEXT: "desugaredQualType": "SEL *",
700// CHECK-NEXT: "qualType": "SEL"
701// CHECK-NEXT: }
702// CHECK-NEXT: },
703// CHECK-NEXT: {
704// CHECK-NEXT: "id": "0x{{.*}}",
705// CHECK-NEXT: "kind": "CompoundStmt",
706// CHECK-NEXT: "range": {
707// CHECK-NEXT: "begin": {
708// CHECK-NEXT: "col": 14,
709// CHECK-NEXT: "file": "{{.*}}",
710// CHECK-NEXT: "line": 43
711// CHECK-NEXT: },
712// CHECK-NEXT: "end": {
713// CHECK-NEXT: "col": 1,
714// CHECK-NEXT: "file": "{{.*}}",
715// CHECK-NEXT: "line": 44
716// CHECK-NEXT: }
717// CHECK-NEXT: }
718// CHECK-NEXT: }
719// CHECK-NEXT: ]
720// CHECK-NEXT: }
721// CHECK-NEXT: ]
722// CHECK-NEXT: }
723
724
725// CHECK: "kind": "ObjCCategoryDecl",
726// CHECK-NEXT: "loc": {
727// CHECK-NEXT: "col": 12,
728// CHECK-NEXT: "file": "{{.*}}",
729// CHECK-NEXT: "line": 47
730// CHECK-NEXT: },
731// CHECK-NEXT: "range": {
732// CHECK-NEXT: "begin": {
733// CHECK-NEXT: "col": 1,
734// CHECK-NEXT: "file": "{{.*}}",
735// CHECK-NEXT: "line": 47
736// CHECK-NEXT: },
737// CHECK-NEXT: "end": {
738// CHECK-NEXT: "col": 2,
739// CHECK-NEXT: "file": "{{.*}}",
740// CHECK-NEXT: "line": 49
741// CHECK-NEXT: }
742// CHECK-NEXT: },
743// CHECK-NEXT: "name": "TestObjCCategoryDecl",
744// CHECK-NEXT: "interface": {
745// CHECK-NEXT: "id": "0x{{.*}}",
746// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
747// CHECK-NEXT: "name": "TestObjCClass"
748// CHECK-NEXT: },
749// CHECK-NEXT: "implementation": {
750// CHECK-NEXT: "id": "0x{{.*}}",
751// CHECK-NEXT: "kind": "ObjCCategoryImplDecl",
752// CHECK-NEXT: "name": "TestObjCCategoryDecl"
753// CHECK-NEXT: },
754// CHECK-NEXT: "protocols": [
755// CHECK-NEXT: {
756// CHECK-NEXT: "id": "0x{{.*}}",
757// CHECK-NEXT: "kind": "ObjCProtocolDecl",
758// CHECK-NEXT: "name": "P"
759// CHECK-NEXT: }
760// CHECK-NEXT: ],
761// CHECK-NEXT: "inner": [
762// CHECK-NEXT: {
763// CHECK-NEXT: "id": "0x{{.*}}",
764// CHECK-NEXT: "kind": "ObjCMethodDecl",
765// CHECK-NEXT: "loc": {
766// CHECK-NEXT: "col": 1,
767// CHECK-NEXT: "file": "{{.*}}",
768// CHECK-NEXT: "line": 48
769// CHECK-NEXT: },
770// CHECK-NEXT: "range": {
771// CHECK-NEXT: "begin": {
772// CHECK-NEXT: "col": 1,
773// CHECK-NEXT: "file": "{{.*}}",
774// CHECK-NEXT: "line": 48
775// CHECK-NEXT: },
776// CHECK-NEXT: "end": {
777// CHECK-NEXT: "col": 13,
778// CHECK-NEXT: "file": "{{.*}}",
779// CHECK-NEXT: "line": 48
780// CHECK-NEXT: }
781// CHECK-NEXT: },
782// CHECK-NEXT: "name": "bar",
783// CHECK-NEXT: "returnType": {
784// CHECK-NEXT: "qualType": "void"
785// CHECK-NEXT: },
786// CHECK-NEXT: "instance": true
787// CHECK-NEXT: }
788// CHECK-NEXT: ]
789// CHECK-NEXT: }
790
791
792// CHECK: "kind": "ObjCInterfaceDecl",
793// CHECK-NEXT: "loc": {
794// CHECK-NEXT: "col": 12,
795// CHECK-NEXT: "file": "{{.*}}",
796// CHECK-NEXT: "line": 51
797// CHECK-NEXT: },
798// CHECK-NEXT: "range": {
799// CHECK-NEXT: "begin": {
800// CHECK-NEXT: "col": 1,
801// CHECK-NEXT: "file": "{{.*}}",
802// CHECK-NEXT: "line": 51
803// CHECK-NEXT: },
804// CHECK-NEXT: "end": {
805// CHECK-NEXT: "col": 2,
806// CHECK-NEXT: "file": "{{.*}}",
807// CHECK-NEXT: "line": 53
808// CHECK-NEXT: }
809// CHECK-NEXT: },
810// CHECK-NEXT: "name": "TestGenericInterface",
811// CHECK-NEXT: "super": {
812// CHECK-NEXT: "id": "0x{{.*}}",
813// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
814// CHECK-NEXT: "name": "A"
815// CHECK-NEXT: },
816// CHECK-NEXT: "implementation": {
817// CHECK-NEXT: "id": "0x{{.*}}"
818// CHECK-NEXT: },
819// CHECK-NEXT: "protocols": [
820// CHECK-NEXT: {
821// CHECK-NEXT: "id": "0x{{.*}}",
822// CHECK-NEXT: "kind": "ObjCProtocolDecl",
823// CHECK-NEXT: "name": "P"
824// CHECK-NEXT: }
825// CHECK-NEXT: ],
826// CHECK-NEXT: "inner": [
827// CHECK-NEXT: {
828// CHECK-NEXT: "id": "0x{{.*}}",
829// CHECK-NEXT: "kind": "ObjCTypeParamDecl",
830// CHECK-NEXT: "loc": {
831// CHECK-NEXT: "col": 33,
832// CHECK-NEXT: "file": "{{.*}}",
833// CHECK-NEXT: "line": 51
834// CHECK-NEXT: },
835// CHECK-NEXT: "range": {
836// CHECK-NEXT: "begin": {
837// CHECK-NEXT: "col": 33,
838// CHECK-NEXT: "file": "{{.*}}",
839// CHECK-NEXT: "line": 51
840// CHECK-NEXT: },
841// CHECK-NEXT: "end": {
842// CHECK-NEXT: "col": 33,
843// CHECK-NEXT: "file": "{{.*}}",
844// CHECK-NEXT: "line": 51
845// CHECK-NEXT: }
846// CHECK-NEXT: },
847// CHECK-NEXT: "name": "T",
848// CHECK-NEXT: "type": {
849// CHECK-NEXT: "desugaredQualType": "id",
850// CHECK-NEXT: "qualType": "id"
851// CHECK-NEXT: }
852// CHECK-NEXT: }
853// CHECK-NEXT: ]
854// CHECK-NEXT: }
855
856
857// CHECK: "kind": "ObjCCategoryImplDecl",
858// CHECK-NEXT: "loc": {
859// CHECK-NEXT: "col": 17,
860// CHECK-NEXT: "file": "{{.*}}",
861// CHECK-NEXT: "line": 55
862// CHECK-NEXT: },
863// CHECK-NEXT: "range": {
864// CHECK-NEXT: "begin": {
865// CHECK-NEXT: "col": 1,
866// CHECK-NEXT: "file": "{{.*}}",
867// CHECK-NEXT: "line": 55
868// CHECK-NEXT: },
869// CHECK-NEXT: "end": {
870// CHECK-NEXT: "col": 1,
871// CHECK-NEXT: "file": "{{.*}}",
872// CHECK-NEXT: "line": 58
873// CHECK-NEXT: }
874// CHECK-NEXT: },
875// CHECK-NEXT: "name": "TestObjCCategoryDecl",
876// CHECK-NEXT: "interface": {
877// CHECK-NEXT: "id": "0x{{.*}}",
878// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
879// CHECK-NEXT: "name": "TestObjCClass"
880// CHECK-NEXT: },
881// CHECK-NEXT: "categoryDecl": {
882// CHECK-NEXT: "id": "0x{{.*}}",
883// CHECK-NEXT: "kind": "ObjCCategoryDecl",
884// CHECK-NEXT: "name": "TestObjCCategoryDecl"
885// CHECK-NEXT: },
886// CHECK-NEXT: "inner": [
887// CHECK-NEXT: {
888// CHECK-NEXT: "id": "0x{{.*}}",
889// CHECK-NEXT: "kind": "ObjCMethodDecl",
890// CHECK-NEXT: "loc": {
891// CHECK-NEXT: "col": 1,
892// CHECK-NEXT: "file": "{{.*}}",
893// CHECK-NEXT: "line": 56
894// CHECK-NEXT: },
895// CHECK-NEXT: "range": {
896// CHECK-NEXT: "begin": {
897// CHECK-NEXT: "col": 1,
898// CHECK-NEXT: "file": "{{.*}}",
899// CHECK-NEXT: "line": 56
900// CHECK-NEXT: },
901// CHECK-NEXT: "end": {
902// CHECK-NEXT: "col": 1,
903// CHECK-NEXT: "file": "{{.*}}",
904// CHECK-NEXT: "line": 57
905// CHECK-NEXT: }
906// CHECK-NEXT: },
907// CHECK-NEXT: "name": "bar",
908// CHECK-NEXT: "returnType": {
909// CHECK-NEXT: "qualType": "void"
910// CHECK-NEXT: },
911// CHECK-NEXT: "instance": true,
912// CHECK-NEXT: "inner": [
913// CHECK-NEXT: {
914// CHECK-NEXT: "id": "0x{{.*}}",
915// CHECK-NEXT: "kind": "ImplicitParamDecl",
916// CHECK-NEXT: "loc": {},
917// CHECK-NEXT: "range": {
918// CHECK-NEXT: "begin": {},
919// CHECK-NEXT: "end": {}
920// CHECK-NEXT: },
921// CHECK-NEXT: "isImplicit": true,
922// CHECK-NEXT: "name": "self",
923// CHECK-NEXT: "type": {
924// CHECK-NEXT: "qualType": "TestObjCClass *"
925// CHECK-NEXT: }
926// CHECK-NEXT: },
927// CHECK-NEXT: {
928// CHECK-NEXT: "id": "0x{{.*}}",
929// CHECK-NEXT: "kind": "ImplicitParamDecl",
930// CHECK-NEXT: "loc": {},
931// CHECK-NEXT: "range": {
932// CHECK-NEXT: "begin": {},
933// CHECK-NEXT: "end": {}
934// CHECK-NEXT: },
935// CHECK-NEXT: "isImplicit": true,
936// CHECK-NEXT: "name": "_cmd",
937// CHECK-NEXT: "type": {
938// CHECK-NEXT: "desugaredQualType": "SEL *",
939// CHECK-NEXT: "qualType": "SEL"
940// CHECK-NEXT: }
941// CHECK-NEXT: },
942// CHECK-NEXT: {
943// CHECK-NEXT: "id": "0x{{.*}}",
944// CHECK-NEXT: "kind": "CompoundStmt",
945// CHECK-NEXT: "range": {
946// CHECK-NEXT: "begin": {
947// CHECK-NEXT: "col": 14,
948// CHECK-NEXT: "file": "{{.*}}",
949// CHECK-NEXT: "line": 56
950// CHECK-NEXT: },
951// CHECK-NEXT: "end": {
952// CHECK-NEXT: "col": 1,
953// CHECK-NEXT: "file": "{{.*}}",
954// CHECK-NEXT: "line": 57
955// CHECK-NEXT: }
956// CHECK-NEXT: }
957// CHECK-NEXT: }
958// CHECK-NEXT: ]
959// CHECK-NEXT: }
960// CHECK-NEXT: ]
961// CHECK-NEXT: }
962
963
964// CHECK: "kind": "ObjCCompatibleAliasDecl",
965// CHECK-NEXT: "loc": {
966// CHECK-NEXT: "col": 1,
967// CHECK-NEXT: "file": "{{.*}}",
968// CHECK-NEXT: "line": 60
969// CHECK-NEXT: },
970// CHECK-NEXT: "range": {
971// CHECK-NEXT: "begin": {
972// CHECK-NEXT: "col": 1,
973// CHECK-NEXT: "file": "{{.*}}",
974// CHECK-NEXT: "line": 60
975// CHECK-NEXT: },
976// CHECK-NEXT: "end": {
977// CHECK-NEXT: "col": 1,
978// CHECK-NEXT: "file": "{{.*}}",
979// CHECK-NEXT: "line": 60
980// CHECK-NEXT: }
981// CHECK-NEXT: },
982// CHECK-NEXT: "name": "TestObjCCompatibleAliasDecl",
983// CHECK-NEXT: "interface": {
984// CHECK-NEXT: "id": "0x{{.*}}",
985// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
986// CHECK-NEXT: "name": "A"
987// CHECK-NEXT: }
988// CHECK-NEXT: }
989
990
991// CHECK: "kind": "ObjCInterfaceDecl",
992// CHECK-NEXT: "loc": {
993// CHECK-NEXT: "col": 12,
994// CHECK-NEXT: "file": "{{.*}}",
995// CHECK-NEXT: "line": 62
996// CHECK-NEXT: },
997// CHECK-NEXT: "range": {
998// CHECK-NEXT: "begin": {
999// CHECK-NEXT: "col": 1,
1000// CHECK-NEXT: "file": "{{.*}}",
1001// CHECK-NEXT: "line": 62
1002// CHECK-NEXT: },
1003// CHECK-NEXT: "end": {
1004// CHECK-NEXT: "col": 2,
1005// CHECK-NEXT: "file": "{{.*}}",
1006// CHECK-NEXT: "line": 65
1007// CHECK-NEXT: }
1008// CHECK-NEXT: },
1009// CHECK-NEXT: "name": "TestObjCProperty",
1010// CHECK-NEXT: "super": {
1011// CHECK-NEXT: "id": "0x{{.*}}",
1012// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
1013// CHECK-NEXT: "name": "A"
1014// CHECK-NEXT: },
1015// CHECK-NEXT: "implementation": {
1016// CHECK-NEXT: "id": "0x{{.*}}",
1017// CHECK-NEXT: "kind": "ObjCImplementationDecl",
1018// CHECK-NEXT: "name": "TestObjCProperty"
1019// CHECK-NEXT: },
1020// CHECK-NEXT: "inner": [
1021// CHECK-NEXT: {
1022// CHECK-NEXT: "id": "0x{{.*}}",
1023// CHECK-NEXT: "kind": "ObjCPropertyDecl",
1024// CHECK-NEXT: "loc": {
1025// CHECK-NEXT: "col": 52,
1026// CHECK-NEXT: "file": "{{.*}}",
1027// CHECK-NEXT: "line": 63
1028// CHECK-NEXT: },
1029// CHECK-NEXT: "range": {
1030// CHECK-NEXT: "begin": {
1031// CHECK-NEXT: "col": 1,
1032// CHECK-NEXT: "file": "{{.*}}",
1033// CHECK-NEXT: "line": 63
1034// CHECK-NEXT: },
1035// CHECK-NEXT: "end": {
1036// CHECK-NEXT: "col": 52,
1037// CHECK-NEXT: "file": "{{.*}}",
1038// CHECK-NEXT: "line": 63
1039// CHECK-NEXT: }
1040// CHECK-NEXT: },
1041// CHECK-NEXT: "name": "foo",
1042// CHECK-NEXT: "type": {
1043// CHECK-NEXT: "qualType": "int"
1044// CHECK-NEXT: },
1045// CHECK-NEXT: "getter": {
1046// CHECK-NEXT: "id": "0x{{.*}}",
1047// CHECK-NEXT: "kind": "ObjCMethodDecl",
1048// CHECK-NEXT: "name": "getterFoo"
1049// CHECK-NEXT: },
1050// CHECK-NEXT: "setter": {
1051// CHECK-NEXT: "id": "0x{{.*}}",
1052// CHECK-NEXT: "kind": "ObjCMethodDecl",
1053// CHECK-NEXT: "name": "setterFoo:"
1054// CHECK-NEXT: },
1055// CHECK-NEXT: "assign": true,
1056// CHECK-NEXT: "readwrite": true,
1057// CHECK-NEXT: "atomic": true,
1058// CHECK-NEXT: "unsafe_unretained": true
1059// CHECK-NEXT: },
1060// CHECK-NEXT: {
1061// CHECK-NEXT: "id": "0x{{.*}}",
1062// CHECK-NEXT: "kind": "ObjCPropertyDecl",
1063// CHECK-NEXT: "loc": {
1064// CHECK-NEXT: "col": 15,
1065// CHECK-NEXT: "file": "{{.*}}",
1066// CHECK-NEXT: "line": 64
1067// CHECK-NEXT: },
1068// CHECK-NEXT: "range": {
1069// CHECK-NEXT: "begin": {
1070// CHECK-NEXT: "col": 1,
1071// CHECK-NEXT: "file": "{{.*}}",
1072// CHECK-NEXT: "line": 64
1073// CHECK-NEXT: },
1074// CHECK-NEXT: "end": {
1075// CHECK-NEXT: "col": 15,
1076// CHECK-NEXT: "file": "{{.*}}",
1077// CHECK-NEXT: "line": 64
1078// CHECK-NEXT: }
1079// CHECK-NEXT: },
1080// CHECK-NEXT: "name": "bar",
1081// CHECK-NEXT: "type": {
1082// CHECK-NEXT: "qualType": "int"
1083// CHECK-NEXT: },
1084// CHECK-NEXT: "assign": true,
1085// CHECK-NEXT: "readwrite": true,
1086// CHECK-NEXT: "atomic": true,
1087// CHECK-NEXT: "unsafe_unretained": true
1088// CHECK-NEXT: },
1089// CHECK-NEXT: {
1090// CHECK-NEXT: "id": "0x{{.*}}",
1091// CHECK-NEXT: "kind": "ObjCMethodDecl",
1092// CHECK-NEXT: "loc": {
1093// CHECK-NEXT: "col": 52,
1094// CHECK-NEXT: "file": "{{.*}}",
1095// CHECK-NEXT: "line": 63
1096// CHECK-NEXT: },
1097// CHECK-NEXT: "range": {
1098// CHECK-NEXT: "begin": {
1099// CHECK-NEXT: "col": 52,
1100// CHECK-NEXT: "file": "{{.*}}",
1101// CHECK-NEXT: "line": 63
1102// CHECK-NEXT: },
1103// CHECK-NEXT: "end": {
1104// CHECK-NEXT: "col": 52,
1105// CHECK-NEXT: "file": "{{.*}}",
1106// CHECK-NEXT: "line": 63
1107// CHECK-NEXT: }
1108// CHECK-NEXT: },
1109// CHECK-NEXT: "isImplicit": true,
1110// CHECK-NEXT: "name": "getterFoo",
1111// CHECK-NEXT: "returnType": {
1112// CHECK-NEXT: "qualType": "int"
1113// CHECK-NEXT: },
1114// CHECK-NEXT: "instance": true
1115// CHECK-NEXT: },
1116// CHECK-NEXT: {
1117// CHECK-NEXT: "id": "0x{{.*}}",
1118// CHECK-NEXT: "kind": "ObjCMethodDecl",
1119// CHECK-NEXT: "loc": {
1120// CHECK-NEXT: "col": 52,
1121// CHECK-NEXT: "file": "{{.*}}",
1122// CHECK-NEXT: "line": 63
1123// CHECK-NEXT: },
1124// CHECK-NEXT: "range": {
1125// CHECK-NEXT: "begin": {
1126// CHECK-NEXT: "col": 52,
1127// CHECK-NEXT: "file": "{{.*}}",
1128// CHECK-NEXT: "line": 63
1129// CHECK-NEXT: },
1130// CHECK-NEXT: "end": {
1131// CHECK-NEXT: "col": 52,
1132// CHECK-NEXT: "file": "{{.*}}",
1133// CHECK-NEXT: "line": 63
1134// CHECK-NEXT: }
1135// CHECK-NEXT: },
1136// CHECK-NEXT: "isImplicit": true,
1137// CHECK-NEXT: "name": "setterFoo:",
1138// CHECK-NEXT: "returnType": {
1139// CHECK-NEXT: "qualType": "void"
1140// CHECK-NEXT: },
1141// CHECK-NEXT: "instance": true,
1142// CHECK-NEXT: "inner": [
1143// CHECK-NEXT: {
1144// CHECK-NEXT: "id": "0x{{.*}}",
1145// CHECK-NEXT: "kind": "ParmVarDecl",
1146// CHECK-NEXT: "loc": {
1147// CHECK-NEXT: "col": 52,
1148// CHECK-NEXT: "file": "{{.*}}",
1149// CHECK-NEXT: "line": 63
1150// CHECK-NEXT: },
1151// CHECK-NEXT: "range": {
1152// CHECK-NEXT: "begin": {
1153// CHECK-NEXT: "col": 52,
1154// CHECK-NEXT: "file": "{{.*}}",
1155// CHECK-NEXT: "line": 63
1156// CHECK-NEXT: },
1157// CHECK-NEXT: "end": {
1158// CHECK-NEXT: "col": 52,
1159// CHECK-NEXT: "file": "{{.*}}",
1160// CHECK-NEXT: "line": 63
1161// CHECK-NEXT: }
1162// CHECK-NEXT: },
1163// CHECK-NEXT: "name": "foo",
1164// CHECK-NEXT: "type": {
1165// CHECK-NEXT: "qualType": "int"
1166// CHECK-NEXT: }
1167// CHECK-NEXT: }
1168// CHECK-NEXT: ]
1169// CHECK-NEXT: },
1170// CHECK-NEXT: {
1171// CHECK-NEXT: "id": "0x{{.*}}",
1172// CHECK-NEXT: "kind": "ObjCMethodDecl",
1173// CHECK-NEXT: "loc": {
1174// CHECK-NEXT: "col": 15,
1175// CHECK-NEXT: "file": "{{.*}}",
1176// CHECK-NEXT: "line": 64
1177// CHECK-NEXT: },
1178// CHECK-NEXT: "range": {
1179// CHECK-NEXT: "begin": {
1180// CHECK-NEXT: "col": 15,
1181// CHECK-NEXT: "file": "{{.*}}",
1182// CHECK-NEXT: "line": 64
1183// CHECK-NEXT: },
1184// CHECK-NEXT: "end": {
1185// CHECK-NEXT: "col": 15,
1186// CHECK-NEXT: "file": "{{.*}}",
1187// CHECK-NEXT: "line": 64
1188// CHECK-NEXT: }
1189// CHECK-NEXT: },
1190// CHECK-NEXT: "isImplicit": true,
1191// CHECK-NEXT: "name": "bar",
1192// CHECK-NEXT: "returnType": {
1193// CHECK-NEXT: "qualType": "int"
1194// CHECK-NEXT: },
1195// CHECK-NEXT: "instance": true
1196// CHECK-NEXT: },
1197// CHECK-NEXT: {
1198// CHECK-NEXT: "id": "0x{{.*}}",
1199// CHECK-NEXT: "kind": "ObjCMethodDecl",
1200// CHECK-NEXT: "loc": {
1201// CHECK-NEXT: "col": 15,
1202// CHECK-NEXT: "file": "{{.*}}",
1203// CHECK-NEXT: "line": 64
1204// CHECK-NEXT: },
1205// CHECK-NEXT: "range": {
1206// CHECK-NEXT: "begin": {
1207// CHECK-NEXT: "col": 15,
1208// CHECK-NEXT: "file": "{{.*}}",
1209// CHECK-NEXT: "line": 64
1210// CHECK-NEXT: },
1211// CHECK-NEXT: "end": {
1212// CHECK-NEXT: "col": 15,
1213// CHECK-NEXT: "file": "{{.*}}",
1214// CHECK-NEXT: "line": 64
1215// CHECK-NEXT: }
1216// CHECK-NEXT: },
1217// CHECK-NEXT: "isImplicit": true,
1218// CHECK-NEXT: "name": "setBar:",
1219// CHECK-NEXT: "returnType": {
1220// CHECK-NEXT: "qualType": "void"
1221// CHECK-NEXT: },
1222// CHECK-NEXT: "instance": true,
1223// CHECK-NEXT: "inner": [
1224// CHECK-NEXT: {
1225// CHECK-NEXT: "id": "0x{{.*}}",
1226// CHECK-NEXT: "kind": "ParmVarDecl",
1227// CHECK-NEXT: "loc": {
1228// CHECK-NEXT: "col": 15,
1229// CHECK-NEXT: "file": "{{.*}}",
1230// CHECK-NEXT: "line": 64
1231// CHECK-NEXT: },
1232// CHECK-NEXT: "range": {
1233// CHECK-NEXT: "begin": {
1234// CHECK-NEXT: "col": 15,
1235// CHECK-NEXT: "file": "{{.*}}",
1236// CHECK-NEXT: "line": 64
1237// CHECK-NEXT: },
1238// CHECK-NEXT: "end": {
1239// CHECK-NEXT: "col": 15,
1240// CHECK-NEXT: "file": "{{.*}}",
1241// CHECK-NEXT: "line": 64
1242// CHECK-NEXT: }
1243// CHECK-NEXT: },
1244// CHECK-NEXT: "name": "bar",
1245// CHECK-NEXT: "type": {
1246// CHECK-NEXT: "qualType": "int"
1247// CHECK-NEXT: }
1248// CHECK-NEXT: }
1249// CHECK-NEXT: ]
1250// CHECK-NEXT: }
1251// CHECK-NEXT: ]
1252// CHECK-NEXT: }
1253
1254
1255// CHECK: "kind": "ObjCImplementationDecl",
1256// CHECK-NEXT: "loc": {
1257// CHECK-NEXT: "col": 17,
1258// CHECK-NEXT: "file": "{{.*}}",
1259// CHECK-NEXT: "line": 67
1260// CHECK-NEXT: },
1261// CHECK-NEXT: "range": {
1262// CHECK-NEXT: "begin": {
1263// CHECK-NEXT: "col": 1,
1264// CHECK-NEXT: "file": "{{.*}}",
1265// CHECK-NEXT: "line": 67
1266// CHECK-NEXT: },
1267// CHECK-NEXT: "end": {
1268// CHECK-NEXT: "col": 1,
1269// CHECK-NEXT: "file": "{{.*}}",
1270// CHECK-NEXT: "line": 72
1271// CHECK-NEXT: }
1272// CHECK-NEXT: },
1273// CHECK-NEXT: "name": "TestObjCProperty",
1274// CHECK-NEXT: "super": {
1275// CHECK-NEXT: "id": "0x{{.*}}"
1276// CHECK-NEXT: },
1277// CHECK-NEXT: "interface": {
1278// CHECK-NEXT: "id": "0x{{.*}}",
1279// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
1280// CHECK-NEXT: "name": "TestObjCProperty"
1281// CHECK-NEXT: },
1282// CHECK-NEXT: "inner": [
1283// CHECK-NEXT: {
1284// CHECK-NEXT: "id": "0x{{.*}}",
1285// CHECK-NEXT: "kind": "ObjCIvarDecl",
1286// CHECK-NEXT: "loc": {
1287// CHECK-NEXT: "col": 7,
1288// CHECK-NEXT: "file": "{{.*}}",
1289// CHECK-NEXT: "line": 68
1290// CHECK-NEXT: },
1291// CHECK-NEXT: "range": {
1292// CHECK-NEXT: "begin": {
1293// CHECK-NEXT: "col": 3,
1294// CHECK-NEXT: "file": "{{.*}}",
1295// CHECK-NEXT: "line": 68
1296// CHECK-NEXT: },
1297// CHECK-NEXT: "end": {
1298// CHECK-NEXT: "col": 7,
1299// CHECK-NEXT: "file": "{{.*}}",
1300// CHECK-NEXT: "line": 68
1301// CHECK-NEXT: }
1302// CHECK-NEXT: },
1303// CHECK-NEXT: "name": "i",
1304// CHECK-NEXT: "type": {
1305// CHECK-NEXT: "qualType": "int"
1306// CHECK-NEXT: },
1307// CHECK-NEXT: "access": "private"
1308// CHECK-NEXT: },
1309// CHECK-NEXT: {
1310// CHECK-NEXT: "id": "0x{{.*}}",
1311// CHECK-NEXT: "kind": "ObjCPropertyImplDecl",
1312// CHECK-NEXT: "loc": {
1313// CHECK-NEXT: "col": 13,
1314// CHECK-NEXT: "file": "{{.*}}",
1315// CHECK-NEXT: "line": 70
1316// CHECK-NEXT: },
1317// CHECK-NEXT: "range": {
1318// CHECK-NEXT: "begin": {
1319// CHECK-NEXT: "col": 1,
1320// CHECK-NEXT: "file": "{{.*}}",
1321// CHECK-NEXT: "line": 70
1322// CHECK-NEXT: },
1323// CHECK-NEXT: "end": {
1324// CHECK-NEXT: "col": 17,
1325// CHECK-NEXT: "file": "{{.*}}",
1326// CHECK-NEXT: "line": 70
1327// CHECK-NEXT: }
1328// CHECK-NEXT: },
1329// CHECK-NEXT: "name": "foo",
1330// CHECK-NEXT: "implKind": "synthesize",
1331// CHECK-NEXT: "propertyDecl": {
1332// CHECK-NEXT: "id": "0x{{.*}}",
1333// CHECK-NEXT: "kind": "ObjCPropertyDecl",
1334// CHECK-NEXT: "name": "foo"
1335// CHECK-NEXT: },
1336// CHECK-NEXT: "ivarDecl": {
1337// CHECK-NEXT: "id": "0x{{.*}}",
1338// CHECK-NEXT: "kind": "ObjCIvarDecl",
1339// CHECK-NEXT: "name": "i",
1340// CHECK-NEXT: "type": {
1341// CHECK-NEXT: "qualType": "int"
1342// CHECK-NEXT: }
1343// CHECK-NEXT: }
1344// CHECK-NEXT: },
1345// CHECK-NEXT: {
1346// CHECK-NEXT: "id": "0x{{.*}}",
1347// CHECK-NEXT: "kind": "ObjCIvarDecl",
1348// CHECK-NEXT: "loc": {
1349// CHECK-NEXT: "col": 13,
1350// CHECK-NEXT: "file": "{{.*}}",
1351// CHECK-NEXT: "line": 71
1352// CHECK-NEXT: },
1353// CHECK-NEXT: "range": {
1354// CHECK-NEXT: "begin": {
1355// CHECK-NEXT: "col": 13,
1356// CHECK-NEXT: "file": "{{.*}}",
1357// CHECK-NEXT: "line": 71
1358// CHECK-NEXT: },
1359// CHECK-NEXT: "end": {
1360// CHECK-NEXT: "col": 13,
1361// CHECK-NEXT: "file": "{{.*}}",
1362// CHECK-NEXT: "line": 71
1363// CHECK-NEXT: }
1364// CHECK-NEXT: },
1365// CHECK-NEXT: "name": "bar",
1366// CHECK-NEXT: "type": {
1367// CHECK-NEXT: "qualType": "int"
1368// CHECK-NEXT: },
1369// CHECK-NEXT: "synthesized": true,
1370// CHECK-NEXT: "access": "private"
1371// CHECK-NEXT: },
1372// CHECK-NEXT: {
1373// CHECK-NEXT: "id": "0x{{.*}}",
1374// CHECK-NEXT: "kind": "ObjCPropertyImplDecl",
1375// CHECK-NEXT: "loc": {
1376// CHECK-NEXT: "col": 13,
1377// CHECK-NEXT: "file": "{{.*}}",
1378// CHECK-NEXT: "line": 71
1379// CHECK-NEXT: },
1380// CHECK-NEXT: "range": {
1381// CHECK-NEXT: "begin": {
1382// CHECK-NEXT: "col": 1,
1383// CHECK-NEXT: "file": "{{.*}}",
1384// CHECK-NEXT: "line": 71
1385// CHECK-NEXT: },
1386// CHECK-NEXT: "end": {
1387// CHECK-NEXT: "col": 13,
1388// CHECK-NEXT: "file": "{{.*}}",
1389// CHECK-NEXT: "line": 71
1390// CHECK-NEXT: }
1391// CHECK-NEXT: },
1392// CHECK-NEXT: "name": "bar",
1393// CHECK-NEXT: "implKind": "synthesize",
1394// CHECK-NEXT: "propertyDecl": {
1395// CHECK-NEXT: "id": "0x{{.*}}",
1396// CHECK-NEXT: "kind": "ObjCPropertyDecl",
1397// CHECK-NEXT: "name": "bar"
1398// CHECK-NEXT: },
1399// CHECK-NEXT: "ivarDecl": {
1400// CHECK-NEXT: "id": "0x{{.*}}",
1401// CHECK-NEXT: "kind": "ObjCIvarDecl",
1402// CHECK-NEXT: "name": "bar",
1403// CHECK-NEXT: "type": {
1404// CHECK-NEXT: "qualType": "int"
1405// CHECK-NEXT: }
1406// CHECK-NEXT: }
1407// CHECK-NEXT: }
1408// CHECK-NEXT: ]
1409// CHECK-NEXT: }
1410
1411
1412// CHECK: "kind": "FunctionDecl",
1413// CHECK-NEXT: "loc": {
1414// CHECK-NEXT: "col": 6,
1415// CHECK-NEXT: "file": "{{.*}}",
1416// CHECK-NEXT: "line": 74
1417// CHECK-NEXT: },
1418// CHECK-NEXT: "range": {
1419// CHECK-NEXT: "begin": {
1420// CHECK-NEXT: "col": 1,
1421// CHECK-NEXT: "file": "{{.*}}",
1422// CHECK-NEXT: "line": 74
1423// CHECK-NEXT: },
1424// CHECK-NEXT: "end": {
1425// CHECK-NEXT: "col": 1,
1426// CHECK-NEXT: "file": "{{.*}}",
1427// CHECK-NEXT: "line": 76
1428// CHECK-NEXT: }
1429// CHECK-NEXT: },
1430// CHECK-NEXT: "name": "TestBlockDecl",
1431// CHECK-NEXT: "type": {
1432// CHECK-NEXT: "qualType": "void (int)"
1433// CHECK-NEXT: },
1434// CHECK-NEXT: "inner": [
1435// CHECK-NEXT: {
1436// CHECK-NEXT: "id": "0x{{.*}}",
1437// CHECK-NEXT: "kind": "ParmVarDecl",
1438// CHECK-NEXT: "loc": {
1439// CHECK-NEXT: "col": 24,
1440// CHECK-NEXT: "file": "{{.*}}",
1441// CHECK-NEXT: "line": 74
1442// CHECK-NEXT: },
1443// CHECK-NEXT: "range": {
1444// CHECK-NEXT: "begin": {
1445// CHECK-NEXT: "col": 20,
1446// CHECK-NEXT: "file": "{{.*}}",
1447// CHECK-NEXT: "line": 74
1448// CHECK-NEXT: },
1449// CHECK-NEXT: "end": {
1450// CHECK-NEXT: "col": 24,
1451// CHECK-NEXT: "file": "{{.*}}",
1452// CHECK-NEXT: "line": 74
1453// CHECK-NEXT: }
1454// CHECK-NEXT: },
1455// CHECK-NEXT: "isUsed": true,
1456// CHECK-NEXT: "name": "x",
1457// CHECK-NEXT: "type": {
1458// CHECK-NEXT: "qualType": "int"
1459// CHECK-NEXT: }
1460// CHECK-NEXT: },
1461// CHECK-NEXT: {
1462// CHECK-NEXT: "id": "0x{{.*}}",
1463// CHECK-NEXT: "kind": "CompoundStmt",
1464// CHECK-NEXT: "range": {
1465// CHECK-NEXT: "begin": {
1466// CHECK-NEXT: "col": 27,
1467// CHECK-NEXT: "file": "{{.*}}",
1468// CHECK-NEXT: "line": 74
1469// CHECK-NEXT: },
1470// CHECK-NEXT: "end": {
1471// CHECK-NEXT: "col": 1,
1472// CHECK-NEXT: "file": "{{.*}}",
1473// CHECK-NEXT: "line": 76
1474// CHECK-NEXT: }
1475// CHECK-NEXT: },
1476// CHECK-NEXT: "inner": [
1477// CHECK-NEXT: {
1478// CHECK-NEXT: "id": "0x{{.*}}",
1479// CHECK-NEXT: "kind": "ExprWithCleanups",
1480// CHECK-NEXT: "range": {
1481// CHECK-NEXT: "begin": {
1482// CHECK-NEXT: "col": 3,
1483// CHECK-NEXT: "file": "{{.*}}",
1484// CHECK-NEXT: "line": 75
1485// CHECK-NEXT: },
1486// CHECK-NEXT: "end": {
1487// CHECK-NEXT: "col": 21,
1488// CHECK-NEXT: "file": "{{.*}}",
1489// CHECK-NEXT: "line": 75
1490// CHECK-NEXT: }
1491// CHECK-NEXT: },
1492// CHECK-NEXT: "type": {
1493// CHECK-NEXT: "qualType": "void (^)(int, ...)"
1494// CHECK-NEXT: },
1495// CHECK-NEXT: "valueCategory": "rvalue",
Aaron Ballman1fffe8d2019-06-20 16:22:35 +00001496// CHECK-NEXT: "cleanupsHaveSideEffects": true,
1497// CHECK-NEXT: "cleanups": [
1498// CHECK-NEXT: {
1499// CHECK-NEXT: "id": "0x{{.*}}",
1500// CHECK-NEXT: "kind": "BlockDecl"
1501// CHECK-NEXT: }
1502// CHECK-NEXT: ],
Aaron Ballman41058822019-05-24 17:39:55 +00001503// CHECK-NEXT: "inner": [
1504// CHECK-NEXT: {
1505// CHECK-NEXT: "id": "0x{{.*}}",
1506// CHECK-NEXT: "kind": "BlockExpr",
1507// CHECK-NEXT: "range": {
1508// CHECK-NEXT: "begin": {
1509// CHECK-NEXT: "col": 3,
1510// CHECK-NEXT: "file": "{{.*}}",
1511// CHECK-NEXT: "line": 75
1512// CHECK-NEXT: },
1513// CHECK-NEXT: "end": {
1514// CHECK-NEXT: "col": 21,
1515// CHECK-NEXT: "file": "{{.*}}",
1516// CHECK-NEXT: "line": 75
1517// CHECK-NEXT: }
1518// CHECK-NEXT: },
1519// CHECK-NEXT: "type": {
1520// CHECK-NEXT: "qualType": "void (^)(int, ...)"
1521// CHECK-NEXT: },
1522// CHECK-NEXT: "valueCategory": "rvalue",
1523// CHECK-NEXT: "inner": [
1524// CHECK-NEXT: {
1525// CHECK-NEXT: "id": "0x{{.*}}",
1526// CHECK-NEXT: "kind": "BlockDecl",
1527// CHECK-NEXT: "loc": {
1528// CHECK-NEXT: "col": 3,
1529// CHECK-NEXT: "file": "{{.*}}",
1530// CHECK-NEXT: "line": 75
1531// CHECK-NEXT: },
1532// CHECK-NEXT: "range": {
1533// CHECK-NEXT: "begin": {
1534// CHECK-NEXT: "col": 3,
1535// CHECK-NEXT: "file": "{{.*}}",
1536// CHECK-NEXT: "line": 75
1537// CHECK-NEXT: },
1538// CHECK-NEXT: "end": {
1539// CHECK-NEXT: "col": 21,
1540// CHECK-NEXT: "file": "{{.*}}",
1541// CHECK-NEXT: "line": 75
1542// CHECK-NEXT: }
1543// CHECK-NEXT: },
1544// CHECK-NEXT: "variadic": true,
1545// CHECK-NEXT: "inner": [
1546// CHECK-NEXT: {
1547// CHECK-NEXT: "id": "0x{{.*}}",
1548// CHECK-NEXT: "kind": "ParmVarDecl",
1549// CHECK-NEXT: "loc": {
1550// CHECK-NEXT: "col": 9,
1551// CHECK-NEXT: "file": "{{.*}}",
1552// CHECK-NEXT: "line": 75
1553// CHECK-NEXT: },
1554// CHECK-NEXT: "range": {
1555// CHECK-NEXT: "begin": {
1556// CHECK-NEXT: "col": 5,
1557// CHECK-NEXT: "file": "{{.*}}",
1558// CHECK-NEXT: "line": 75
1559// CHECK-NEXT: },
1560// CHECK-NEXT: "end": {
1561// CHECK-NEXT: "col": 9,
1562// CHECK-NEXT: "file": "{{.*}}",
1563// CHECK-NEXT: "line": 75
1564// CHECK-NEXT: }
1565// CHECK-NEXT: },
1566// CHECK-NEXT: "name": "y",
1567// CHECK-NEXT: "type": {
1568// CHECK-NEXT: "qualType": "int"
1569// CHECK-NEXT: }
1570// CHECK-NEXT: },
1571// CHECK-NEXT: {
1572// CHECK-NEXT: "kind": "Capture",
1573// CHECK-NEXT: "var": {
1574// CHECK-NEXT: "id": "0x{{.*}}",
1575// CHECK-NEXT: "kind": "ParmVarDecl",
1576// CHECK-NEXT: "name": "x",
1577// CHECK-NEXT: "type": {
1578// CHECK-NEXT: "qualType": "int"
1579// CHECK-NEXT: }
1580// CHECK-NEXT: }
1581// CHECK-NEXT: },
1582// CHECK-NEXT: {
1583// CHECK-NEXT: "id": "0x{{.*}}",
1584// CHECK-NEXT: "kind": "CompoundStmt",
1585// CHECK-NEXT: "range": {
1586// CHECK-NEXT: "begin": {
1587// CHECK-NEXT: "col": 16,
1588// CHECK-NEXT: "file": "{{.*}}",
1589// CHECK-NEXT: "line": 75
1590// CHECK-NEXT: },
1591// CHECK-NEXT: "end": {
1592// CHECK-NEXT: "col": 21,
1593// CHECK-NEXT: "file": "{{.*}}",
1594// CHECK-NEXT: "line": 75
1595// CHECK-NEXT: }
1596// CHECK-NEXT: },
1597// CHECK-NEXT: "inner": [
1598// CHECK-NEXT: {
1599// CHECK-NEXT: "id": "0x{{.*}}",
1600// CHECK-NEXT: "kind": "ImplicitCastExpr",
1601// CHECK-NEXT: "range": {
1602// CHECK-NEXT: "begin": {
1603// CHECK-NEXT: "col": 18,
1604// CHECK-NEXT: "file": "{{.*}}",
1605// CHECK-NEXT: "line": 75
1606// CHECK-NEXT: },
1607// CHECK-NEXT: "end": {
1608// CHECK-NEXT: "col": 18,
1609// CHECK-NEXT: "file": "{{.*}}",
1610// CHECK-NEXT: "line": 75
1611// CHECK-NEXT: }
1612// CHECK-NEXT: },
1613// CHECK-NEXT: "type": {
1614// CHECK-NEXT: "qualType": "int"
1615// CHECK-NEXT: },
1616// CHECK-NEXT: "valueCategory": "rvalue",
1617// CHECK-NEXT: "castKind": "LValueToRValue",
1618// CHECK-NEXT: "inner": [
1619// CHECK-NEXT: {
1620// CHECK-NEXT: "id": "0x{{.*}}",
1621// CHECK-NEXT: "kind": "DeclRefExpr",
1622// CHECK-NEXT: "range": {
1623// CHECK-NEXT: "begin": {
1624// CHECK-NEXT: "col": 18,
1625// CHECK-NEXT: "file": "{{.*}}",
1626// CHECK-NEXT: "line": 75
1627// CHECK-NEXT: },
1628// CHECK-NEXT: "end": {
1629// CHECK-NEXT: "col": 18,
1630// CHECK-NEXT: "file": "{{.*}}",
1631// CHECK-NEXT: "line": 75
1632// CHECK-NEXT: }
1633// CHECK-NEXT: },
1634// CHECK-NEXT: "type": {
1635// CHECK-NEXT: "qualType": "const int"
1636// CHECK-NEXT: },
1637// CHECK-NEXT: "valueCategory": "lvalue",
1638// CHECK-NEXT: "referencedDecl": {
1639// CHECK-NEXT: "id": "0x{{.*}}",
1640// CHECK-NEXT: "kind": "ParmVarDecl",
1641// CHECK-NEXT: "name": "x",
1642// CHECK-NEXT: "type": {
1643// CHECK-NEXT: "qualType": "int"
1644// CHECK-NEXT: }
1645// CHECK-NEXT: }
1646// CHECK-NEXT: }
1647// CHECK-NEXT: ]
1648// CHECK-NEXT: }
1649// CHECK-NEXT: ]
1650// CHECK-NEXT: },
1651// CHECK-NEXT: {
1652// CHECK-NEXT: "id": "0x{{.*}}",
1653// CHECK-NEXT: "kind": "ParmVarDecl",
1654// CHECK-NEXT: "loc": {
1655// CHECK-NEXT: "col": 9,
1656// CHECK-NEXT: "file": "{{.*}}",
1657// CHECK-NEXT: "line": 75
1658// CHECK-NEXT: },
1659// CHECK-NEXT: "range": {
1660// CHECK-NEXT: "begin": {
1661// CHECK-NEXT: "col": 5,
1662// CHECK-NEXT: "file": "{{.*}}",
1663// CHECK-NEXT: "line": 75
1664// CHECK-NEXT: },
1665// CHECK-NEXT: "end": {
1666// CHECK-NEXT: "col": 9,
1667// CHECK-NEXT: "file": "{{.*}}",
1668// CHECK-NEXT: "line": 75
1669// CHECK-NEXT: }
1670// CHECK-NEXT: },
1671// CHECK-NEXT: "name": "y",
1672// CHECK-NEXT: "type": {
1673// CHECK-NEXT: "qualType": "int"
1674// CHECK-NEXT: }
1675// CHECK-NEXT: }
1676// CHECK-NEXT: ]
1677// CHECK-NEXT: }
1678// CHECK-NEXT: ]
1679// CHECK-NEXT: }
1680// CHECK-NEXT: ]
1681// CHECK-NEXT: }
1682// CHECK-NEXT: ]
1683// CHECK-NEXT: }
1684// CHECK-NEXT: ]
1685// CHECK-NEXT: }
1686
1687
1688// CHECK: "kind": "VarDecl",
1689// CHECK-NEXT: "loc": {
1690// CHECK-NEXT: "col": 21,
1691// CHECK-NEXT: "file": "{{.*}}",
1692// CHECK-NEXT: "line": 83
1693// CHECK-NEXT: },
1694// CHECK-NEXT: "range": {
1695// CHECK-NEXT: "begin": {
1696// CHECK-NEXT: "col": 3,
1697// CHECK-NEXT: "file": "{{.*}}",
1698// CHECK-NEXT: "line": 83
1699// CHECK-NEXT: },
1700// CHECK-NEXT: "end": {
1701// CHECK-NEXT: "col": 21,
1702// CHECK-NEXT: "file": "{{.*}}",
1703// CHECK-NEXT: "line": 83
1704// CHECK-NEXT: }
1705// CHECK-NEXT: },
1706// CHECK-NEXT: "name": "Test",
1707// CHECK-NEXT: "type": {
1708// CHECK-NEXT: "desugaredQualType": "int",
1709// CHECK-NEXT: "qualType": "typeof (B.foo)"
1710// CHECK-NEXT: }
1711// CHECK-NEXT: }