blob: 5184106dd1164866fa4d7762d0ae4d73dac93820 [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 Ballman60294f92019-06-21 14:37:39 +000086// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
87
Aaron Ballman1fffe8d2019-06-20 16:22:35 +000088
Aaron Ballman41058822019-05-24 17:39:55 +000089// CHECK: "kind": "ObjCInterfaceDecl",
90// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +000091// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +000092// CHECK-NEXT: "line": 9,
93// CHECK-NEXT: "col": 12,
94// CHECK-NEXT: "tokLen": 16
Aaron Ballman41058822019-05-24 17:39:55 +000095// CHECK-NEXT: },
96// CHECK-NEXT: "range": {
97// CHECK-NEXT: "begin": {
98// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +000099// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000100// CHECK-NEXT: },
101// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000102// CHECK-NEXT: "line": 10,
Aaron Ballman41058822019-05-24 17:39:55 +0000103// CHECK-NEXT: "col": 2,
Aaron Ballmana612e342019-06-24 20:07:11 +0000104// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000105// CHECK-NEXT: }
106// CHECK-NEXT: },
107// CHECK-NEXT: "name": "TestObjCIvarDecl",
108// CHECK-NEXT: "super": {
109// CHECK-NEXT: "id": "0x{{.*}}",
110// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
111// CHECK-NEXT: "name": "A"
112// CHECK-NEXT: },
113// CHECK-NEXT: "implementation": {
114// CHECK-NEXT: "id": "0x{{.*}}",
115// CHECK-NEXT: "kind": "ObjCImplementationDecl",
116// CHECK-NEXT: "name": "TestObjCIvarDecl"
117// CHECK-NEXT: }
118// CHECK-NEXT: }
119
120
121// CHECK: "kind": "ObjCImplementationDecl",
122// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +0000123// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +0000124// CHECK-NEXT: "line": 12,
125// CHECK-NEXT: "col": 17,
126// CHECK-NEXT: "tokLen": 16
Aaron Ballman41058822019-05-24 17:39:55 +0000127// CHECK-NEXT: },
128// CHECK-NEXT: "range": {
129// CHECK-NEXT: "begin": {
130// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000131// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000132// CHECK-NEXT: },
133// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000134// CHECK-NEXT: "line": 19,
Aaron Ballman41058822019-05-24 17:39:55 +0000135// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000136// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000137// CHECK-NEXT: }
138// CHECK-NEXT: },
139// CHECK-NEXT: "name": "TestObjCIvarDecl",
140// CHECK-NEXT: "super": {
141// CHECK-NEXT: "id": "0x{{.*}}"
142// CHECK-NEXT: },
143// CHECK-NEXT: "interface": {
144// CHECK-NEXT: "id": "0x{{.*}}",
145// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
146// CHECK-NEXT: "name": "TestObjCIvarDecl"
147// CHECK-NEXT: },
148// CHECK-NEXT: "inner": [
149// CHECK-NEXT: {
150// CHECK-NEXT: "id": "0x{{.*}}",
151// CHECK-NEXT: "kind": "ObjCIvarDecl",
152// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000153// CHECK-NEXT: "line": 13,
Aaron Ballman41058822019-05-24 17:39:55 +0000154// CHECK-NEXT: "col": 7,
Aaron Ballmana612e342019-06-24 20:07:11 +0000155// CHECK-NEXT: "tokLen": 10
Aaron Ballman41058822019-05-24 17:39:55 +0000156// CHECK-NEXT: },
157// CHECK-NEXT: "range": {
158// CHECK-NEXT: "begin": {
159// CHECK-NEXT: "col": 3,
Aaron Ballmana612e342019-06-24 20:07:11 +0000160// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000161// CHECK-NEXT: },
162// CHECK-NEXT: "end": {
163// CHECK-NEXT: "col": 7,
Aaron Ballmana612e342019-06-24 20:07:11 +0000164// CHECK-NEXT: "tokLen": 10
Aaron Ballman41058822019-05-24 17:39:55 +0000165// 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": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000177// CHECK-NEXT: "line": 14,
Aaron Ballman41058822019-05-24 17:39:55 +0000178// CHECK-NEXT: "col": 16,
Aaron Ballmana612e342019-06-24 20:07:11 +0000179// CHECK-NEXT: "tokLen": 10
Aaron Ballman41058822019-05-24 17:39:55 +0000180// CHECK-NEXT: },
181// CHECK-NEXT: "range": {
182// CHECK-NEXT: "begin": {
183// CHECK-NEXT: "col": 12,
Aaron Ballmana612e342019-06-24 20:07:11 +0000184// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000185// CHECK-NEXT: },
186// CHECK-NEXT: "end": {
187// CHECK-NEXT: "col": 16,
Aaron Ballmana612e342019-06-24 20:07:11 +0000188// CHECK-NEXT: "tokLen": 10
Aaron Ballman41058822019-05-24 17:39:55 +0000189// CHECK-NEXT: }
190// CHECK-NEXT: },
191// CHECK-NEXT: "name": "varPrivate",
192// CHECK-NEXT: "type": {
193// CHECK-NEXT: "qualType": "int"
194// CHECK-NEXT: },
195// CHECK-NEXT: "access": "private"
196// CHECK-NEXT: },
197// CHECK-NEXT: {
198// CHECK-NEXT: "id": "0x{{.*}}",
199// CHECK-NEXT: "kind": "ObjCIvarDecl",
200// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000201// CHECK-NEXT: "line": 15,
Aaron Ballman41058822019-05-24 17:39:55 +0000202// CHECK-NEXT: "col": 18,
Aaron Ballmana612e342019-06-24 20:07:11 +0000203// CHECK-NEXT: "tokLen": 12
Aaron Ballman41058822019-05-24 17:39:55 +0000204// CHECK-NEXT: },
205// CHECK-NEXT: "range": {
206// CHECK-NEXT: "begin": {
207// CHECK-NEXT: "col": 14,
Aaron Ballmana612e342019-06-24 20:07:11 +0000208// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000209// CHECK-NEXT: },
210// CHECK-NEXT: "end": {
211// CHECK-NEXT: "col": 18,
Aaron Ballmana612e342019-06-24 20:07:11 +0000212// CHECK-NEXT: "tokLen": 12
Aaron Ballman41058822019-05-24 17:39:55 +0000213// CHECK-NEXT: }
214// CHECK-NEXT: },
215// CHECK-NEXT: "name": "varProtected",
216// CHECK-NEXT: "type": {
217// CHECK-NEXT: "qualType": "int"
218// CHECK-NEXT: },
219// CHECK-NEXT: "access": "protected"
220// CHECK-NEXT: },
221// CHECK-NEXT: {
222// CHECK-NEXT: "id": "0x{{.*}}",
223// CHECK-NEXT: "kind": "ObjCIvarDecl",
224// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000225// CHECK-NEXT: "line": 16,
Aaron Ballman41058822019-05-24 17:39:55 +0000226// CHECK-NEXT: "col": 15,
Aaron Ballmana612e342019-06-24 20:07:11 +0000227// CHECK-NEXT: "tokLen": 9
Aaron Ballman41058822019-05-24 17:39:55 +0000228// CHECK-NEXT: },
229// CHECK-NEXT: "range": {
230// CHECK-NEXT: "begin": {
231// CHECK-NEXT: "col": 11,
Aaron Ballmana612e342019-06-24 20:07:11 +0000232// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000233// CHECK-NEXT: },
234// CHECK-NEXT: "end": {
235// CHECK-NEXT: "col": 15,
Aaron Ballmana612e342019-06-24 20:07:11 +0000236// CHECK-NEXT: "tokLen": 9
Aaron Ballman41058822019-05-24 17:39:55 +0000237// CHECK-NEXT: }
238// CHECK-NEXT: },
239// CHECK-NEXT: "name": "varPublic",
240// CHECK-NEXT: "type": {
241// CHECK-NEXT: "qualType": "int"
242// CHECK-NEXT: },
243// CHECK-NEXT: "access": "public"
244// CHECK-NEXT: },
245// CHECK-NEXT: {
246// CHECK-NEXT: "id": "0x{{.*}}",
247// CHECK-NEXT: "kind": "ObjCIvarDecl",
248// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000249// CHECK-NEXT: "line": 17,
Aaron Ballman41058822019-05-24 17:39:55 +0000250// CHECK-NEXT: "col": 16,
Aaron Ballmana612e342019-06-24 20:07:11 +0000251// CHECK-NEXT: "tokLen": 10
Aaron Ballman41058822019-05-24 17:39:55 +0000252// CHECK-NEXT: },
253// CHECK-NEXT: "range": {
254// CHECK-NEXT: "begin": {
255// CHECK-NEXT: "col": 12,
Aaron Ballmana612e342019-06-24 20:07:11 +0000256// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000257// CHECK-NEXT: },
258// CHECK-NEXT: "end": {
259// CHECK-NEXT: "col": 16,
Aaron Ballmana612e342019-06-24 20:07:11 +0000260// CHECK-NEXT: "tokLen": 10
Aaron Ballman41058822019-05-24 17:39:55 +0000261// CHECK-NEXT: }
262// CHECK-NEXT: },
263// CHECK-NEXT: "name": "varPackage",
264// CHECK-NEXT: "type": {
265// CHECK-NEXT: "qualType": "int"
266// CHECK-NEXT: },
267// CHECK-NEXT: "access": "package"
268// CHECK-NEXT: }
269// CHECK-NEXT: ]
270// CHECK-NEXT: }
271
272
273// CHECK: "kind": "ObjCMethodDecl",
274// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +0000275// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +0000276// CHECK-NEXT: "line": 23,
277// CHECK-NEXT: "col": 1,
278// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000279// CHECK-NEXT: },
280// CHECK-NEXT: "range": {
281// CHECK-NEXT: "begin": {
282// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000283// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000284// CHECK-NEXT: },
285// CHECK-NEXT: "end": {
286// CHECK-NEXT: "col": 40,
Aaron Ballmana612e342019-06-24 20:07:11 +0000287// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000288// CHECK-NEXT: }
289// CHECK-NEXT: },
290// CHECK-NEXT: "name": "TestObjCMethodDecl:",
291// CHECK-NEXT: "returnType": {
292// CHECK-NEXT: "qualType": "int"
293// CHECK-NEXT: },
294// CHECK-NEXT: "instance": true,
295// CHECK-NEXT: "variadic": true,
296// CHECK-NEXT: "inner": [
297// CHECK-NEXT: {
298// CHECK-NEXT: "id": "0x{{.*}}",
299// CHECK-NEXT: "kind": "ParmVarDecl",
300// CHECK-NEXT: "loc": {
301// CHECK-NEXT: "col": 34,
Aaron Ballmana612e342019-06-24 20:07:11 +0000302// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000303// CHECK-NEXT: },
304// CHECK-NEXT: "range": {
305// CHECK-NEXT: "begin": {
306// CHECK-NEXT: "col": 30,
Aaron Ballmana612e342019-06-24 20:07:11 +0000307// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000308// CHECK-NEXT: },
309// CHECK-NEXT: "end": {
310// CHECK-NEXT: "col": 34,
Aaron Ballmana612e342019-06-24 20:07:11 +0000311// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000312// CHECK-NEXT: }
313// CHECK-NEXT: },
314// CHECK-NEXT: "name": "i",
315// CHECK-NEXT: "type": {
316// CHECK-NEXT: "qualType": "int"
317// CHECK-NEXT: }
318// CHECK-NEXT: }
319// CHECK-NEXT: ]
320// CHECK-NEXT: }
321
322
323// CHECK: "kind": "ObjCMethodDecl",
324// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +0000325// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +0000326// CHECK-NEXT: "line": 27,
327// CHECK-NEXT: "col": 1,
328// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000329// CHECK-NEXT: },
330// CHECK-NEXT: "range": {
331// CHECK-NEXT: "begin": {
332// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000333// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000334// CHECK-NEXT: },
335// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000336// CHECK-NEXT: "line": 29,
Aaron Ballman41058822019-05-24 17:39:55 +0000337// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000338// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000339// CHECK-NEXT: }
340// CHECK-NEXT: },
341// CHECK-NEXT: "name": "TestObjCMethodDecl:",
342// CHECK-NEXT: "returnType": {
343// CHECK-NEXT: "qualType": "int"
344// CHECK-NEXT: },
345// CHECK-NEXT: "instance": true,
346// CHECK-NEXT: "variadic": true,
347// CHECK-NEXT: "inner": [
348// CHECK-NEXT: {
349// CHECK-NEXT: "id": "0x{{.*}}",
350// CHECK-NEXT: "kind": "ImplicitParamDecl",
351// CHECK-NEXT: "loc": {},
352// CHECK-NEXT: "range": {
353// CHECK-NEXT: "begin": {},
354// CHECK-NEXT: "end": {}
355// CHECK-NEXT: },
356// CHECK-NEXT: "isImplicit": true,
357// CHECK-NEXT: "name": "self",
358// CHECK-NEXT: "type": {
359// CHECK-NEXT: "qualType": "testObjCMethodDecl *"
360// CHECK-NEXT: }
361// CHECK-NEXT: },
362// CHECK-NEXT: {
363// CHECK-NEXT: "id": "0x{{.*}}",
364// CHECK-NEXT: "kind": "ImplicitParamDecl",
365// CHECK-NEXT: "loc": {},
366// CHECK-NEXT: "range": {
367// CHECK-NEXT: "begin": {},
368// CHECK-NEXT: "end": {}
369// CHECK-NEXT: },
370// CHECK-NEXT: "isImplicit": true,
371// CHECK-NEXT: "name": "_cmd",
372// CHECK-NEXT: "type": {
373// CHECK-NEXT: "desugaredQualType": "SEL *",
374// CHECK-NEXT: "qualType": "SEL"
375// CHECK-NEXT: }
376// CHECK-NEXT: },
377// CHECK-NEXT: {
378// CHECK-NEXT: "id": "0x{{.*}}",
379// CHECK-NEXT: "kind": "ParmVarDecl",
380// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000381// CHECK-NEXT: "line": 27,
Aaron Ballman41058822019-05-24 17:39:55 +0000382// CHECK-NEXT: "col": 34,
Aaron Ballmana612e342019-06-24 20:07:11 +0000383// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000384// CHECK-NEXT: },
385// CHECK-NEXT: "range": {
386// CHECK-NEXT: "begin": {
387// CHECK-NEXT: "col": 30,
Aaron Ballmana612e342019-06-24 20:07:11 +0000388// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000389// CHECK-NEXT: },
390// CHECK-NEXT: "end": {
391// CHECK-NEXT: "col": 34,
Aaron Ballmana612e342019-06-24 20:07:11 +0000392// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000393// CHECK-NEXT: }
394// CHECK-NEXT: },
395// CHECK-NEXT: "name": "i",
396// CHECK-NEXT: "type": {
397// CHECK-NEXT: "qualType": "int"
398// CHECK-NEXT: }
399// CHECK-NEXT: },
400// CHECK-NEXT: {
401// CHECK-NEXT: "id": "0x{{.*}}",
402// CHECK-NEXT: "kind": "CompoundStmt",
403// CHECK-NEXT: "range": {
404// CHECK-NEXT: "begin": {
405// CHECK-NEXT: "col": 41,
Aaron Ballmana612e342019-06-24 20:07:11 +0000406// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000407// CHECK-NEXT: },
408// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000409// CHECK-NEXT: "line": 29,
Aaron Ballman41058822019-05-24 17:39:55 +0000410// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000411// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000412// CHECK-NEXT: }
413// CHECK-NEXT: },
414// CHECK-NEXT: "inner": [
415// CHECK-NEXT: {
416// CHECK-NEXT: "id": "0x{{.*}}",
417// CHECK-NEXT: "kind": "ReturnStmt",
418// CHECK-NEXT: "range": {
419// CHECK-NEXT: "begin": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000420// CHECK-NEXT: "line": 28,
Aaron Ballman41058822019-05-24 17:39:55 +0000421// CHECK-NEXT: "col": 3,
Aaron Ballmana612e342019-06-24 20:07:11 +0000422// CHECK-NEXT: "tokLen": 6
Aaron Ballman41058822019-05-24 17:39:55 +0000423// CHECK-NEXT: },
424// CHECK-NEXT: "end": {
425// CHECK-NEXT: "col": 10,
Aaron Ballmana612e342019-06-24 20:07:11 +0000426// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000427// CHECK-NEXT: }
428// CHECK-NEXT: },
429// CHECK-NEXT: "inner": [
430// CHECK-NEXT: {
431// CHECK-NEXT: "id": "0x{{.*}}",
432// CHECK-NEXT: "kind": "IntegerLiteral",
433// CHECK-NEXT: "range": {
434// CHECK-NEXT: "begin": {
435// CHECK-NEXT: "col": 10,
Aaron Ballmana612e342019-06-24 20:07:11 +0000436// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000437// CHECK-NEXT: },
438// CHECK-NEXT: "end": {
439// CHECK-NEXT: "col": 10,
Aaron Ballmana612e342019-06-24 20:07:11 +0000440// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000441// CHECK-NEXT: }
442// CHECK-NEXT: },
443// CHECK-NEXT: "type": {
444// CHECK-NEXT: "qualType": "int"
445// CHECK-NEXT: },
446// CHECK-NEXT: "valueCategory": "rvalue",
447// CHECK-NEXT: "value": "0"
448// CHECK-NEXT: }
449// CHECK-NEXT: ]
450// CHECK-NEXT: }
451// CHECK-NEXT: ]
452// CHECK-NEXT: }
453// CHECK-NEXT: ]
454// CHECK-NEXT: }
455
456
457// CHECK: "kind": "ObjCProtocolDecl",
458// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +0000459// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +0000460// CHECK-NEXT: "line": 32,
461// CHECK-NEXT: "col": 11,
462// CHECK-NEXT: "tokLen": 20
Aaron Ballman41058822019-05-24 17:39:55 +0000463// CHECK-NEXT: },
464// CHECK-NEXT: "range": {
465// CHECK-NEXT: "begin": {
466// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000467// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000468// CHECK-NEXT: },
469// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000470// CHECK-NEXT: "line": 34,
Aaron Ballman41058822019-05-24 17:39:55 +0000471// CHECK-NEXT: "col": 2,
Aaron Ballmana612e342019-06-24 20:07:11 +0000472// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000473// CHECK-NEXT: }
474// CHECK-NEXT: },
475// CHECK-NEXT: "name": "TestObjCProtocolDecl",
476// CHECK-NEXT: "inner": [
477// CHECK-NEXT: {
478// CHECK-NEXT: "id": "0x{{.*}}",
479// CHECK-NEXT: "kind": "ObjCMethodDecl",
480// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000481// CHECK-NEXT: "line": 33,
Aaron Ballman41058822019-05-24 17:39:55 +0000482// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000483// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000484// CHECK-NEXT: },
485// CHECK-NEXT: "range": {
486// CHECK-NEXT: "begin": {
487// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000488// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000489// CHECK-NEXT: },
490// CHECK-NEXT: "end": {
491// CHECK-NEXT: "col": 13,
Aaron Ballmana612e342019-06-24 20:07:11 +0000492// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000493// CHECK-NEXT: }
494// CHECK-NEXT: },
495// CHECK-NEXT: "name": "foo",
496// CHECK-NEXT: "returnType": {
497// CHECK-NEXT: "qualType": "void"
498// CHECK-NEXT: },
499// CHECK-NEXT: "instance": true
500// CHECK-NEXT: }
501// CHECK-NEXT: ]
502// CHECK-NEXT: }
503
504
505// CHECK: "kind": "ObjCInterfaceDecl",
506// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +0000507// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +0000508// CHECK-NEXT: "line": 36,
509// CHECK-NEXT: "col": 12,
510// CHECK-NEXT: "tokLen": 13
Aaron Ballman41058822019-05-24 17:39:55 +0000511// CHECK-NEXT: },
512// CHECK-NEXT: "range": {
513// CHECK-NEXT: "begin": {
514// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000515// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000516// CHECK-NEXT: },
517// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000518// CHECK-NEXT: "line": 38,
Aaron Ballman41058822019-05-24 17:39:55 +0000519// CHECK-NEXT: "col": 2,
Aaron Ballmana612e342019-06-24 20:07:11 +0000520// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000521// CHECK-NEXT: }
522// CHECK-NEXT: },
523// CHECK-NEXT: "name": "TestObjCClass",
524// CHECK-NEXT: "super": {
525// CHECK-NEXT: "id": "0x{{.*}}",
526// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
527// CHECK-NEXT: "name": "A"
528// CHECK-NEXT: },
529// CHECK-NEXT: "implementation": {
530// CHECK-NEXT: "id": "0x{{.*}}",
531// CHECK-NEXT: "kind": "ObjCImplementationDecl",
532// CHECK-NEXT: "name": "TestObjCClass"
533// CHECK-NEXT: },
534// CHECK-NEXT: "protocols": [
535// CHECK-NEXT: {
536// CHECK-NEXT: "id": "0x{{.*}}",
537// CHECK-NEXT: "kind": "ObjCProtocolDecl",
538// CHECK-NEXT: "name": "P"
539// CHECK-NEXT: }
540// CHECK-NEXT: ],
541// CHECK-NEXT: "inner": [
542// CHECK-NEXT: {
543// CHECK-NEXT: "id": "0x{{.*}}",
544// CHECK-NEXT: "kind": "ObjCMethodDecl",
545// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000546// CHECK-NEXT: "line": 37,
Aaron Ballman41058822019-05-24 17:39:55 +0000547// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000548// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000549// CHECK-NEXT: },
550// CHECK-NEXT: "range": {
551// CHECK-NEXT: "begin": {
552// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000553// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000554// CHECK-NEXT: },
555// CHECK-NEXT: "end": {
556// CHECK-NEXT: "col": 13,
Aaron Ballmana612e342019-06-24 20:07:11 +0000557// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000558// CHECK-NEXT: }
559// CHECK-NEXT: },
560// CHECK-NEXT: "name": "foo",
561// CHECK-NEXT: "returnType": {
562// CHECK-NEXT: "qualType": "void"
563// CHECK-NEXT: },
564// CHECK-NEXT: "instance": true
565// CHECK-NEXT: }
566// CHECK-NEXT: ]
567// CHECK-NEXT: }
568
569
570// CHECK: "kind": "ObjCImplementationDecl",
571// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +0000572// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +0000573// CHECK-NEXT: "line": 40,
574// CHECK-NEXT: "col": 17,
575// CHECK-NEXT: "tokLen": 13
Aaron Ballman41058822019-05-24 17:39:55 +0000576// CHECK-NEXT: },
577// CHECK-NEXT: "range": {
578// CHECK-NEXT: "begin": {
579// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000580// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000581// CHECK-NEXT: },
582// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000583// CHECK-NEXT: "line": 45,
Aaron Ballman41058822019-05-24 17:39:55 +0000584// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000585// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000586// CHECK-NEXT: }
587// CHECK-NEXT: },
588// CHECK-NEXT: "name": "TestObjCClass",
589// CHECK-NEXT: "super": {
590// CHECK-NEXT: "id": "0x{{.*}}",
591// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
592// CHECK-NEXT: "name": "A"
593// CHECK-NEXT: },
594// CHECK-NEXT: "interface": {
595// CHECK-NEXT: "id": "0x{{.*}}",
596// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
597// CHECK-NEXT: "name": "TestObjCClass"
598// CHECK-NEXT: },
599// CHECK-NEXT: "inner": [
600// CHECK-NEXT: {
601// CHECK-NEXT: "id": "0x{{.*}}",
602// CHECK-NEXT: "kind": "ObjCIvarDecl",
603// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000604// CHECK-NEXT: "line": 41,
Aaron Ballman41058822019-05-24 17:39:55 +0000605// CHECK-NEXT: "col": 7,
Aaron Ballmana612e342019-06-24 20:07:11 +0000606// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000607// CHECK-NEXT: },
608// CHECK-NEXT: "range": {
609// CHECK-NEXT: "begin": {
610// CHECK-NEXT: "col": 3,
Aaron Ballmana612e342019-06-24 20:07:11 +0000611// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000612// CHECK-NEXT: },
613// CHECK-NEXT: "end": {
614// CHECK-NEXT: "col": 7,
Aaron Ballmana612e342019-06-24 20:07:11 +0000615// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000616// CHECK-NEXT: }
617// CHECK-NEXT: },
618// CHECK-NEXT: "name": "i",
619// CHECK-NEXT: "type": {
620// CHECK-NEXT: "qualType": "int"
621// CHECK-NEXT: },
622// CHECK-NEXT: "access": "private"
623// CHECK-NEXT: },
624// CHECK-NEXT: {
625// CHECK-NEXT: "id": "0x{{.*}}",
626// CHECK-NEXT: "kind": "ObjCMethodDecl",
627// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000628// CHECK-NEXT: "line": 43,
Aaron Ballman41058822019-05-24 17:39:55 +0000629// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000630// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000631// CHECK-NEXT: },
632// CHECK-NEXT: "range": {
633// CHECK-NEXT: "begin": {
634// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000635// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000636// CHECK-NEXT: },
637// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000638// CHECK-NEXT: "line": 44,
Aaron Ballman41058822019-05-24 17:39:55 +0000639// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000640// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000641// CHECK-NEXT: }
642// CHECK-NEXT: },
643// CHECK-NEXT: "name": "foo",
644// CHECK-NEXT: "returnType": {
645// CHECK-NEXT: "qualType": "void"
646// CHECK-NEXT: },
647// CHECK-NEXT: "instance": true,
648// CHECK-NEXT: "inner": [
649// CHECK-NEXT: {
650// CHECK-NEXT: "id": "0x{{.*}}",
651// CHECK-NEXT: "kind": "ImplicitParamDecl",
652// CHECK-NEXT: "loc": {},
653// CHECK-NEXT: "range": {
654// CHECK-NEXT: "begin": {},
655// CHECK-NEXT: "end": {}
656// CHECK-NEXT: },
657// CHECK-NEXT: "isImplicit": true,
658// CHECK-NEXT: "name": "self",
659// CHECK-NEXT: "type": {
660// CHECK-NEXT: "qualType": "TestObjCClass *"
661// CHECK-NEXT: }
662// CHECK-NEXT: },
663// CHECK-NEXT: {
664// CHECK-NEXT: "id": "0x{{.*}}",
665// CHECK-NEXT: "kind": "ImplicitParamDecl",
666// CHECK-NEXT: "loc": {},
667// CHECK-NEXT: "range": {
668// CHECK-NEXT: "begin": {},
669// CHECK-NEXT: "end": {}
670// CHECK-NEXT: },
671// CHECK-NEXT: "isImplicit": true,
672// CHECK-NEXT: "name": "_cmd",
673// CHECK-NEXT: "type": {
674// CHECK-NEXT: "desugaredQualType": "SEL *",
675// CHECK-NEXT: "qualType": "SEL"
676// CHECK-NEXT: }
677// CHECK-NEXT: },
678// CHECK-NEXT: {
679// CHECK-NEXT: "id": "0x{{.*}}",
680// CHECK-NEXT: "kind": "CompoundStmt",
681// CHECK-NEXT: "range": {
682// CHECK-NEXT: "begin": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000683// CHECK-NEXT: "line": 43,
Aaron Ballman41058822019-05-24 17:39:55 +0000684// CHECK-NEXT: "col": 14,
Aaron Ballmana612e342019-06-24 20:07:11 +0000685// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000686// CHECK-NEXT: },
687// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000688// CHECK-NEXT: "line": 44,
Aaron Ballman41058822019-05-24 17:39:55 +0000689// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000690// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000691// CHECK-NEXT: }
692// CHECK-NEXT: }
693// CHECK-NEXT: }
694// CHECK-NEXT: ]
695// CHECK-NEXT: }
696// CHECK-NEXT: ]
697// CHECK-NEXT: }
698
699
700// CHECK: "kind": "ObjCCategoryDecl",
701// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +0000702// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +0000703// CHECK-NEXT: "line": 47,
704// CHECK-NEXT: "col": 12,
705// CHECK-NEXT: "tokLen": 13
Aaron Ballman41058822019-05-24 17:39:55 +0000706// CHECK-NEXT: },
707// CHECK-NEXT: "range": {
708// CHECK-NEXT: "begin": {
709// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000710// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000711// CHECK-NEXT: },
712// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000713// CHECK-NEXT: "line": 49,
Aaron Ballman41058822019-05-24 17:39:55 +0000714// CHECK-NEXT: "col": 2,
Aaron Ballmana612e342019-06-24 20:07:11 +0000715// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000716// CHECK-NEXT: }
717// CHECK-NEXT: },
718// CHECK-NEXT: "name": "TestObjCCategoryDecl",
719// CHECK-NEXT: "interface": {
720// CHECK-NEXT: "id": "0x{{.*}}",
721// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
722// CHECK-NEXT: "name": "TestObjCClass"
723// CHECK-NEXT: },
724// CHECK-NEXT: "implementation": {
725// CHECK-NEXT: "id": "0x{{.*}}",
726// CHECK-NEXT: "kind": "ObjCCategoryImplDecl",
727// CHECK-NEXT: "name": "TestObjCCategoryDecl"
728// CHECK-NEXT: },
729// CHECK-NEXT: "protocols": [
730// CHECK-NEXT: {
731// CHECK-NEXT: "id": "0x{{.*}}",
732// CHECK-NEXT: "kind": "ObjCProtocolDecl",
733// CHECK-NEXT: "name": "P"
734// CHECK-NEXT: }
735// CHECK-NEXT: ],
736// CHECK-NEXT: "inner": [
737// CHECK-NEXT: {
738// CHECK-NEXT: "id": "0x{{.*}}",
739// CHECK-NEXT: "kind": "ObjCMethodDecl",
740// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000741// CHECK-NEXT: "line": 48,
Aaron Ballman41058822019-05-24 17:39:55 +0000742// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000743// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000744// CHECK-NEXT: },
745// CHECK-NEXT: "range": {
746// CHECK-NEXT: "begin": {
747// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000748// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000749// CHECK-NEXT: },
750// CHECK-NEXT: "end": {
751// CHECK-NEXT: "col": 13,
Aaron Ballmana612e342019-06-24 20:07:11 +0000752// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000753// CHECK-NEXT: }
754// CHECK-NEXT: },
755// CHECK-NEXT: "name": "bar",
756// CHECK-NEXT: "returnType": {
757// CHECK-NEXT: "qualType": "void"
758// CHECK-NEXT: },
759// CHECK-NEXT: "instance": true
760// CHECK-NEXT: }
761// CHECK-NEXT: ]
762// CHECK-NEXT: }
763
764
765// CHECK: "kind": "ObjCInterfaceDecl",
766// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +0000767// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +0000768// CHECK-NEXT: "line": 51,
769// CHECK-NEXT: "col": 12,
770// CHECK-NEXT: "tokLen": 20
Aaron Ballman41058822019-05-24 17:39:55 +0000771// CHECK-NEXT: },
772// CHECK-NEXT: "range": {
773// CHECK-NEXT: "begin": {
774// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000775// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000776// CHECK-NEXT: },
777// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000778// CHECK-NEXT: "line": 53,
Aaron Ballman41058822019-05-24 17:39:55 +0000779// CHECK-NEXT: "col": 2,
Aaron Ballmana612e342019-06-24 20:07:11 +0000780// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000781// CHECK-NEXT: }
782// CHECK-NEXT: },
783// CHECK-NEXT: "name": "TestGenericInterface",
784// CHECK-NEXT: "super": {
785// CHECK-NEXT: "id": "0x{{.*}}",
786// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
787// CHECK-NEXT: "name": "A"
788// CHECK-NEXT: },
789// CHECK-NEXT: "implementation": {
790// CHECK-NEXT: "id": "0x{{.*}}"
791// CHECK-NEXT: },
792// CHECK-NEXT: "protocols": [
793// CHECK-NEXT: {
794// CHECK-NEXT: "id": "0x{{.*}}",
795// CHECK-NEXT: "kind": "ObjCProtocolDecl",
796// CHECK-NEXT: "name": "P"
797// CHECK-NEXT: }
798// CHECK-NEXT: ],
799// CHECK-NEXT: "inner": [
800// CHECK-NEXT: {
801// CHECK-NEXT: "id": "0x{{.*}}",
802// CHECK-NEXT: "kind": "ObjCTypeParamDecl",
803// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000804// CHECK-NEXT: "line": 51,
Aaron Ballman41058822019-05-24 17:39:55 +0000805// CHECK-NEXT: "col": 33,
Aaron Ballmana612e342019-06-24 20:07:11 +0000806// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000807// CHECK-NEXT: },
808// CHECK-NEXT: "range": {
809// CHECK-NEXT: "begin": {
810// CHECK-NEXT: "col": 33,
Aaron Ballmana612e342019-06-24 20:07:11 +0000811// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000812// CHECK-NEXT: },
813// CHECK-NEXT: "end": {
814// CHECK-NEXT: "col": 33,
Aaron Ballmana612e342019-06-24 20:07:11 +0000815// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000816// CHECK-NEXT: }
817// CHECK-NEXT: },
818// CHECK-NEXT: "name": "T",
819// CHECK-NEXT: "type": {
820// CHECK-NEXT: "desugaredQualType": "id",
821// CHECK-NEXT: "qualType": "id"
822// CHECK-NEXT: }
823// CHECK-NEXT: }
824// CHECK-NEXT: ]
825// CHECK-NEXT: }
826
827
828// CHECK: "kind": "ObjCCategoryImplDecl",
829// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +0000830// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +0000831// CHECK-NEXT: "line": 55,
832// CHECK-NEXT: "col": 17,
833// CHECK-NEXT: "tokLen": 13
Aaron Ballman41058822019-05-24 17:39:55 +0000834// CHECK-NEXT: },
835// CHECK-NEXT: "range": {
836// CHECK-NEXT: "begin": {
837// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000838// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000839// CHECK-NEXT: },
840// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000841// CHECK-NEXT: "line": 58,
Aaron Ballman41058822019-05-24 17:39:55 +0000842// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000843// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000844// CHECK-NEXT: }
845// CHECK-NEXT: },
846// CHECK-NEXT: "name": "TestObjCCategoryDecl",
847// CHECK-NEXT: "interface": {
848// CHECK-NEXT: "id": "0x{{.*}}",
849// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
850// CHECK-NEXT: "name": "TestObjCClass"
851// CHECK-NEXT: },
852// CHECK-NEXT: "categoryDecl": {
853// CHECK-NEXT: "id": "0x{{.*}}",
854// CHECK-NEXT: "kind": "ObjCCategoryDecl",
855// CHECK-NEXT: "name": "TestObjCCategoryDecl"
856// CHECK-NEXT: },
857// CHECK-NEXT: "inner": [
858// CHECK-NEXT: {
859// CHECK-NEXT: "id": "0x{{.*}}",
860// CHECK-NEXT: "kind": "ObjCMethodDecl",
861// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000862// CHECK-NEXT: "line": 56,
Aaron Ballman41058822019-05-24 17:39:55 +0000863// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000864// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000865// CHECK-NEXT: },
866// CHECK-NEXT: "range": {
867// CHECK-NEXT: "begin": {
868// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000869// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000870// CHECK-NEXT: },
871// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000872// CHECK-NEXT: "line": 57,
Aaron Ballman41058822019-05-24 17:39:55 +0000873// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000874// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000875// CHECK-NEXT: }
876// CHECK-NEXT: },
877// CHECK-NEXT: "name": "bar",
878// CHECK-NEXT: "returnType": {
879// CHECK-NEXT: "qualType": "void"
880// CHECK-NEXT: },
881// CHECK-NEXT: "instance": true,
882// CHECK-NEXT: "inner": [
883// CHECK-NEXT: {
884// CHECK-NEXT: "id": "0x{{.*}}",
885// CHECK-NEXT: "kind": "ImplicitParamDecl",
886// CHECK-NEXT: "loc": {},
887// CHECK-NEXT: "range": {
888// CHECK-NEXT: "begin": {},
889// CHECK-NEXT: "end": {}
890// CHECK-NEXT: },
891// CHECK-NEXT: "isImplicit": true,
892// CHECK-NEXT: "name": "self",
893// CHECK-NEXT: "type": {
894// CHECK-NEXT: "qualType": "TestObjCClass *"
895// CHECK-NEXT: }
896// CHECK-NEXT: },
897// CHECK-NEXT: {
898// CHECK-NEXT: "id": "0x{{.*}}",
899// CHECK-NEXT: "kind": "ImplicitParamDecl",
900// CHECK-NEXT: "loc": {},
901// CHECK-NEXT: "range": {
902// CHECK-NEXT: "begin": {},
903// CHECK-NEXT: "end": {}
904// CHECK-NEXT: },
905// CHECK-NEXT: "isImplicit": true,
906// CHECK-NEXT: "name": "_cmd",
907// CHECK-NEXT: "type": {
908// CHECK-NEXT: "desugaredQualType": "SEL *",
909// CHECK-NEXT: "qualType": "SEL"
910// CHECK-NEXT: }
911// CHECK-NEXT: },
912// CHECK-NEXT: {
913// CHECK-NEXT: "id": "0x{{.*}}",
914// CHECK-NEXT: "kind": "CompoundStmt",
915// CHECK-NEXT: "range": {
916// CHECK-NEXT: "begin": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000917// CHECK-NEXT: "line": 56,
Aaron Ballman41058822019-05-24 17:39:55 +0000918// CHECK-NEXT: "col": 14,
Aaron Ballmana612e342019-06-24 20:07:11 +0000919// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000920// CHECK-NEXT: },
921// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000922// CHECK-NEXT: "line": 57,
Aaron Ballman41058822019-05-24 17:39:55 +0000923// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000924// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000925// CHECK-NEXT: }
926// CHECK-NEXT: }
927// CHECK-NEXT: }
928// CHECK-NEXT: ]
929// CHECK-NEXT: }
930// CHECK-NEXT: ]
931// CHECK-NEXT: }
932
933
934// CHECK: "kind": "ObjCCompatibleAliasDecl",
935// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +0000936// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +0000937// CHECK-NEXT: "line": 60,
938// CHECK-NEXT: "col": 1,
939// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000940// CHECK-NEXT: },
941// CHECK-NEXT: "range": {
942// CHECK-NEXT: "begin": {
943// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000944// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000945// CHECK-NEXT: },
946// CHECK-NEXT: "end": {
947// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000948// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000949// CHECK-NEXT: }
950// CHECK-NEXT: },
951// CHECK-NEXT: "name": "TestObjCCompatibleAliasDecl",
952// CHECK-NEXT: "interface": {
953// CHECK-NEXT: "id": "0x{{.*}}",
954// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
955// CHECK-NEXT: "name": "A"
956// CHECK-NEXT: }
957// CHECK-NEXT: }
958
959
960// CHECK: "kind": "ObjCInterfaceDecl",
961// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +0000962// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +0000963// CHECK-NEXT: "line": 62,
964// CHECK-NEXT: "col": 12,
965// CHECK-NEXT: "tokLen": 16
Aaron Ballman41058822019-05-24 17:39:55 +0000966// CHECK-NEXT: },
967// CHECK-NEXT: "range": {
968// CHECK-NEXT: "begin": {
969// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +0000970// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +0000971// CHECK-NEXT: },
972// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000973// CHECK-NEXT: "line": 65,
Aaron Ballman41058822019-05-24 17:39:55 +0000974// CHECK-NEXT: "col": 2,
Aaron Ballmana612e342019-06-24 20:07:11 +0000975// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000976// CHECK-NEXT: }
977// CHECK-NEXT: },
978// CHECK-NEXT: "name": "TestObjCProperty",
979// CHECK-NEXT: "super": {
980// CHECK-NEXT: "id": "0x{{.*}}",
981// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
982// CHECK-NEXT: "name": "A"
983// CHECK-NEXT: },
984// CHECK-NEXT: "implementation": {
985// CHECK-NEXT: "id": "0x{{.*}}",
986// CHECK-NEXT: "kind": "ObjCImplementationDecl",
987// CHECK-NEXT: "name": "TestObjCProperty"
988// CHECK-NEXT: },
989// CHECK-NEXT: "inner": [
990// CHECK-NEXT: {
991// CHECK-NEXT: "id": "0x{{.*}}",
992// CHECK-NEXT: "kind": "ObjCPropertyDecl",
993// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +0000994// CHECK-NEXT: "line": 63,
Aaron Ballman41058822019-05-24 17:39:55 +0000995// CHECK-NEXT: "col": 52,
Aaron Ballmana612e342019-06-24 20:07:11 +0000996// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +0000997// CHECK-NEXT: },
998// CHECK-NEXT: "range": {
999// CHECK-NEXT: "begin": {
1000// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +00001001// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001002// CHECK-NEXT: },
1003// CHECK-NEXT: "end": {
1004// CHECK-NEXT: "col": 52,
Aaron Ballmana612e342019-06-24 20:07:11 +00001005// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001006// CHECK-NEXT: }
1007// CHECK-NEXT: },
1008// CHECK-NEXT: "name": "foo",
1009// CHECK-NEXT: "type": {
1010// CHECK-NEXT: "qualType": "int"
1011// CHECK-NEXT: },
1012// CHECK-NEXT: "getter": {
1013// CHECK-NEXT: "id": "0x{{.*}}",
1014// CHECK-NEXT: "kind": "ObjCMethodDecl",
1015// CHECK-NEXT: "name": "getterFoo"
1016// CHECK-NEXT: },
1017// CHECK-NEXT: "setter": {
1018// CHECK-NEXT: "id": "0x{{.*}}",
1019// CHECK-NEXT: "kind": "ObjCMethodDecl",
1020// CHECK-NEXT: "name": "setterFoo:"
1021// CHECK-NEXT: },
1022// CHECK-NEXT: "assign": true,
1023// CHECK-NEXT: "readwrite": true,
1024// CHECK-NEXT: "atomic": true,
1025// CHECK-NEXT: "unsafe_unretained": true
1026// CHECK-NEXT: },
1027// CHECK-NEXT: {
1028// CHECK-NEXT: "id": "0x{{.*}}",
1029// CHECK-NEXT: "kind": "ObjCPropertyDecl",
1030// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +00001031// CHECK-NEXT: "line": 64,
Aaron Ballman41058822019-05-24 17:39:55 +00001032// CHECK-NEXT: "col": 15,
Aaron Ballmana612e342019-06-24 20:07:11 +00001033// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001034// CHECK-NEXT: },
1035// CHECK-NEXT: "range": {
1036// CHECK-NEXT: "begin": {
1037// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +00001038// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001039// CHECK-NEXT: },
1040// CHECK-NEXT: "end": {
1041// CHECK-NEXT: "col": 15,
Aaron Ballmana612e342019-06-24 20:07:11 +00001042// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001043// CHECK-NEXT: }
1044// CHECK-NEXT: },
1045// CHECK-NEXT: "name": "bar",
1046// CHECK-NEXT: "type": {
1047// CHECK-NEXT: "qualType": "int"
1048// CHECK-NEXT: },
1049// CHECK-NEXT: "assign": true,
1050// CHECK-NEXT: "readwrite": true,
1051// CHECK-NEXT: "atomic": true,
1052// CHECK-NEXT: "unsafe_unretained": true
1053// CHECK-NEXT: },
1054// CHECK-NEXT: {
1055// CHECK-NEXT: "id": "0x{{.*}}",
1056// CHECK-NEXT: "kind": "ObjCMethodDecl",
1057// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +00001058// CHECK-NEXT: "line": 63,
Aaron Ballman41058822019-05-24 17:39:55 +00001059// CHECK-NEXT: "col": 52,
Aaron Ballmana612e342019-06-24 20:07:11 +00001060// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001061// CHECK-NEXT: },
1062// CHECK-NEXT: "range": {
1063// CHECK-NEXT: "begin": {
1064// CHECK-NEXT: "col": 52,
Aaron Ballmana612e342019-06-24 20:07:11 +00001065// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001066// CHECK-NEXT: },
1067// CHECK-NEXT: "end": {
1068// CHECK-NEXT: "col": 52,
Aaron Ballmana612e342019-06-24 20:07:11 +00001069// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001070// CHECK-NEXT: }
1071// CHECK-NEXT: },
1072// CHECK-NEXT: "isImplicit": true,
1073// CHECK-NEXT: "name": "getterFoo",
1074// CHECK-NEXT: "returnType": {
1075// CHECK-NEXT: "qualType": "int"
1076// CHECK-NEXT: },
1077// CHECK-NEXT: "instance": true
1078// CHECK-NEXT: },
1079// CHECK-NEXT: {
1080// CHECK-NEXT: "id": "0x{{.*}}",
1081// CHECK-NEXT: "kind": "ObjCMethodDecl",
1082// CHECK-NEXT: "loc": {
1083// CHECK-NEXT: "col": 52,
Aaron Ballmana612e342019-06-24 20:07:11 +00001084// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001085// CHECK-NEXT: },
1086// CHECK-NEXT: "range": {
1087// CHECK-NEXT: "begin": {
1088// CHECK-NEXT: "col": 52,
Aaron Ballmana612e342019-06-24 20:07:11 +00001089// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001090// CHECK-NEXT: },
1091// CHECK-NEXT: "end": {
1092// CHECK-NEXT: "col": 52,
Aaron Ballmana612e342019-06-24 20:07:11 +00001093// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001094// CHECK-NEXT: }
1095// CHECK-NEXT: },
1096// CHECK-NEXT: "isImplicit": true,
1097// CHECK-NEXT: "name": "setterFoo:",
1098// CHECK-NEXT: "returnType": {
1099// CHECK-NEXT: "qualType": "void"
1100// CHECK-NEXT: },
1101// CHECK-NEXT: "instance": true,
1102// CHECK-NEXT: "inner": [
1103// CHECK-NEXT: {
1104// CHECK-NEXT: "id": "0x{{.*}}",
1105// CHECK-NEXT: "kind": "ParmVarDecl",
1106// CHECK-NEXT: "loc": {
1107// CHECK-NEXT: "col": 52,
Aaron Ballmana612e342019-06-24 20:07:11 +00001108// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001109// CHECK-NEXT: },
1110// CHECK-NEXT: "range": {
1111// CHECK-NEXT: "begin": {
1112// CHECK-NEXT: "col": 52,
Aaron Ballmana612e342019-06-24 20:07:11 +00001113// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001114// CHECK-NEXT: },
1115// CHECK-NEXT: "end": {
1116// CHECK-NEXT: "col": 52,
Aaron Ballmana612e342019-06-24 20:07:11 +00001117// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001118// CHECK-NEXT: }
1119// CHECK-NEXT: },
1120// CHECK-NEXT: "name": "foo",
1121// CHECK-NEXT: "type": {
1122// CHECK-NEXT: "qualType": "int"
1123// CHECK-NEXT: }
1124// CHECK-NEXT: }
1125// CHECK-NEXT: ]
1126// CHECK-NEXT: },
1127// CHECK-NEXT: {
1128// CHECK-NEXT: "id": "0x{{.*}}",
1129// CHECK-NEXT: "kind": "ObjCMethodDecl",
1130// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +00001131// CHECK-NEXT: "line": 64,
Aaron Ballman41058822019-05-24 17:39:55 +00001132// CHECK-NEXT: "col": 15,
Aaron Ballmana612e342019-06-24 20:07:11 +00001133// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001134// CHECK-NEXT: },
1135// CHECK-NEXT: "range": {
1136// CHECK-NEXT: "begin": {
1137// CHECK-NEXT: "col": 15,
Aaron Ballmana612e342019-06-24 20:07:11 +00001138// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001139// CHECK-NEXT: },
1140// CHECK-NEXT: "end": {
1141// CHECK-NEXT: "col": 15,
Aaron Ballmana612e342019-06-24 20:07:11 +00001142// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001143// CHECK-NEXT: }
1144// CHECK-NEXT: },
1145// CHECK-NEXT: "isImplicit": true,
1146// CHECK-NEXT: "name": "bar",
1147// CHECK-NEXT: "returnType": {
1148// CHECK-NEXT: "qualType": "int"
1149// CHECK-NEXT: },
1150// CHECK-NEXT: "instance": true
1151// CHECK-NEXT: },
1152// CHECK-NEXT: {
1153// CHECK-NEXT: "id": "0x{{.*}}",
1154// CHECK-NEXT: "kind": "ObjCMethodDecl",
1155// CHECK-NEXT: "loc": {
1156// CHECK-NEXT: "col": 15,
Aaron Ballmana612e342019-06-24 20:07:11 +00001157// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001158// CHECK-NEXT: },
1159// CHECK-NEXT: "range": {
1160// CHECK-NEXT: "begin": {
1161// CHECK-NEXT: "col": 15,
Aaron Ballmana612e342019-06-24 20:07:11 +00001162// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001163// CHECK-NEXT: },
1164// CHECK-NEXT: "end": {
1165// CHECK-NEXT: "col": 15,
Aaron Ballmana612e342019-06-24 20:07:11 +00001166// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001167// CHECK-NEXT: }
1168// CHECK-NEXT: },
1169// CHECK-NEXT: "isImplicit": true,
1170// CHECK-NEXT: "name": "setBar:",
1171// CHECK-NEXT: "returnType": {
1172// CHECK-NEXT: "qualType": "void"
1173// CHECK-NEXT: },
1174// CHECK-NEXT: "instance": true,
1175// CHECK-NEXT: "inner": [
1176// CHECK-NEXT: {
1177// CHECK-NEXT: "id": "0x{{.*}}",
1178// CHECK-NEXT: "kind": "ParmVarDecl",
1179// CHECK-NEXT: "loc": {
1180// CHECK-NEXT: "col": 15,
Aaron Ballmana612e342019-06-24 20:07:11 +00001181// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001182// CHECK-NEXT: },
1183// CHECK-NEXT: "range": {
1184// CHECK-NEXT: "begin": {
1185// CHECK-NEXT: "col": 15,
Aaron Ballmana612e342019-06-24 20:07:11 +00001186// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001187// CHECK-NEXT: },
1188// CHECK-NEXT: "end": {
1189// CHECK-NEXT: "col": 15,
Aaron Ballmana612e342019-06-24 20:07:11 +00001190// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001191// CHECK-NEXT: }
1192// CHECK-NEXT: },
1193// CHECK-NEXT: "name": "bar",
1194// CHECK-NEXT: "type": {
1195// CHECK-NEXT: "qualType": "int"
1196// CHECK-NEXT: }
1197// CHECK-NEXT: }
1198// CHECK-NEXT: ]
1199// CHECK-NEXT: }
1200// CHECK-NEXT: ]
1201// CHECK-NEXT: }
1202
1203
1204// CHECK: "kind": "ObjCImplementationDecl",
1205// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +00001206// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +00001207// CHECK-NEXT: "line": 67,
1208// CHECK-NEXT: "col": 17,
1209// CHECK-NEXT: "tokLen": 16
Aaron Ballman41058822019-05-24 17:39:55 +00001210// CHECK-NEXT: },
1211// CHECK-NEXT: "range": {
1212// CHECK-NEXT: "begin": {
1213// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +00001214// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001215// CHECK-NEXT: },
1216// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +00001217// CHECK-NEXT: "line": 72,
Aaron Ballman41058822019-05-24 17:39:55 +00001218// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +00001219// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001220// CHECK-NEXT: }
1221// CHECK-NEXT: },
1222// CHECK-NEXT: "name": "TestObjCProperty",
1223// CHECK-NEXT: "super": {
1224// CHECK-NEXT: "id": "0x{{.*}}"
1225// CHECK-NEXT: },
1226// CHECK-NEXT: "interface": {
1227// CHECK-NEXT: "id": "0x{{.*}}",
1228// CHECK-NEXT: "kind": "ObjCInterfaceDecl",
1229// CHECK-NEXT: "name": "TestObjCProperty"
1230// CHECK-NEXT: },
1231// CHECK-NEXT: "inner": [
1232// CHECK-NEXT: {
1233// CHECK-NEXT: "id": "0x{{.*}}",
1234// CHECK-NEXT: "kind": "ObjCIvarDecl",
1235// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +00001236// CHECK-NEXT: "line": 68,
Aaron Ballman41058822019-05-24 17:39:55 +00001237// CHECK-NEXT: "col": 7,
Aaron Ballmana612e342019-06-24 20:07:11 +00001238// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001239// CHECK-NEXT: },
1240// CHECK-NEXT: "range": {
1241// CHECK-NEXT: "begin": {
1242// CHECK-NEXT: "col": 3,
Aaron Ballmana612e342019-06-24 20:07:11 +00001243// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001244// CHECK-NEXT: },
1245// CHECK-NEXT: "end": {
1246// CHECK-NEXT: "col": 7,
Aaron Ballmana612e342019-06-24 20:07:11 +00001247// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001248// CHECK-NEXT: }
1249// CHECK-NEXT: },
1250// CHECK-NEXT: "name": "i",
1251// CHECK-NEXT: "type": {
1252// CHECK-NEXT: "qualType": "int"
1253// CHECK-NEXT: },
1254// CHECK-NEXT: "access": "private"
1255// CHECK-NEXT: },
1256// CHECK-NEXT: {
1257// CHECK-NEXT: "id": "0x{{.*}}",
1258// CHECK-NEXT: "kind": "ObjCPropertyImplDecl",
1259// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +00001260// CHECK-NEXT: "line": 70,
Aaron Ballman41058822019-05-24 17:39:55 +00001261// CHECK-NEXT: "col": 13,
Aaron Ballmana612e342019-06-24 20:07:11 +00001262// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001263// CHECK-NEXT: },
1264// CHECK-NEXT: "range": {
1265// CHECK-NEXT: "begin": {
1266// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +00001267// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001268// CHECK-NEXT: },
1269// CHECK-NEXT: "end": {
1270// CHECK-NEXT: "col": 17,
Aaron Ballmana612e342019-06-24 20:07:11 +00001271// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001272// CHECK-NEXT: }
1273// CHECK-NEXT: },
1274// CHECK-NEXT: "name": "foo",
1275// CHECK-NEXT: "implKind": "synthesize",
1276// CHECK-NEXT: "propertyDecl": {
1277// CHECK-NEXT: "id": "0x{{.*}}",
1278// CHECK-NEXT: "kind": "ObjCPropertyDecl",
1279// CHECK-NEXT: "name": "foo"
1280// CHECK-NEXT: },
1281// CHECK-NEXT: "ivarDecl": {
1282// CHECK-NEXT: "id": "0x{{.*}}",
1283// CHECK-NEXT: "kind": "ObjCIvarDecl",
1284// CHECK-NEXT: "name": "i",
1285// CHECK-NEXT: "type": {
1286// CHECK-NEXT: "qualType": "int"
1287// CHECK-NEXT: }
1288// CHECK-NEXT: }
1289// CHECK-NEXT: },
1290// CHECK-NEXT: {
1291// CHECK-NEXT: "id": "0x{{.*}}",
1292// CHECK-NEXT: "kind": "ObjCIvarDecl",
1293// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +00001294// CHECK-NEXT: "line": 71,
Aaron Ballman41058822019-05-24 17:39:55 +00001295// CHECK-NEXT: "col": 13,
Aaron Ballmana612e342019-06-24 20:07:11 +00001296// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001297// CHECK-NEXT: },
1298// CHECK-NEXT: "range": {
1299// CHECK-NEXT: "begin": {
1300// CHECK-NEXT: "col": 13,
Aaron Ballmana612e342019-06-24 20:07:11 +00001301// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001302// CHECK-NEXT: },
1303// CHECK-NEXT: "end": {
1304// CHECK-NEXT: "col": 13,
Aaron Ballmana612e342019-06-24 20:07:11 +00001305// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001306// CHECK-NEXT: }
1307// CHECK-NEXT: },
1308// CHECK-NEXT: "name": "bar",
1309// CHECK-NEXT: "type": {
1310// CHECK-NEXT: "qualType": "int"
1311// CHECK-NEXT: },
1312// CHECK-NEXT: "synthesized": true,
1313// CHECK-NEXT: "access": "private"
1314// CHECK-NEXT: },
1315// CHECK-NEXT: {
1316// CHECK-NEXT: "id": "0x{{.*}}",
1317// CHECK-NEXT: "kind": "ObjCPropertyImplDecl",
1318// CHECK-NEXT: "loc": {
1319// CHECK-NEXT: "col": 13,
Aaron Ballmana612e342019-06-24 20:07:11 +00001320// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001321// CHECK-NEXT: },
1322// CHECK-NEXT: "range": {
1323// CHECK-NEXT: "begin": {
1324// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +00001325// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001326// CHECK-NEXT: },
1327// CHECK-NEXT: "end": {
1328// CHECK-NEXT: "col": 13,
Aaron Ballmana612e342019-06-24 20:07:11 +00001329// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001330// CHECK-NEXT: }
1331// CHECK-NEXT: },
1332// CHECK-NEXT: "name": "bar",
1333// CHECK-NEXT: "implKind": "synthesize",
1334// CHECK-NEXT: "propertyDecl": {
1335// CHECK-NEXT: "id": "0x{{.*}}",
1336// CHECK-NEXT: "kind": "ObjCPropertyDecl",
1337// CHECK-NEXT: "name": "bar"
1338// CHECK-NEXT: },
1339// CHECK-NEXT: "ivarDecl": {
1340// CHECK-NEXT: "id": "0x{{.*}}",
1341// CHECK-NEXT: "kind": "ObjCIvarDecl",
1342// CHECK-NEXT: "name": "bar",
1343// CHECK-NEXT: "type": {
1344// CHECK-NEXT: "qualType": "int"
1345// CHECK-NEXT: }
1346// CHECK-NEXT: }
1347// CHECK-NEXT: }
1348// CHECK-NEXT: ]
1349// CHECK-NEXT: }
1350
1351
1352// CHECK: "kind": "FunctionDecl",
1353// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +00001354// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +00001355// CHECK-NEXT: "line": 74,
1356// CHECK-NEXT: "col": 6,
1357// CHECK-NEXT: "tokLen": 13
Aaron Ballman41058822019-05-24 17:39:55 +00001358// CHECK-NEXT: },
1359// CHECK-NEXT: "range": {
1360// CHECK-NEXT: "begin": {
1361// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +00001362// CHECK-NEXT: "tokLen": 4
Aaron Ballman41058822019-05-24 17:39:55 +00001363// CHECK-NEXT: },
1364// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +00001365// CHECK-NEXT: "line": 76,
Aaron Ballman41058822019-05-24 17:39:55 +00001366// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +00001367// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001368// CHECK-NEXT: }
1369// CHECK-NEXT: },
1370// CHECK-NEXT: "name": "TestBlockDecl",
1371// CHECK-NEXT: "type": {
1372// CHECK-NEXT: "qualType": "void (int)"
1373// CHECK-NEXT: },
1374// CHECK-NEXT: "inner": [
1375// CHECK-NEXT: {
1376// CHECK-NEXT: "id": "0x{{.*}}",
1377// CHECK-NEXT: "kind": "ParmVarDecl",
1378// CHECK-NEXT: "loc": {
Aaron Ballmana612e342019-06-24 20:07:11 +00001379// CHECK-NEXT: "line": 74,
Aaron Ballman41058822019-05-24 17:39:55 +00001380// CHECK-NEXT: "col": 24,
Aaron Ballmana612e342019-06-24 20:07:11 +00001381// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001382// CHECK-NEXT: },
1383// CHECK-NEXT: "range": {
1384// CHECK-NEXT: "begin": {
1385// CHECK-NEXT: "col": 20,
Aaron Ballmana612e342019-06-24 20:07:11 +00001386// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001387// CHECK-NEXT: },
1388// CHECK-NEXT: "end": {
1389// CHECK-NEXT: "col": 24,
Aaron Ballmana612e342019-06-24 20:07:11 +00001390// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001391// CHECK-NEXT: }
1392// CHECK-NEXT: },
1393// CHECK-NEXT: "isUsed": true,
1394// CHECK-NEXT: "name": "x",
1395// CHECK-NEXT: "type": {
1396// CHECK-NEXT: "qualType": "int"
1397// CHECK-NEXT: }
1398// CHECK-NEXT: },
1399// CHECK-NEXT: {
1400// CHECK-NEXT: "id": "0x{{.*}}",
1401// CHECK-NEXT: "kind": "CompoundStmt",
1402// CHECK-NEXT: "range": {
1403// CHECK-NEXT: "begin": {
1404// CHECK-NEXT: "col": 27,
Aaron Ballmana612e342019-06-24 20:07:11 +00001405// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001406// CHECK-NEXT: },
1407// CHECK-NEXT: "end": {
Aaron Ballmana612e342019-06-24 20:07:11 +00001408// CHECK-NEXT: "line": 76,
Aaron Ballman41058822019-05-24 17:39:55 +00001409// CHECK-NEXT: "col": 1,
Aaron Ballmana612e342019-06-24 20:07:11 +00001410// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001411// CHECK-NEXT: }
1412// CHECK-NEXT: },
1413// CHECK-NEXT: "inner": [
1414// CHECK-NEXT: {
1415// CHECK-NEXT: "id": "0x{{.*}}",
1416// CHECK-NEXT: "kind": "ExprWithCleanups",
1417// CHECK-NEXT: "range": {
1418// CHECK-NEXT: "begin": {
Aaron Ballmana612e342019-06-24 20:07:11 +00001419// CHECK-NEXT: "line": 75,
Aaron Ballman41058822019-05-24 17:39:55 +00001420// CHECK-NEXT: "col": 3,
Aaron Ballmana612e342019-06-24 20:07:11 +00001421// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001422// CHECK-NEXT: },
1423// CHECK-NEXT: "end": {
1424// CHECK-NEXT: "col": 21,
Aaron Ballmana612e342019-06-24 20:07:11 +00001425// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001426// CHECK-NEXT: }
1427// CHECK-NEXT: },
1428// CHECK-NEXT: "type": {
1429// CHECK-NEXT: "qualType": "void (^)(int, ...)"
1430// CHECK-NEXT: },
1431// CHECK-NEXT: "valueCategory": "rvalue",
Aaron Ballman1fffe8d2019-06-20 16:22:35 +00001432// CHECK-NEXT: "cleanupsHaveSideEffects": true,
1433// CHECK-NEXT: "cleanups": [
1434// CHECK-NEXT: {
1435// CHECK-NEXT: "id": "0x{{.*}}",
1436// CHECK-NEXT: "kind": "BlockDecl"
1437// CHECK-NEXT: }
1438// CHECK-NEXT: ],
Aaron Ballman41058822019-05-24 17:39:55 +00001439// CHECK-NEXT: "inner": [
1440// CHECK-NEXT: {
1441// CHECK-NEXT: "id": "0x{{.*}}",
1442// CHECK-NEXT: "kind": "BlockExpr",
1443// CHECK-NEXT: "range": {
1444// CHECK-NEXT: "begin": {
1445// CHECK-NEXT: "col": 3,
Aaron Ballmana612e342019-06-24 20:07:11 +00001446// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001447// CHECK-NEXT: },
1448// CHECK-NEXT: "end": {
1449// CHECK-NEXT: "col": 21,
Aaron Ballmana612e342019-06-24 20:07:11 +00001450// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001451// CHECK-NEXT: }
1452// CHECK-NEXT: },
1453// CHECK-NEXT: "type": {
1454// CHECK-NEXT: "qualType": "void (^)(int, ...)"
1455// CHECK-NEXT: },
1456// CHECK-NEXT: "valueCategory": "rvalue",
1457// CHECK-NEXT: "inner": [
1458// CHECK-NEXT: {
1459// CHECK-NEXT: "id": "0x{{.*}}",
1460// CHECK-NEXT: "kind": "BlockDecl",
1461// CHECK-NEXT: "loc": {
1462// CHECK-NEXT: "col": 3,
Aaron Ballmana612e342019-06-24 20:07:11 +00001463// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001464// CHECK-NEXT: },
1465// CHECK-NEXT: "range": {
1466// CHECK-NEXT: "begin": {
1467// CHECK-NEXT: "col": 3,
Aaron Ballmana612e342019-06-24 20:07:11 +00001468// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001469// CHECK-NEXT: },
1470// CHECK-NEXT: "end": {
1471// CHECK-NEXT: "col": 21,
Aaron Ballmana612e342019-06-24 20:07:11 +00001472// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001473// CHECK-NEXT: }
1474// CHECK-NEXT: },
1475// CHECK-NEXT: "variadic": true,
1476// CHECK-NEXT: "inner": [
1477// CHECK-NEXT: {
1478// CHECK-NEXT: "id": "0x{{.*}}",
1479// CHECK-NEXT: "kind": "ParmVarDecl",
1480// CHECK-NEXT: "loc": {
1481// CHECK-NEXT: "col": 9,
Aaron Ballmana612e342019-06-24 20:07:11 +00001482// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001483// CHECK-NEXT: },
1484// CHECK-NEXT: "range": {
1485// CHECK-NEXT: "begin": {
1486// CHECK-NEXT: "col": 5,
Aaron Ballmana612e342019-06-24 20:07:11 +00001487// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001488// CHECK-NEXT: },
1489// CHECK-NEXT: "end": {
1490// CHECK-NEXT: "col": 9,
Aaron Ballmana612e342019-06-24 20:07:11 +00001491// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001492// CHECK-NEXT: }
1493// CHECK-NEXT: },
1494// CHECK-NEXT: "name": "y",
1495// CHECK-NEXT: "type": {
1496// CHECK-NEXT: "qualType": "int"
1497// CHECK-NEXT: }
1498// CHECK-NEXT: },
1499// CHECK-NEXT: {
1500// CHECK-NEXT: "kind": "Capture",
1501// CHECK-NEXT: "var": {
1502// CHECK-NEXT: "id": "0x{{.*}}",
1503// CHECK-NEXT: "kind": "ParmVarDecl",
1504// CHECK-NEXT: "name": "x",
1505// CHECK-NEXT: "type": {
1506// CHECK-NEXT: "qualType": "int"
1507// CHECK-NEXT: }
1508// CHECK-NEXT: }
1509// CHECK-NEXT: },
1510// CHECK-NEXT: {
1511// CHECK-NEXT: "id": "0x{{.*}}",
1512// CHECK-NEXT: "kind": "CompoundStmt",
1513// CHECK-NEXT: "range": {
1514// CHECK-NEXT: "begin": {
1515// CHECK-NEXT: "col": 16,
Aaron Ballmana612e342019-06-24 20:07:11 +00001516// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001517// CHECK-NEXT: },
1518// CHECK-NEXT: "end": {
1519// CHECK-NEXT: "col": 21,
Aaron Ballmana612e342019-06-24 20:07:11 +00001520// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001521// CHECK-NEXT: }
1522// CHECK-NEXT: },
1523// CHECK-NEXT: "inner": [
1524// CHECK-NEXT: {
1525// CHECK-NEXT: "id": "0x{{.*}}",
1526// CHECK-NEXT: "kind": "ImplicitCastExpr",
1527// CHECK-NEXT: "range": {
1528// CHECK-NEXT: "begin": {
1529// CHECK-NEXT: "col": 18,
Aaron Ballmana612e342019-06-24 20:07:11 +00001530// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001531// CHECK-NEXT: },
1532// CHECK-NEXT: "end": {
1533// CHECK-NEXT: "col": 18,
Aaron Ballmana612e342019-06-24 20:07:11 +00001534// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001535// CHECK-NEXT: }
1536// CHECK-NEXT: },
1537// CHECK-NEXT: "type": {
1538// CHECK-NEXT: "qualType": "int"
1539// CHECK-NEXT: },
1540// CHECK-NEXT: "valueCategory": "rvalue",
1541// CHECK-NEXT: "castKind": "LValueToRValue",
1542// CHECK-NEXT: "inner": [
1543// CHECK-NEXT: {
1544// CHECK-NEXT: "id": "0x{{.*}}",
1545// CHECK-NEXT: "kind": "DeclRefExpr",
1546// CHECK-NEXT: "range": {
1547// CHECK-NEXT: "begin": {
1548// CHECK-NEXT: "col": 18,
Aaron Ballmana612e342019-06-24 20:07:11 +00001549// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001550// CHECK-NEXT: },
1551// CHECK-NEXT: "end": {
1552// CHECK-NEXT: "col": 18,
Aaron Ballmana612e342019-06-24 20:07:11 +00001553// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001554// CHECK-NEXT: }
1555// CHECK-NEXT: },
1556// CHECK-NEXT: "type": {
1557// CHECK-NEXT: "qualType": "const int"
1558// CHECK-NEXT: },
1559// CHECK-NEXT: "valueCategory": "lvalue",
1560// CHECK-NEXT: "referencedDecl": {
1561// CHECK-NEXT: "id": "0x{{.*}}",
1562// CHECK-NEXT: "kind": "ParmVarDecl",
1563// CHECK-NEXT: "name": "x",
1564// CHECK-NEXT: "type": {
1565// CHECK-NEXT: "qualType": "int"
1566// CHECK-NEXT: }
1567// CHECK-NEXT: }
1568// CHECK-NEXT: }
1569// CHECK-NEXT: ]
1570// CHECK-NEXT: }
1571// CHECK-NEXT: ]
1572// CHECK-NEXT: },
1573// CHECK-NEXT: {
1574// CHECK-NEXT: "id": "0x{{.*}}",
1575// CHECK-NEXT: "kind": "ParmVarDecl",
1576// CHECK-NEXT: "loc": {
1577// CHECK-NEXT: "col": 9,
Aaron Ballmana612e342019-06-24 20:07:11 +00001578// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001579// CHECK-NEXT: },
1580// CHECK-NEXT: "range": {
1581// CHECK-NEXT: "begin": {
1582// CHECK-NEXT: "col": 5,
Aaron Ballmana612e342019-06-24 20:07:11 +00001583// CHECK-NEXT: "tokLen": 3
Aaron Ballman41058822019-05-24 17:39:55 +00001584// CHECK-NEXT: },
1585// CHECK-NEXT: "end": {
1586// CHECK-NEXT: "col": 9,
Aaron Ballmana612e342019-06-24 20:07:11 +00001587// CHECK-NEXT: "tokLen": 1
Aaron Ballman41058822019-05-24 17:39:55 +00001588// CHECK-NEXT: }
1589// CHECK-NEXT: },
1590// CHECK-NEXT: "name": "y",
1591// CHECK-NEXT: "type": {
1592// CHECK-NEXT: "qualType": "int"
1593// CHECK-NEXT: }
1594// CHECK-NEXT: }
1595// CHECK-NEXT: ]
1596// CHECK-NEXT: }
1597// CHECK-NEXT: ]
1598// CHECK-NEXT: }
1599// CHECK-NEXT: ]
1600// CHECK-NEXT: }
1601// CHECK-NEXT: ]
1602// CHECK-NEXT: }
1603// CHECK-NEXT: ]
1604// CHECK-NEXT: }
1605
1606
1607// CHECK: "kind": "VarDecl",
1608// CHECK-NEXT: "loc": {
Aaron Ballman41058822019-05-24 17:39:55 +00001609// CHECK-NEXT: "file": "{{.*}}",
Aaron Ballmana612e342019-06-24 20:07:11 +00001610// CHECK-NEXT: "line": 83,
1611// CHECK-NEXT: "col": 21,
1612// CHECK-NEXT: "tokLen": 4
Aaron Ballman41058822019-05-24 17:39:55 +00001613// CHECK-NEXT: },
1614// CHECK-NEXT: "range": {
1615// CHECK-NEXT: "begin": {
1616// CHECK-NEXT: "col": 3,
Aaron Ballmana612e342019-06-24 20:07:11 +00001617// CHECK-NEXT: "tokLen": 10
Aaron Ballman41058822019-05-24 17:39:55 +00001618// CHECK-NEXT: },
1619// CHECK-NEXT: "end": {
1620// CHECK-NEXT: "col": 21,
Aaron Ballmana612e342019-06-24 20:07:11 +00001621// CHECK-NEXT: "tokLen": 4
Aaron Ballman41058822019-05-24 17:39:55 +00001622// CHECK-NEXT: }
1623// CHECK-NEXT: },
1624// CHECK-NEXT: "name": "Test",
1625// CHECK-NEXT: "type": {
1626// CHECK-NEXT: "desugaredQualType": "int",
1627// CHECK-NEXT: "qualType": "typeof (B.foo)"
1628// CHECK-NEXT: }
1629// CHECK-NEXT: }