blob: 6e95efe9b2123bcf69f5d2c85433d5af699cc139 [file] [log] [blame]
Ted Kremenekc0e1d922010-11-11 08:05:18 +00001struct rdar8650865 {
2 struct rdar8650865 *first;
3 int x;
4};
5
6int test_rdar8650865(struct rdar8650865 *s) {
7 return ((((((s->first)->first)
8 ->first)
9 ->first)
10 ->first)
11 ->first)
12 ->first
13 ->first
14 ->first
15 ->first
16 ->first
17 ->first
18 ->first
19 ->first
20 ->first
21 ->first
22 ->first
23 ->first
24 ->first
25 ->first
26 ->first
27 ->first
28 ->first
29 ->first
30 ->first
31 ->first
32 ->first
33 ->first
34 ->first
35 ->first
36 ->first
37 ->first
38 ->first
39 ->first
40 ->first
41 ->first
42 ->first
43 ->first
44 ->first
45 ->first
46 ->first
47 ->first
48 ->first
49 ->first
50 ->first
51 ->first
52 ->first
53 ->first
54 ->first
55 ->first
56 ->first
57 ->first
58 ->first
59 ->first
60 ->first
61 ->first
62 ->first
63 ->first
64 ->first
65 ->first
66 ->first
67 ->first
68 ->first
69 ->first
70 ->first
71 ->first
72 ->first
73 ->first
74 ->first
75 ->first
76 ->first
77 ->first
78 ->first
79 ->first
80 ->first
81 ->first
82 ->first
83 ->first
84 ->first
85 ->first
86 ->first
87 ->first
88 ->first
89 ->first
90 ->first
91 ->first
92 ->first
93 ->first
94 ->first
95 ->first
96 ->first
97 ->first
98 ->first
99 ->first
100 ->first
101 ->first
102 ->first
103 ->first
104 ->first
105 ->first
106 ->first
107 ->first
108 ->first
109 ->first
110 ->first
111 ->first
112 ->first
113 ->first
114 ->first
115 ->first
116 ->first
117 ->first
118 ->first
119 ->first
120 ->first
121 ->first
122 ->first
123 ->x;
124}
125
126// RUN: c-index-test -test-load-source all %s | FileCheck %s
127// CHECK: 1:8: StructDecl=rdar8650865:1:8 (Definition) Extent=[1:1 - 4:2]
Abramo Bagnaraff676cb2011-03-08 08:55:46 +0000128// CHECK: 2:23: FieldDecl=first:2:23 (Definition) Extent=[2:3 - 2:28]
Ted Kremenekc0e1d922010-11-11 08:05:18 +0000129// CHECK: 2:10: TypeRef=struct rdar8650865:1:8 Extent=[2:10 - 2:21]
Abramo Bagnaraff676cb2011-03-08 08:55:46 +0000130// CHECK: 3:7: FieldDecl=x:3:7 (Definition) Extent=[3:3 - 3:8]
131// CHECK: 6:5: FunctionDecl=test_rdar8650865:6:5 (Definition) Extent=[6:1 - 124:2]
132// CHECK: 6:42: ParmDecl=s:6:42 (Definition) Extent=[6:22 - 6:43]
Ted Kremenekc0e1d922010-11-11 08:05:18 +0000133// CHECK: 6:29: TypeRef=struct rdar8650865:1:8 Extent=[6:29 - 6:40]
134// CHECK: 6:45: UnexposedStmt= Extent=[6:45 - 124:2]
135// CHECK: 7:3: UnexposedStmt= Extent=[7:3 - 123:8]
136// CHECK: 123:7: MemberRefExpr=x:3:7 Extent=[7:10 - 123:8]
137// CHECK: 122:7: MemberRefExpr=first:2:23 Extent=[7:10 - 122:12]
138// CHECK: 121:7: MemberRefExpr=first:2:23 Extent=[7:10 - 121:12]
139// CHECK: 120:7: MemberRefExpr=first:2:23 Extent=[7:10 - 120:12]
140// CHECK: 119:7: MemberRefExpr=first:2:23 Extent=[7:10 - 119:12]
141// CHECK: 118:7: MemberRefExpr=first:2:23 Extent=[7:10 - 118:12]
142// CHECK: 117:7: MemberRefExpr=first:2:23 Extent=[7:10 - 117:12]
143// CHECK: 116:7: MemberRefExpr=first:2:23 Extent=[7:10 - 116:12]
144// CHECK: 115:7: MemberRefExpr=first:2:23 Extent=[7:10 - 115:12]
145// CHECK: 114:7: MemberRefExpr=first:2:23 Extent=[7:10 - 114:12]
146// CHECK: 113:7: MemberRefExpr=first:2:23 Extent=[7:10 - 113:12]
147// CHECK: 112:7: MemberRefExpr=first:2:23 Extent=[7:10 - 112:12]
148// CHECK: 111:7: MemberRefExpr=first:2:23 Extent=[7:10 - 111:12]
149// CHECK: 110:7: MemberRefExpr=first:2:23 Extent=[7:10 - 110:12]
150// CHECK: 109:7: MemberRefExpr=first:2:23 Extent=[7:10 - 109:12]
151// CHECK: 108:7: MemberRefExpr=first:2:23 Extent=[7:10 - 108:12]
152// CHECK: 107:7: MemberRefExpr=first:2:23 Extent=[7:10 - 107:12]
153// CHECK: 106:7: MemberRefExpr=first:2:23 Extent=[7:10 - 106:12]
154// CHECK: 105:7: MemberRefExpr=first:2:23 Extent=[7:10 - 105:12]
155// CHECK: 104:7: MemberRefExpr=first:2:23 Extent=[7:10 - 104:12]
156// CHECK: 103:7: MemberRefExpr=first:2:23 Extent=[7:10 - 103:12]
157// CHECK: 102:7: MemberRefExpr=first:2:23 Extent=[7:10 - 102:12]
158// CHECK: 101:7: MemberRefExpr=first:2:23 Extent=[7:10 - 101:12]
159// CHECK: 100:7: MemberRefExpr=first:2:23 Extent=[7:10 - 100:12]
160// CHECK: 99:7: MemberRefExpr=first:2:23 Extent=[7:10 - 99:12]
161// CHECK: 98:7: MemberRefExpr=first:2:23 Extent=[7:10 - 98:12]
162// CHECK: 97:7: MemberRefExpr=first:2:23 Extent=[7:10 - 97:12]
163// CHECK: 96:7: MemberRefExpr=first:2:23 Extent=[7:10 - 96:12]
164// CHECK: 95:7: MemberRefExpr=first:2:23 Extent=[7:10 - 95:12]
165// CHECK: 94:7: MemberRefExpr=first:2:23 Extent=[7:10 - 94:12]
166// CHECK: 93:7: MemberRefExpr=first:2:23 Extent=[7:10 - 93:12]
167// CHECK: 92:7: MemberRefExpr=first:2:23 Extent=[7:10 - 92:12]
168// CHECK: 91:7: MemberRefExpr=first:2:23 Extent=[7:10 - 91:12]
169// CHECK: 90:7: MemberRefExpr=first:2:23 Extent=[7:10 - 90:12]
170// CHECK: 89:7: MemberRefExpr=first:2:23 Extent=[7:10 - 89:12]
171// CHECK: 88:7: MemberRefExpr=first:2:23 Extent=[7:10 - 88:12]
172// CHECK: 87:7: MemberRefExpr=first:2:23 Extent=[7:10 - 87:12]
173// CHECK: 86:7: MemberRefExpr=first:2:23 Extent=[7:10 - 86:12]
174// CHECK: 85:7: MemberRefExpr=first:2:23 Extent=[7:10 - 85:12]
175// CHECK: 84:7: MemberRefExpr=first:2:23 Extent=[7:10 - 84:12]
176// CHECK: 83:7: MemberRefExpr=first:2:23 Extent=[7:10 - 83:12]
177// CHECK: 82:7: MemberRefExpr=first:2:23 Extent=[7:10 - 82:12]
178// CHECK: 81:7: MemberRefExpr=first:2:23 Extent=[7:10 - 81:12]
179// CHECK: 80:7: MemberRefExpr=first:2:23 Extent=[7:10 - 80:12]
180// CHECK: 79:7: MemberRefExpr=first:2:23 Extent=[7:10 - 79:12]
181// CHECK: 78:7: MemberRefExpr=first:2:23 Extent=[7:10 - 78:12]
182// CHECK: 77:7: MemberRefExpr=first:2:23 Extent=[7:10 - 77:12]
183// CHECK: 76:7: MemberRefExpr=first:2:23 Extent=[7:10 - 76:12]
184// CHECK: 75:7: MemberRefExpr=first:2:23 Extent=[7:10 - 75:12]
185// CHECK: 74:7: MemberRefExpr=first:2:23 Extent=[7:10 - 74:12]
186// CHECK: 73:7: MemberRefExpr=first:2:23 Extent=[7:10 - 73:12]
187// CHECK: 72:7: MemberRefExpr=first:2:23 Extent=[7:10 - 72:12]
188// CHECK: 71:7: MemberRefExpr=first:2:23 Extent=[7:10 - 71:12]
189// CHECK: 70:7: MemberRefExpr=first:2:23 Extent=[7:10 - 70:12]
190// CHECK: 69:7: MemberRefExpr=first:2:23 Extent=[7:10 - 69:12]
191// CHECK: 68:7: MemberRefExpr=first:2:23 Extent=[7:10 - 68:12]
192// CHECK: 67:7: MemberRefExpr=first:2:23 Extent=[7:10 - 67:12]
193// CHECK: 66:7: MemberRefExpr=first:2:23 Extent=[7:10 - 66:12]
194// CHECK: 65:7: MemberRefExpr=first:2:23 Extent=[7:10 - 65:12]
195// CHECK: 64:7: MemberRefExpr=first:2:23 Extent=[7:10 - 64:12]
196// CHECK: 63:7: MemberRefExpr=first:2:23 Extent=[7:10 - 63:12]
197// CHECK: 62:7: MemberRefExpr=first:2:23 Extent=[7:10 - 62:12]
198// CHECK: 61:7: MemberRefExpr=first:2:23 Extent=[7:10 - 61:12]
199// CHECK: 60:7: MemberRefExpr=first:2:23 Extent=[7:10 - 60:12]
200// CHECK: 59:7: MemberRefExpr=first:2:23 Extent=[7:10 - 59:12]
201// CHECK: 58:7: MemberRefExpr=first:2:23 Extent=[7:10 - 58:12]
202// CHECK: 57:7: MemberRefExpr=first:2:23 Extent=[7:10 - 57:12]
203// CHECK: 56:7: MemberRefExpr=first:2:23 Extent=[7:10 - 56:12]
204// CHECK: 55:7: MemberRefExpr=first:2:23 Extent=[7:10 - 55:12]
205// CHECK: 54:7: MemberRefExpr=first:2:23 Extent=[7:10 - 54:12]
206// CHECK: 53:7: MemberRefExpr=first:2:23 Extent=[7:10 - 53:12]
207// CHECK: 52:7: MemberRefExpr=first:2:23 Extent=[7:10 - 52:12]
208// CHECK: 51:7: MemberRefExpr=first:2:23 Extent=[7:10 - 51:12]
209// CHECK: 50:7: MemberRefExpr=first:2:23 Extent=[7:10 - 50:12]
210// CHECK: 49:7: MemberRefExpr=first:2:23 Extent=[7:10 - 49:12]
211// CHECK: 48:7: MemberRefExpr=first:2:23 Extent=[7:10 - 48:12]
212// CHECK: 47:7: MemberRefExpr=first:2:23 Extent=[7:10 - 47:12]
213// CHECK: 46:7: MemberRefExpr=first:2:23 Extent=[7:10 - 46:12]
214// CHECK: 45:7: MemberRefExpr=first:2:23 Extent=[7:10 - 45:12]
215// CHECK: 44:7: MemberRefExpr=first:2:23 Extent=[7:10 - 44:12]
216// CHECK: 43:7: MemberRefExpr=first:2:23 Extent=[7:10 - 43:12]
217// CHECK: 42:7: MemberRefExpr=first:2:23 Extent=[7:10 - 42:12]
218// CHECK: 41:7: MemberRefExpr=first:2:23 Extent=[7:10 - 41:12]
219// CHECK: 40:7: MemberRefExpr=first:2:23 Extent=[7:10 - 40:12]
220// CHECK: 39:7: MemberRefExpr=first:2:23 Extent=[7:10 - 39:12]
221// CHECK: 38:7: MemberRefExpr=first:2:23 Extent=[7:10 - 38:12]
222// CHECK: 37:7: MemberRefExpr=first:2:23 Extent=[7:10 - 37:12]
223// CHECK: 36:7: MemberRefExpr=first:2:23 Extent=[7:10 - 36:12]
224// CHECK: 35:7: MemberRefExpr=first:2:23 Extent=[7:10 - 35:12]
225// CHECK: 34:7: MemberRefExpr=first:2:23 Extent=[7:10 - 34:12]
226// CHECK: 33:7: MemberRefExpr=first:2:23 Extent=[7:10 - 33:12]
227// CHECK: 32:7: MemberRefExpr=first:2:23 Extent=[7:10 - 32:12]
228// CHECK: 31:7: MemberRefExpr=first:2:23 Extent=[7:10 - 31:12]
229// CHECK: 30:7: MemberRefExpr=first:2:23 Extent=[7:10 - 30:12]
230// CHECK: 29:7: MemberRefExpr=first:2:23 Extent=[7:10 - 29:12]
231// CHECK: 28:7: MemberRefExpr=first:2:23 Extent=[7:10 - 28:12]
232// CHECK: 27:7: MemberRefExpr=first:2:23 Extent=[7:10 - 27:12]
233// CHECK: 26:7: MemberRefExpr=first:2:23 Extent=[7:10 - 26:12]
234// CHECK: 25:7: MemberRefExpr=first:2:23 Extent=[7:10 - 25:12]
235// CHECK: 24:7: MemberRefExpr=first:2:23 Extent=[7:10 - 24:12]
236// CHECK: 23:7: MemberRefExpr=first:2:23 Extent=[7:10 - 23:12]
237// CHECK: 22:7: MemberRefExpr=first:2:23 Extent=[7:10 - 22:12]
238// CHECK: 21:7: MemberRefExpr=first:2:23 Extent=[7:10 - 21:12]
239// CHECK: 20:7: MemberRefExpr=first:2:23 Extent=[7:10 - 20:12]
240// CHECK: 19:7: MemberRefExpr=first:2:23 Extent=[7:10 - 19:12]
241// CHECK: 18:7: MemberRefExpr=first:2:23 Extent=[7:10 - 18:12]
242// CHECK: 17:7: MemberRefExpr=first:2:23 Extent=[7:10 - 17:12]
243// CHECK: 16:7: MemberRefExpr=first:2:23 Extent=[7:10 - 16:12]
244// CHECK: 15:7: MemberRefExpr=first:2:23 Extent=[7:10 - 15:12]
245// CHECK: 14:7: MemberRefExpr=first:2:23 Extent=[7:10 - 14:12]
246// CHECK: 13:7: MemberRefExpr=first:2:23 Extent=[7:10 - 13:12]
247// CHECK: 12:7: MemberRefExpr=first:2:23 Extent=[7:10 - 12:12]
248// CHECK: 11:7: MemberRefExpr=first:2:23 Extent=[7:11 - 11:12]
249// CHECK: 10:7: MemberRefExpr=first:2:23 Extent=[7:12 - 10:12]
250// CHECK: 9:7: MemberRefExpr=first:2:23 Extent=[7:13 - 9:12]
251// CHECK: 8:7: MemberRefExpr=first:2:23 Extent=[7:14 - 8:12]
252// CHECK: 7:27: MemberRefExpr=first:2:23 Extent=[7:15 - 7:32]
253// CHECK: 7:19: MemberRefExpr=first:2:23 Extent=[7:16 - 7:24]
254// CHECK: 7:16: DeclRefExpr=s:6:42 Extent=[7:16 - 7:17]
255
256// RUN: c-index-test -test-annotate-tokens=%s:1:1:124:1 %s | FileCheck -check-prefix=CHECK-tokens %s
257// CHECK-tokens: Keyword: "struct" [1:1 - 1:7] StructDecl=rdar8650865:1:8 (Definition)
258// CHECK-tokens: Identifier: "rdar8650865" [1:8 - 1:19] StructDecl=rdar8650865:1:8 (Definition)
259// CHECK-tokens: Punctuation: "{" [1:20 - 1:21] StructDecl=rdar8650865:1:8 (Definition)
260// CHECK-tokens: Keyword: "struct" [2:3 - 2:9] StructDecl=rdar8650865:1:8 (Definition)
261// CHECK-tokens: Identifier: "rdar8650865" [2:10 - 2:21] TypeRef=struct rdar8650865:1:8
262// CHECK-tokens: Punctuation: "*" [2:22 - 2:23] FieldDecl=first:2:23 (Definition)
263// CHECK-tokens: Identifier: "first" [2:23 - 2:28] FieldDecl=first:2:23 (Definition)
264// CHECK-tokens: Punctuation: ";" [2:28 - 2:29] StructDecl=rdar8650865:1:8 (Definition)
265// CHECK-tokens: Keyword: "int" [3:3 - 3:6] FieldDecl=x:3:7 (Definition)
266// CHECK-tokens: Identifier: "x" [3:7 - 3:8] FieldDecl=x:3:7 (Definition)
267// CHECK-tokens: Punctuation: ";" [3:8 - 3:9] StructDecl=rdar8650865:1:8 (Definition)
268// CHECK-tokens: Punctuation: "}" [4:1 - 4:2] StructDecl=rdar8650865:1:8 (Definition)
269// CHECK-tokens: Punctuation: ";" [4:2 - 4:3]
270// CHECK-tokens: Keyword: "int" [6:1 - 6:4] FunctionDecl=test_rdar8650865:6:5 (Definition)
271// CHECK-tokens: Identifier: "test_rdar8650865" [6:5 - 6:21] FunctionDecl=test_rdar8650865:6:5 (Definition)
272// CHECK-tokens: Punctuation: "(" [6:21 - 6:22] FunctionDecl=test_rdar8650865:6:5 (Definition)
273// CHECK-tokens: Keyword: "struct" [6:22 - 6:28] FunctionDecl=test_rdar8650865:6:5 (Definition)
274// CHECK-tokens: Identifier: "rdar8650865" [6:29 - 6:40] TypeRef=struct rdar8650865:1:8
275// CHECK-tokens: Punctuation: "*" [6:41 - 6:42] ParmDecl=s:6:42 (Definition)
276// CHECK-tokens: Identifier: "s" [6:42 - 6:43] ParmDecl=s:6:42 (Definition)
277// CHECK-tokens: Punctuation: ")" [6:43 - 6:44] FunctionDecl=test_rdar8650865:6:5 (Definition)
278// CHECK-tokens: Punctuation: "{" [6:45 - 6:46] UnexposedStmt=
279// CHECK-tokens: Keyword: "return" [7:3 - 7:9] UnexposedStmt=
280// CHECK-tokens: Punctuation: "(" [7:10 - 7:11] UnexposedExpr=
281// CHECK-tokens: Punctuation: "(" [7:11 - 7:12] UnexposedExpr=
282// CHECK-tokens: Punctuation: "(" [7:12 - 7:13] UnexposedExpr=
283// CHECK-tokens: Punctuation: "(" [7:13 - 7:14] UnexposedExpr=
284// CHECK-tokens: Punctuation: "(" [7:14 - 7:15] UnexposedExpr=
285// CHECK-tokens: Punctuation: "(" [7:15 - 7:16] UnexposedExpr=
286// CHECK-tokens: Identifier: "s" [7:16 - 7:17] DeclRefExpr=s:6:42
287// CHECK-tokens: Punctuation: "->" [7:17 - 7:19] MemberRefExpr=first:2:23
288// CHECK-tokens: Identifier: "first" [7:19 - 7:24] MemberRefExpr=first:2:23
289// CHECK-tokens: Punctuation: ")" [7:24 - 7:25] UnexposedExpr=
290// CHECK-tokens: Punctuation: "->" [7:25 - 7:27] MemberRefExpr=first:2:23
291// CHECK-tokens: Identifier: "first" [7:27 - 7:32] MemberRefExpr=first:2:23
292// CHECK-tokens: Punctuation: ")" [7:32 - 7:33] UnexposedExpr=
293// CHECK-tokens: Punctuation: "->" [8:5 - 8:7] MemberRefExpr=first:2:23
294// CHECK-tokens: Identifier: "first" [8:7 - 8:12] MemberRefExpr=first:2:23
295// CHECK-tokens: Punctuation: ")" [8:12 - 8:13] UnexposedExpr=
296// CHECK-tokens: Punctuation: "->" [9:5 - 9:7] MemberRefExpr=first:2:23
297// CHECK-tokens: Identifier: "first" [9:7 - 9:12] MemberRefExpr=first:2:23
298// CHECK-tokens: Punctuation: ")" [9:12 - 9:13] UnexposedExpr=
299// CHECK-tokens: Punctuation: "->" [10:5 - 10:7] MemberRefExpr=first:2:23
300// CHECK-tokens: Identifier: "first" [10:7 - 10:12] MemberRefExpr=first:2:23
301// CHECK-tokens: Punctuation: ")" [10:12 - 10:13] UnexposedExpr=
302// CHECK-tokens: Punctuation: "->" [11:5 - 11:7] MemberRefExpr=first:2:23
303// CHECK-tokens: Identifier: "first" [11:7 - 11:12] MemberRefExpr=first:2:23
304// CHECK-tokens: Punctuation: ")" [11:12 - 11:13] UnexposedExpr=
305// CHECK-tokens: Punctuation: "->" [12:5 - 12:7] MemberRefExpr=first:2:23
306// CHECK-tokens: Identifier: "first" [12:7 - 12:12] MemberRefExpr=first:2:23
307// CHECK-tokens: Punctuation: "->" [13:5 - 13:7] MemberRefExpr=first:2:23
308// CHECK-tokens: Identifier: "first" [13:7 - 13:12] MemberRefExpr=first:2:23
309// CHECK-tokens: Punctuation: "->" [14:5 - 14:7] MemberRefExpr=first:2:23
310// CHECK-tokens: Identifier: "first" [14:7 - 14:12] MemberRefExpr=first:2:23
311// CHECK-tokens: Punctuation: "->" [15:5 - 15:7] MemberRefExpr=first:2:23
312// CHECK-tokens: Identifier: "first" [15:7 - 15:12] MemberRefExpr=first:2:23
313// CHECK-tokens: Punctuation: "->" [16:5 - 16:7] MemberRefExpr=first:2:23
314// CHECK-tokens: Identifier: "first" [16:7 - 16:12] MemberRefExpr=first:2:23
315// CHECK-tokens: Punctuation: "->" [17:5 - 17:7] MemberRefExpr=first:2:23
316// CHECK-tokens: Identifier: "first" [17:7 - 17:12] MemberRefExpr=first:2:23
317// CHECK-tokens: Punctuation: "->" [18:5 - 18:7] MemberRefExpr=first:2:23
318// CHECK-tokens: Identifier: "first" [18:7 - 18:12] MemberRefExpr=first:2:23
319// CHECK-tokens: Punctuation: "->" [19:5 - 19:7] MemberRefExpr=first:2:23
320// CHECK-tokens: Identifier: "first" [19:7 - 19:12] MemberRefExpr=first:2:23
321// CHECK-tokens: Punctuation: "->" [20:5 - 20:7] MemberRefExpr=first:2:23
322// CHECK-tokens: Identifier: "first" [20:7 - 20:12] MemberRefExpr=first:2:23
323// CHECK-tokens: Punctuation: "->" [21:5 - 21:7] MemberRefExpr=first:2:23
324// CHECK-tokens: Identifier: "first" [21:7 - 21:12] MemberRefExpr=first:2:23
325// CHECK-tokens: Punctuation: "->" [22:5 - 22:7] MemberRefExpr=first:2:23
326// CHECK-tokens: Identifier: "first" [22:7 - 22:12] MemberRefExpr=first:2:23
327// CHECK-tokens: Punctuation: "->" [23:5 - 23:7] MemberRefExpr=first:2:23
328// CHECK-tokens: Identifier: "first" [23:7 - 23:12] MemberRefExpr=first:2:23
329// CHECK-tokens: Punctuation: "->" [24:5 - 24:7] MemberRefExpr=first:2:23
330// CHECK-tokens: Identifier: "first" [24:7 - 24:12] MemberRefExpr=first:2:23
331// CHECK-tokens: Punctuation: "->" [25:5 - 25:7] MemberRefExpr=first:2:23
332// CHECK-tokens: Identifier: "first" [25:7 - 25:12] MemberRefExpr=first:2:23
333// CHECK-tokens: Punctuation: "->" [26:5 - 26:7] MemberRefExpr=first:2:23
334// CHECK-tokens: Identifier: "first" [26:7 - 26:12] MemberRefExpr=first:2:23
335// CHECK-tokens: Punctuation: "->" [27:5 - 27:7] MemberRefExpr=first:2:23
336// CHECK-tokens: Identifier: "first" [27:7 - 27:12] MemberRefExpr=first:2:23
337// CHECK-tokens: Punctuation: "->" [28:5 - 28:7] MemberRefExpr=first:2:23
338// CHECK-tokens: Identifier: "first" [28:7 - 28:12] MemberRefExpr=first:2:23
339// CHECK-tokens: Punctuation: "->" [29:5 - 29:7] MemberRefExpr=first:2:23
340// CHECK-tokens: Identifier: "first" [29:7 - 29:12] MemberRefExpr=first:2:23
341// CHECK-tokens: Punctuation: "->" [30:5 - 30:7] MemberRefExpr=first:2:23
342// CHECK-tokens: Identifier: "first" [30:7 - 30:12] MemberRefExpr=first:2:23
343// CHECK-tokens: Punctuation: "->" [31:5 - 31:7] MemberRefExpr=first:2:23
344// CHECK-tokens: Identifier: "first" [31:7 - 31:12] MemberRefExpr=first:2:23
345// CHECK-tokens: Punctuation: "->" [32:5 - 32:7] MemberRefExpr=first:2:23
346// CHECK-tokens: Identifier: "first" [32:7 - 32:12] MemberRefExpr=first:2:23
347// CHECK-tokens: Punctuation: "->" [33:5 - 33:7] MemberRefExpr=first:2:23
348// CHECK-tokens: Identifier: "first" [33:7 - 33:12] MemberRefExpr=first:2:23
349// CHECK-tokens: Punctuation: "->" [34:5 - 34:7] MemberRefExpr=first:2:23
350// CHECK-tokens: Identifier: "first" [34:7 - 34:12] MemberRefExpr=first:2:23
351// CHECK-tokens: Punctuation: "->" [35:5 - 35:7] MemberRefExpr=first:2:23
352// CHECK-tokens: Identifier: "first" [35:7 - 35:12] MemberRefExpr=first:2:23
353// CHECK-tokens: Punctuation: "->" [36:5 - 36:7] MemberRefExpr=first:2:23
354// CHECK-tokens: Identifier: "first" [36:7 - 36:12] MemberRefExpr=first:2:23
355// CHECK-tokens: Punctuation: "->" [37:5 - 37:7] MemberRefExpr=first:2:23
356// CHECK-tokens: Identifier: "first" [37:7 - 37:12] MemberRefExpr=first:2:23
357// CHECK-tokens: Punctuation: "->" [38:5 - 38:7] MemberRefExpr=first:2:23
358// CHECK-tokens: Identifier: "first" [38:7 - 38:12] MemberRefExpr=first:2:23
359// CHECK-tokens: Punctuation: "->" [39:5 - 39:7] MemberRefExpr=first:2:23
360// CHECK-tokens: Identifier: "first" [39:7 - 39:12] MemberRefExpr=first:2:23
361// CHECK-tokens: Punctuation: "->" [40:5 - 40:7] MemberRefExpr=first:2:23
362// CHECK-tokens: Identifier: "first" [40:7 - 40:12] MemberRefExpr=first:2:23
363// CHECK-tokens: Punctuation: "->" [41:5 - 41:7] MemberRefExpr=first:2:23
364// CHECK-tokens: Identifier: "first" [41:7 - 41:12] MemberRefExpr=first:2:23
365// CHECK-tokens: Punctuation: "->" [42:5 - 42:7] MemberRefExpr=first:2:23
366// CHECK-tokens: Identifier: "first" [42:7 - 42:12] MemberRefExpr=first:2:23
367// CHECK-tokens: Punctuation: "->" [43:5 - 43:7] MemberRefExpr=first:2:23
368// CHECK-tokens: Identifier: "first" [43:7 - 43:12] MemberRefExpr=first:2:23
369// CHECK-tokens: Punctuation: "->" [44:5 - 44:7] MemberRefExpr=first:2:23
370// CHECK-tokens: Identifier: "first" [44:7 - 44:12] MemberRefExpr=first:2:23
371// CHECK-tokens: Punctuation: "->" [45:5 - 45:7] MemberRefExpr=first:2:23
372// CHECK-tokens: Identifier: "first" [45:7 - 45:12] MemberRefExpr=first:2:23
373// CHECK-tokens: Punctuation: "->" [46:5 - 46:7] MemberRefExpr=first:2:23
374// CHECK-tokens: Identifier: "first" [46:7 - 46:12] MemberRefExpr=first:2:23
375// CHECK-tokens: Punctuation: "->" [47:5 - 47:7] MemberRefExpr=first:2:23
376// CHECK-tokens: Identifier: "first" [47:7 - 47:12] MemberRefExpr=first:2:23
377// CHECK-tokens: Punctuation: "->" [48:5 - 48:7] MemberRefExpr=first:2:23
378// CHECK-tokens: Identifier: "first" [48:7 - 48:12] MemberRefExpr=first:2:23
379// CHECK-tokens: Punctuation: "->" [49:5 - 49:7] MemberRefExpr=first:2:23
380// CHECK-tokens: Identifier: "first" [49:7 - 49:12] MemberRefExpr=first:2:23
381// CHECK-tokens: Punctuation: "->" [50:5 - 50:7] MemberRefExpr=first:2:23
382// CHECK-tokens: Identifier: "first" [50:7 - 50:12] MemberRefExpr=first:2:23
383// CHECK-tokens: Punctuation: "->" [51:5 - 51:7] MemberRefExpr=first:2:23
384// CHECK-tokens: Identifier: "first" [51:7 - 51:12] MemberRefExpr=first:2:23
385// CHECK-tokens: Punctuation: "->" [52:5 - 52:7] MemberRefExpr=first:2:23
386// CHECK-tokens: Identifier: "first" [52:7 - 52:12] MemberRefExpr=first:2:23
387// CHECK-tokens: Punctuation: "->" [53:5 - 53:7] MemberRefExpr=first:2:23
388// CHECK-tokens: Identifier: "first" [53:7 - 53:12] MemberRefExpr=first:2:23
389// CHECK-tokens: Punctuation: "->" [54:5 - 54:7] MemberRefExpr=first:2:23
390// CHECK-tokens: Identifier: "first" [54:7 - 54:12] MemberRefExpr=first:2:23
391// CHECK-tokens: Punctuation: "->" [55:5 - 55:7] MemberRefExpr=first:2:23
392// CHECK-tokens: Identifier: "first" [55:7 - 55:12] MemberRefExpr=first:2:23
393// CHECK-tokens: Punctuation: "->" [56:5 - 56:7] MemberRefExpr=first:2:23
394// CHECK-tokens: Identifier: "first" [56:7 - 56:12] MemberRefExpr=first:2:23
395// CHECK-tokens: Punctuation: "->" [57:5 - 57:7] MemberRefExpr=first:2:23
396// CHECK-tokens: Identifier: "first" [57:7 - 57:12] MemberRefExpr=first:2:23
397// CHECK-tokens: Punctuation: "->" [58:5 - 58:7] MemberRefExpr=first:2:23
398// CHECK-tokens: Identifier: "first" [58:7 - 58:12] MemberRefExpr=first:2:23
399// CHECK-tokens: Punctuation: "->" [59:5 - 59:7] MemberRefExpr=first:2:23
400// CHECK-tokens: Identifier: "first" [59:7 - 59:12] MemberRefExpr=first:2:23
401// CHECK-tokens: Punctuation: "->" [60:5 - 60:7] MemberRefExpr=first:2:23
402// CHECK-tokens: Identifier: "first" [60:7 - 60:12] MemberRefExpr=first:2:23
403// CHECK-tokens: Punctuation: "->" [61:5 - 61:7] MemberRefExpr=first:2:23
404// CHECK-tokens: Identifier: "first" [61:7 - 61:12] MemberRefExpr=first:2:23
405// CHECK-tokens: Punctuation: "->" [62:5 - 62:7] MemberRefExpr=first:2:23
406// CHECK-tokens: Identifier: "first" [62:7 - 62:12] MemberRefExpr=first:2:23
407// CHECK-tokens: Punctuation: "->" [63:5 - 63:7] MemberRefExpr=first:2:23
408// CHECK-tokens: Identifier: "first" [63:7 - 63:12] MemberRefExpr=first:2:23
409// CHECK-tokens: Punctuation: "->" [64:5 - 64:7] MemberRefExpr=first:2:23
410// CHECK-tokens: Identifier: "first" [64:7 - 64:12] MemberRefExpr=first:2:23
411// CHECK-tokens: Punctuation: "->" [65:5 - 65:7] MemberRefExpr=first:2:23
412// CHECK-tokens: Identifier: "first" [65:7 - 65:12] MemberRefExpr=first:2:23
413// CHECK-tokens: Punctuation: "->" [66:5 - 66:7] MemberRefExpr=first:2:23
414// CHECK-tokens: Identifier: "first" [66:7 - 66:12] MemberRefExpr=first:2:23
415// CHECK-tokens: Punctuation: "->" [67:5 - 67:7] MemberRefExpr=first:2:23
416// CHECK-tokens: Identifier: "first" [67:7 - 67:12] MemberRefExpr=first:2:23
417// CHECK-tokens: Punctuation: "->" [68:5 - 68:7] MemberRefExpr=first:2:23
418// CHECK-tokens: Identifier: "first" [68:7 - 68:12] MemberRefExpr=first:2:23
419// CHECK-tokens: Punctuation: "->" [69:5 - 69:7] MemberRefExpr=first:2:23
420// CHECK-tokens: Identifier: "first" [69:7 - 69:12] MemberRefExpr=first:2:23
421// CHECK-tokens: Punctuation: "->" [70:5 - 70:7] MemberRefExpr=first:2:23
422// CHECK-tokens: Identifier: "first" [70:7 - 70:12] MemberRefExpr=first:2:23
423// CHECK-tokens: Punctuation: "->" [71:5 - 71:7] MemberRefExpr=first:2:23
424// CHECK-tokens: Identifier: "first" [71:7 - 71:12] MemberRefExpr=first:2:23
425// CHECK-tokens: Punctuation: "->" [72:5 - 72:7] MemberRefExpr=first:2:23
426// CHECK-tokens: Identifier: "first" [72:7 - 72:12] MemberRefExpr=first:2:23
427// CHECK-tokens: Punctuation: "->" [73:5 - 73:7] MemberRefExpr=first:2:23
428// CHECK-tokens: Identifier: "first" [73:7 - 73:12] MemberRefExpr=first:2:23
429// CHECK-tokens: Punctuation: "->" [74:5 - 74:7] MemberRefExpr=first:2:23
430// CHECK-tokens: Identifier: "first" [74:7 - 74:12] MemberRefExpr=first:2:23
431// CHECK-tokens: Punctuation: "->" [75:5 - 75:7] MemberRefExpr=first:2:23
432// CHECK-tokens: Identifier: "first" [75:7 - 75:12] MemberRefExpr=first:2:23
433// CHECK-tokens: Punctuation: "->" [76:5 - 76:7] MemberRefExpr=first:2:23
434// CHECK-tokens: Identifier: "first" [76:7 - 76:12] MemberRefExpr=first:2:23
435// CHECK-tokens: Punctuation: "->" [77:5 - 77:7] MemberRefExpr=first:2:23
436// CHECK-tokens: Identifier: "first" [77:7 - 77:12] MemberRefExpr=first:2:23
437// CHECK-tokens: Punctuation: "->" [78:5 - 78:7] MemberRefExpr=first:2:23
438// CHECK-tokens: Identifier: "first" [78:7 - 78:12] MemberRefExpr=first:2:23
439// CHECK-tokens: Punctuation: "->" [79:5 - 79:7] MemberRefExpr=first:2:23
440// CHECK-tokens: Identifier: "first" [79:7 - 79:12] MemberRefExpr=first:2:23
441// CHECK-tokens: Punctuation: "->" [80:5 - 80:7] MemberRefExpr=first:2:23
442// CHECK-tokens: Identifier: "first" [80:7 - 80:12] MemberRefExpr=first:2:23
443// CHECK-tokens: Punctuation: "->" [81:5 - 81:7] MemberRefExpr=first:2:23
444// CHECK-tokens: Identifier: "first" [81:7 - 81:12] MemberRefExpr=first:2:23
445// CHECK-tokens: Punctuation: "->" [82:5 - 82:7] MemberRefExpr=first:2:23
446// CHECK-tokens: Identifier: "first" [82:7 - 82:12] MemberRefExpr=first:2:23
447// CHECK-tokens: Punctuation: "->" [83:5 - 83:7] MemberRefExpr=first:2:23
448// CHECK-tokens: Identifier: "first" [83:7 - 83:12] MemberRefExpr=first:2:23
449// CHECK-tokens: Punctuation: "->" [84:5 - 84:7] MemberRefExpr=first:2:23
450// CHECK-tokens: Identifier: "first" [84:7 - 84:12] MemberRefExpr=first:2:23
451// CHECK-tokens: Punctuation: "->" [85:5 - 85:7] MemberRefExpr=first:2:23
452// CHECK-tokens: Identifier: "first" [85:7 - 85:12] MemberRefExpr=first:2:23
453// CHECK-tokens: Punctuation: "->" [86:5 - 86:7] MemberRefExpr=first:2:23
454// CHECK-tokens: Identifier: "first" [86:7 - 86:12] MemberRefExpr=first:2:23
455// CHECK-tokens: Punctuation: "->" [87:5 - 87:7] MemberRefExpr=first:2:23
456// CHECK-tokens: Identifier: "first" [87:7 - 87:12] MemberRefExpr=first:2:23
457// CHECK-tokens: Punctuation: "->" [88:5 - 88:7] MemberRefExpr=first:2:23
458// CHECK-tokens: Identifier: "first" [88:7 - 88:12] MemberRefExpr=first:2:23
459// CHECK-tokens: Punctuation: "->" [89:5 - 89:7] MemberRefExpr=first:2:23
460// CHECK-tokens: Identifier: "first" [89:7 - 89:12] MemberRefExpr=first:2:23
461// CHECK-tokens: Punctuation: "->" [90:5 - 90:7] MemberRefExpr=first:2:23
462// CHECK-tokens: Identifier: "first" [90:7 - 90:12] MemberRefExpr=first:2:23
463// CHECK-tokens: Punctuation: "->" [91:5 - 91:7] MemberRefExpr=first:2:23
464// CHECK-tokens: Identifier: "first" [91:7 - 91:12] MemberRefExpr=first:2:23
465// CHECK-tokens: Punctuation: "->" [92:5 - 92:7] MemberRefExpr=first:2:23
466// CHECK-tokens: Identifier: "first" [92:7 - 92:12] MemberRefExpr=first:2:23
467// CHECK-tokens: Punctuation: "->" [93:5 - 93:7] MemberRefExpr=first:2:23
468// CHECK-tokens: Identifier: "first" [93:7 - 93:12] MemberRefExpr=first:2:23
469// CHECK-tokens: Punctuation: "->" [94:5 - 94:7] MemberRefExpr=first:2:23
470// CHECK-tokens: Identifier: "first" [94:7 - 94:12] MemberRefExpr=first:2:23
471// CHECK-tokens: Punctuation: "->" [95:5 - 95:7] MemberRefExpr=first:2:23
472// CHECK-tokens: Identifier: "first" [95:7 - 95:12] MemberRefExpr=first:2:23
473// CHECK-tokens: Punctuation: "->" [96:5 - 96:7] MemberRefExpr=first:2:23
474// CHECK-tokens: Identifier: "first" [96:7 - 96:12] MemberRefExpr=first:2:23
475// CHECK-tokens: Punctuation: "->" [97:5 - 97:7] MemberRefExpr=first:2:23
476// CHECK-tokens: Identifier: "first" [97:7 - 97:12] MemberRefExpr=first:2:23
477// CHECK-tokens: Punctuation: "->" [98:5 - 98:7] MemberRefExpr=first:2:23
478// CHECK-tokens: Identifier: "first" [98:7 - 98:12] MemberRefExpr=first:2:23
479// CHECK-tokens: Punctuation: "->" [99:5 - 99:7] MemberRefExpr=first:2:23
480// CHECK-tokens: Identifier: "first" [99:7 - 99:12] MemberRefExpr=first:2:23
481// CHECK-tokens: Punctuation: "->" [100:5 - 100:7] MemberRefExpr=first:2:23
482// CHECK-tokens: Identifier: "first" [100:7 - 100:12] MemberRefExpr=first:2:23
483// CHECK-tokens: Punctuation: "->" [101:5 - 101:7] MemberRefExpr=first:2:23
484// CHECK-tokens: Identifier: "first" [101:7 - 101:12] MemberRefExpr=first:2:23
485// CHECK-tokens: Punctuation: "->" [102:5 - 102:7] MemberRefExpr=first:2:23
486// CHECK-tokens: Identifier: "first" [102:7 - 102:12] MemberRefExpr=first:2:23
487// CHECK-tokens: Punctuation: "->" [103:5 - 103:7] MemberRefExpr=first:2:23
488// CHECK-tokens: Identifier: "first" [103:7 - 103:12] MemberRefExpr=first:2:23
489// CHECK-tokens: Punctuation: "->" [104:5 - 104:7] MemberRefExpr=first:2:23
490// CHECK-tokens: Identifier: "first" [104:7 - 104:12] MemberRefExpr=first:2:23
491// CHECK-tokens: Punctuation: "->" [105:5 - 105:7] MemberRefExpr=first:2:23
492// CHECK-tokens: Identifier: "first" [105:7 - 105:12] MemberRefExpr=first:2:23
493// CHECK-tokens: Punctuation: "->" [106:5 - 106:7] MemberRefExpr=first:2:23
494// CHECK-tokens: Identifier: "first" [106:7 - 106:12] MemberRefExpr=first:2:23
495// CHECK-tokens: Punctuation: "->" [107:5 - 107:7] MemberRefExpr=first:2:23
496// CHECK-tokens: Identifier: "first" [107:7 - 107:12] MemberRefExpr=first:2:23
497// CHECK-tokens: Punctuation: "->" [108:5 - 108:7] MemberRefExpr=first:2:23
498// CHECK-tokens: Identifier: "first" [108:7 - 108:12] MemberRefExpr=first:2:23
499// CHECK-tokens: Punctuation: "->" [109:5 - 109:7] MemberRefExpr=first:2:23
500// CHECK-tokens: Identifier: "first" [109:7 - 109:12] MemberRefExpr=first:2:23
501// CHECK-tokens: Punctuation: "->" [110:5 - 110:7] MemberRefExpr=first:2:23
502// CHECK-tokens: Identifier: "first" [110:7 - 110:12] MemberRefExpr=first:2:23
503// CHECK-tokens: Punctuation: "->" [111:5 - 111:7] MemberRefExpr=first:2:23
504// CHECK-tokens: Identifier: "first" [111:7 - 111:12] MemberRefExpr=first:2:23
505// CHECK-tokens: Punctuation: "->" [112:5 - 112:7] MemberRefExpr=first:2:23
506// CHECK-tokens: Identifier: "first" [112:7 - 112:12] MemberRefExpr=first:2:23
507// CHECK-tokens: Punctuation: "->" [113:5 - 113:7] MemberRefExpr=first:2:23
508// CHECK-tokens: Identifier: "first" [113:7 - 113:12] MemberRefExpr=first:2:23
509// CHECK-tokens: Punctuation: "->" [114:5 - 114:7] MemberRefExpr=first:2:23
510// CHECK-tokens: Identifier: "first" [114:7 - 114:12] MemberRefExpr=first:2:23
511// CHECK-tokens: Punctuation: "->" [115:5 - 115:7] MemberRefExpr=first:2:23
512// CHECK-tokens: Identifier: "first" [115:7 - 115:12] MemberRefExpr=first:2:23
513// CHECK-tokens: Punctuation: "->" [116:5 - 116:7] MemberRefExpr=first:2:23
514// CHECK-tokens: Identifier: "first" [116:7 - 116:12] MemberRefExpr=first:2:23
515// CHECK-tokens: Punctuation: "->" [117:5 - 117:7] MemberRefExpr=first:2:23
516// CHECK-tokens: Identifier: "first" [117:7 - 117:12] MemberRefExpr=first:2:23
517// CHECK-tokens: Punctuation: "->" [118:5 - 118:7] MemberRefExpr=first:2:23
518// CHECK-tokens: Identifier: "first" [118:7 - 118:12] MemberRefExpr=first:2:23
519// CHECK-tokens: Punctuation: "->" [119:5 - 119:7] MemberRefExpr=first:2:23
520// CHECK-tokens: Identifier: "first" [119:7 - 119:12] MemberRefExpr=first:2:23
521// CHECK-tokens: Punctuation: "->" [120:5 - 120:7] MemberRefExpr=first:2:23
522// CHECK-tokens: Identifier: "first" [120:7 - 120:12] MemberRefExpr=first:2:23
523// CHECK-tokens: Punctuation: "->" [121:5 - 121:7] MemberRefExpr=first:2:23
524// CHECK-tokens: Identifier: "first" [121:7 - 121:12] MemberRefExpr=first:2:23
525// CHECK-tokens: Punctuation: "->" [122:5 - 122:7] MemberRefExpr=first:2:23
526// CHECK-tokens: Identifier: "first" [122:7 - 122:12] MemberRefExpr=first:2:23
527// CHECK-tokens: Punctuation: "->" [123:5 - 123:7] MemberRefExpr=x:3:7
528// CHECK-tokens: Identifier: "x" [123:7 - 123:8] MemberRefExpr=x:3:7
529// CHECK-tokens: Punctuation: ";" [123:8 - 123:9] UnexposedStmt=
530// CHECK-tokens: Punctuation: "}" [124:1 - 124:2] UnexposedStmt=
531
532