OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of dart2js.semantics_visitor_test; | 5 part of dart2js.semantics_visitor_test; |
6 | 6 |
7 const Map<String, List<Test>> DECL_TESTS = const { | 7 const Map<String, List<Test>> DECL_TESTS = const { |
8 'Function declarations': const [ | 8 'Function declarations': const [ |
9 const Test( | 9 const Test( |
10 ''' | 10 ''' |
11 m(a, b) {} | 11 m(a, b) {} |
12 ''', | 12 ''', |
13 const [ | 13 const [ |
14 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 14 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
15 element: 'function(m)', | 15 element: 'function(m)', parameters: '(a,b)', body: '{}'), |
16 parameters: '(a,b)', | |
17 body: '{}'), | |
18 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 16 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
19 element: 'parameter(m#a)', | 17 element: 'parameter(m#a)', index: 0), |
20 index: 0), | |
21 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 18 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
22 element: 'parameter(m#b)', | 19 element: 'parameter(m#b)', index: 1), |
23 index: 1), | |
24 ]), | 20 ]), |
25 const Test( | 21 const Test( |
26 ''' | 22 ''' |
27 m(a, [b]) {} | 23 m(a, [b]) {} |
28 ''', | 24 ''', |
29 const [ | 25 const [ |
30 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 26 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
31 element: 'function(m)', | 27 element: 'function(m)', parameters: '(a,[b])', body: '{}'), |
32 parameters: '(a,[b])', | |
33 body: '{}'), | |
34 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 28 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
35 element: 'parameter(m#a)', | 29 element: 'parameter(m#a)', index: 0), |
36 index: 0), | |
37 const Visit(VisitKind.VISIT_OPTIONAL_PARAMETER_DECL, | 30 const Visit(VisitKind.VISIT_OPTIONAL_PARAMETER_DECL, |
38 element: 'parameter(m#b)', | 31 element: 'parameter(m#b)', index: 1, constant: 'null'), |
39 index: 1, | |
40 constant: 'null'), | |
41 ]), | 32 ]), |
42 const Test( | 33 const Test( |
43 ''' | 34 ''' |
44 m(a, [b = null]) {} | 35 m(a, [b = null]) {} |
45 ''', | 36 ''', |
46 const [ | 37 const [ |
47 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 38 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
48 element: 'function(m)', | 39 element: 'function(m)', parameters: '(a,[b=null])', body: '{}'), |
49 parameters: '(a,[b=null])', | |
50 body: '{}'), | |
51 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 40 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
52 element: 'parameter(m#a)', | 41 element: 'parameter(m#a)', index: 0), |
53 index: 0), | |
54 const Visit(VisitKind.VISIT_OPTIONAL_PARAMETER_DECL, | 42 const Visit(VisitKind.VISIT_OPTIONAL_PARAMETER_DECL, |
55 element: 'parameter(m#b)', | 43 element: 'parameter(m#b)', constant: 'null', index: 1), |
56 constant: 'null', | |
57 index: 1), | |
58 ]), | 44 ]), |
59 const Test( | 45 const Test( |
60 ''' | 46 ''' |
61 m(a, [b = 42]) {} | 47 m(a, [b = 42]) {} |
62 ''', | 48 ''', |
63 const [ | 49 const [ |
64 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 50 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
65 element: 'function(m)', | 51 element: 'function(m)', parameters: '(a,[b=42])', body: '{}'), |
66 parameters: '(a,[b=42])', | |
67 body: '{}'), | |
68 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 52 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
69 element: 'parameter(m#a)', | 53 element: 'parameter(m#a)', index: 0), |
70 index: 0), | |
71 const Visit(VisitKind.VISIT_OPTIONAL_PARAMETER_DECL, | 54 const Visit(VisitKind.VISIT_OPTIONAL_PARAMETER_DECL, |
72 element: 'parameter(m#b)', | 55 element: 'parameter(m#b)', constant: 42, index: 1), |
73 constant: 42, | |
74 index: 1), | |
75 ]), | 56 ]), |
76 const Test( | 57 const Test( |
77 ''' | 58 ''' |
78 m(a, {b}) {} | 59 m(a, {b}) {} |
79 ''', | 60 ''', |
80 const [ | 61 const [ |
81 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 62 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
82 element: 'function(m)', | 63 element: 'function(m)', parameters: '(a,{b})', body: '{}'), |
83 parameters: '(a,{b})', | |
84 body: '{}'), | |
85 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 64 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
86 element: 'parameter(m#a)', | 65 element: 'parameter(m#a)', index: 0), |
87 index: 0), | |
88 const Visit(VisitKind.VISIT_NAMED_PARAMETER_DECL, | 66 const Visit(VisitKind.VISIT_NAMED_PARAMETER_DECL, |
89 element: 'parameter(m#b)', | 67 element: 'parameter(m#b)', constant: 'null'), |
90 constant: 'null'), | |
91 ]), | 68 ]), |
92 const Test( | 69 const Test( |
93 ''' | 70 ''' |
94 m(a, {b: null}) {} | 71 m(a, {b: null}) {} |
95 ''', | 72 ''', |
96 const [ | 73 const [ |
97 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 74 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
98 element: 'function(m)', | 75 element: 'function(m)', parameters: '(a,{b: null})', body: '{}'), |
99 parameters: '(a,{b: null})', | |
100 body: '{}'), | |
101 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 76 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
102 element: 'parameter(m#a)', | 77 element: 'parameter(m#a)', index: 0), |
103 index: 0), | |
104 const Visit(VisitKind.VISIT_NAMED_PARAMETER_DECL, | 78 const Visit(VisitKind.VISIT_NAMED_PARAMETER_DECL, |
105 element: 'parameter(m#b)', | 79 element: 'parameter(m#b)', constant: 'null'), |
106 constant: 'null'), | |
107 ]), | 80 ]), |
108 const Test( | 81 const Test( |
109 ''' | 82 ''' |
110 m(a, {b:42}) {} | 83 m(a, {b:42}) {} |
111 ''', | 84 ''', |
112 const [ | 85 const [ |
113 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 86 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
114 element: 'function(m)', | 87 element: 'function(m)', parameters: '(a,{b: 42})', body: '{}'), |
115 parameters: '(a,{b: 42})', | |
116 body: '{}'), | |
117 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 88 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
118 element: 'parameter(m#a)', | 89 element: 'parameter(m#a)', index: 0), |
119 index: 0), | |
120 const Visit(VisitKind.VISIT_NAMED_PARAMETER_DECL, | 90 const Visit(VisitKind.VISIT_NAMED_PARAMETER_DECL, |
121 element: 'parameter(m#b)', | 91 element: 'parameter(m#b)', constant: 42), |
122 constant: 42), | |
123 ]), | 92 ]), |
124 const Test( | 93 const Test( |
125 ''' | 94 ''' |
126 get m => null; | 95 get m => null; |
127 ''', | 96 ''', |
128 const [ | 97 const [ |
129 const Visit(VisitKind.VISIT_TOP_LEVEL_GETTER_DECL, | 98 const Visit(VisitKind.VISIT_TOP_LEVEL_GETTER_DECL, |
130 element: 'getter(m)', | 99 element: 'getter(m)', body: '=>null;'), |
131 body: '=>null;'), | |
132 ]), | 100 ]), |
133 const Test( | 101 const Test( |
134 ''' | 102 ''' |
135 set m(a) {} | 103 set m(a) {} |
136 ''', | 104 ''', |
137 const [ | 105 const [ |
138 const Visit(VisitKind.VISIT_TOP_LEVEL_SETTER_DECL, | 106 const Visit(VisitKind.VISIT_TOP_LEVEL_SETTER_DECL, |
139 element: 'setter(m)', | 107 element: 'setter(m)', parameters: '(a)', body: '{}'), |
140 parameters: '(a)', | |
141 body: '{}'), | |
142 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 108 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
143 element: 'parameter(m#a)', | 109 element: 'parameter(m#a)', index: 0), |
144 index: 0), | |
145 ]), | 110 ]), |
146 const Test.clazz( | 111 const Test.clazz( |
147 ''' | 112 ''' |
148 class C { | 113 class C { |
149 static m(a, b) {} | 114 static m(a, b) {} |
150 } | 115 } |
151 ''', | 116 ''', |
152 const [ | 117 const [ |
153 const Visit(VisitKind.VISIT_STATIC_FUNCTION_DECL, | 118 const Visit(VisitKind.VISIT_STATIC_FUNCTION_DECL, |
154 element: 'function(C#m)', | 119 element: 'function(C#m)', parameters: '(a,b)', body: '{}'), |
155 parameters: '(a,b)', | |
156 body: '{}'), | |
157 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 120 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
158 element: 'parameter(m#a)', | 121 element: 'parameter(m#a)', index: 0), |
159 index: 0), | |
160 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 122 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
161 element: 'parameter(m#b)', | 123 element: 'parameter(m#b)', index: 1), |
162 index: 1), | |
163 ]), | 124 ]), |
164 const Test.clazz( | 125 const Test.clazz( |
165 ''' | 126 ''' |
166 class C { | 127 class C { |
167 static get m => null; | 128 static get m => null; |
168 } | 129 } |
169 ''', | 130 ''', |
170 const [ | 131 const [ |
171 const Visit(VisitKind.VISIT_STATIC_GETTER_DECL, | 132 const Visit(VisitKind.VISIT_STATIC_GETTER_DECL, |
172 element: 'getter(C#m)', | 133 element: 'getter(C#m)', body: '=>null;'), |
173 body: '=>null;'), | |
174 ]), | 134 ]), |
175 const Test.clazz( | 135 const Test.clazz( |
176 ''' | 136 ''' |
177 class C { | 137 class C { |
178 static set m(a) {} | 138 static set m(a) {} |
179 } | 139 } |
180 ''', | 140 ''', |
181 const [ | 141 const [ |
182 const Visit(VisitKind.VISIT_STATIC_SETTER_DECL, | 142 const Visit(VisitKind.VISIT_STATIC_SETTER_DECL, |
183 element: 'setter(C#m)', | 143 element: 'setter(C#m)', parameters: '(a)', body: '{}'), |
184 parameters: '(a)', | |
185 body: '{}'), | |
186 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 144 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
187 element: 'parameter(m#a)', | 145 element: 'parameter(m#a)', index: 0), |
188 index: 0), | |
189 ]), | 146 ]), |
190 const Test.clazz( | 147 const Test.clazz( |
191 ''' | 148 ''' |
192 class C { | 149 class C { |
193 m(a, b) {} | 150 m(a, b) {} |
194 } | 151 } |
195 ''', | 152 ''', |
196 const [ | 153 const [ |
197 const Visit(VisitKind.VISIT_INSTANCE_METHOD_DECL, | 154 const Visit(VisitKind.VISIT_INSTANCE_METHOD_DECL, |
198 element: 'function(C#m)', | 155 element: 'function(C#m)', parameters: '(a,b)', body: '{}'), |
199 parameters: '(a,b)', | |
200 body: '{}'), | |
201 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 156 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
202 element: 'parameter(m#a)', | 157 element: 'parameter(m#a)', index: 0), |
203 index: 0), | |
204 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 158 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
205 element: 'parameter(m#b)', | 159 element: 'parameter(m#b)', index: 1), |
206 index: 1), | |
207 ]), | 160 ]), |
208 const Test.clazz( | 161 const Test.clazz( |
209 ''' | 162 ''' |
210 class C { | 163 class C { |
211 get m => null; | 164 get m => null; |
212 } | 165 } |
213 ''', | 166 ''', |
214 const [ | 167 const [ |
215 const Visit(VisitKind.VISIT_INSTANCE_GETTER_DECL, | 168 const Visit(VisitKind.VISIT_INSTANCE_GETTER_DECL, |
216 element: 'getter(C#m)', | 169 element: 'getter(C#m)', body: '=>null;'), |
217 body: '=>null;'), | |
218 ]), | 170 ]), |
219 const Test.clazz( | 171 const Test.clazz( |
220 ''' | 172 ''' |
221 class C { | 173 class C { |
222 set m(a) {} | 174 set m(a) {} |
223 } | 175 } |
224 ''', | 176 ''', |
225 const [ | 177 const [ |
226 const Visit(VisitKind.VISIT_INSTANCE_SETTER_DECL, | 178 const Visit(VisitKind.VISIT_INSTANCE_SETTER_DECL, |
227 element: 'setter(C#m)', | 179 element: 'setter(C#m)', parameters: '(a)', body: '{}'), |
228 parameters: '(a)', | |
229 body: '{}'), | |
230 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 180 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
231 element: 'parameter(m#a)', | 181 element: 'parameter(m#a)', index: 0), |
232 index: 0), | |
233 ]), | 182 ]), |
234 const Test.clazz( | 183 const Test.clazz( |
235 ''' | 184 ''' |
236 abstract class C { | 185 abstract class C { |
237 m(a, b); | 186 m(a, b); |
238 } | 187 } |
239 ''', | 188 ''', |
240 const [ | 189 const [ |
241 const Visit(VisitKind.VISIT_ABSTRACT_METHOD_DECL, | 190 const Visit(VisitKind.VISIT_ABSTRACT_METHOD_DECL, |
242 element: 'function(C#m)', | 191 element: 'function(C#m)', parameters: '(a,b)'), |
243 parameters: '(a,b)'), | |
244 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 192 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
245 element: 'parameter(m#a)', | 193 element: 'parameter(m#a)', index: 0), |
246 index: 0), | |
247 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 194 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
248 element: 'parameter(m#b)', | 195 element: 'parameter(m#b)', index: 1), |
249 index: 1), | |
250 ]), | 196 ]), |
251 const Test.clazz( | 197 const Test.clazz( |
252 ''' | 198 ''' |
253 abstract class C { | 199 abstract class C { |
254 get m; | 200 get m; |
255 } | 201 } |
256 ''', | 202 ''', |
257 const [ | 203 const [ |
258 const Visit(VisitKind.VISIT_ABSTRACT_GETTER_DECL, | 204 const Visit(VisitKind.VISIT_ABSTRACT_GETTER_DECL, |
259 element: 'getter(C#m)'), | 205 element: 'getter(C#m)'), |
260 ]), | 206 ]), |
261 const Test.clazz( | 207 const Test.clazz( |
262 ''' | 208 ''' |
263 abstract class C { | 209 abstract class C { |
264 set m(a); | 210 set m(a); |
265 } | 211 } |
266 ''', | 212 ''', |
267 const [ | 213 const [ |
268 const Visit(VisitKind.VISIT_ABSTRACT_SETTER_DECL, | 214 const Visit(VisitKind.VISIT_ABSTRACT_SETTER_DECL, |
269 element: 'setter(C#m)', | 215 element: 'setter(C#m)', parameters: '(a)'), |
270 parameters: '(a)'), | |
271 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 216 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
272 element: 'parameter(m#a)', | 217 element: 'parameter(m#a)', index: 0), |
273 index: 0), | |
274 ]), | 218 ]), |
275 const Test( | 219 const Test( |
276 ''' | 220 ''' |
277 m(a, b) {} | 221 m(a, b) {} |
278 ''', | 222 ''', |
279 const [ | 223 const [ |
280 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 224 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
281 element: 'function(m)', | 225 element: 'function(m)', parameters: '(a,b)', body: '{}'), |
282 parameters: '(a,b)', | |
283 body: '{}'), | |
284 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 226 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
285 element: 'parameter(m#a)', | 227 element: 'parameter(m#a)', index: 0), |
286 index: 0), | |
287 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 228 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
288 element: 'parameter(m#b)', | 229 element: 'parameter(m#b)', index: 1), |
289 index: 1), | |
290 ]), | 230 ]), |
291 const Test( | 231 const Test( |
292 ''' | 232 ''' |
293 m() { | 233 m() { |
294 local(a, b) {} | 234 local(a, b) {} |
295 } | 235 } |
296 ''', | 236 ''', |
297 const [ | 237 const [ |
298 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 238 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
299 element: 'function(m)', | 239 element: 'function(m)', parameters: '()', body: '{local(a,b){}}'), |
300 parameters: '()', | |
301 body: '{local(a,b){}}'), | |
302 const Visit(VisitKind.VISIT_LOCAL_FUNCTION_DECL, | 240 const Visit(VisitKind.VISIT_LOCAL_FUNCTION_DECL, |
303 element: 'function(m#local)', | 241 element: 'function(m#local)', parameters: '(a,b)', body: '{}'), |
304 parameters: '(a,b)', | |
305 body: '{}'), | |
306 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 242 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
307 element: 'parameter(local#a)', | 243 element: 'parameter(local#a)', index: 0), |
308 index: 0), | |
309 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 244 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
310 element: 'parameter(local#b)', | 245 element: 'parameter(local#b)', index: 1), |
311 index: 1), | |
312 ]), | 246 ]), |
313 const Test( | 247 const Test( |
314 ''' | 248 ''' |
315 m() => (a, b) {}; | 249 m() => (a, b) {}; |
316 ''', | 250 ''', |
317 const [ | 251 const [ |
318 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 252 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
319 element: 'function(m)', | 253 element: 'function(m)', parameters: '()', body: '=>(a,b){};'), |
320 parameters: '()', | |
321 body: '=>(a,b){};'), | |
322 const Visit(VisitKind.VISIT_CLOSURE_DECL, | 254 const Visit(VisitKind.VISIT_CLOSURE_DECL, |
323 element: 'function(m#)', | 255 element: 'function(m#)', parameters: '(a,b)', body: '{}'), |
324 parameters: '(a,b)', | |
325 body: '{}'), | |
326 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 256 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
327 element: 'parameter(#a)', | 257 element: 'parameter(#a)', index: 0), |
328 index: 0), | |
329 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 258 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
330 element: 'parameter(#b)', | 259 element: 'parameter(#b)', index: 1), |
331 index: 1), | |
332 ]), | 260 ]), |
333 ], | 261 ], |
334 'Constructor declarations': const [ | 262 'Constructor declarations': const [ |
335 const Test.clazz( | 263 const Test.clazz( |
336 ''' | 264 ''' |
337 class C { | 265 class C { |
338 C(a, b); | 266 C(a, b); |
339 } | 267 } |
340 ''', | 268 ''', |
341 const [ | 269 const [ |
342 const Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, | 270 const Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, |
343 element: 'generative_constructor(C#)', | 271 element: 'generative_constructor(C#)', |
344 parameters: '(a,b)', | 272 parameters: '(a,b)', |
345 body: ';'), | 273 body: ';'), |
346 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 274 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
347 element: 'parameter(#a)', | 275 element: 'parameter(#a)', index: 0), |
348 index: 0), | |
349 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 276 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
350 element: 'parameter(#b)', | 277 element: 'parameter(#b)', index: 1), |
351 index: 1), | |
352 const Visit(VisitKind.VISIT_IMPLICIT_SUPER_CONSTRUCTOR_INVOKE, | 278 const Visit(VisitKind.VISIT_IMPLICIT_SUPER_CONSTRUCTOR_INVOKE, |
353 element: 'generative_constructor(Object#)', | 279 element: 'generative_constructor(Object#)', type: 'Object'), |
354 type: 'Object'), | |
355 ], | 280 ], |
356 method: ''), | 281 method: ''), |
357 const Test.clazz( | 282 const Test.clazz( |
358 ''' | 283 ''' |
359 class C { | 284 class C { |
360 var b; | 285 var b; |
361 C(a, this.b); | 286 C(a, this.b); |
362 } | 287 } |
363 ''', | 288 ''', |
364 const [ | 289 const [ |
365 const Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, | 290 const Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, |
366 element: 'generative_constructor(C#)', | 291 element: 'generative_constructor(C#)', |
367 parameters: '(a,this.b)', | 292 parameters: '(a,this.b)', |
368 body: ';'), | 293 body: ';'), |
369 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 294 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
370 element: 'parameter(#a)', | 295 element: 'parameter(#a)', index: 0), |
371 index: 0), | |
372 const Visit(VisitKind.VISIT_REQUIRED_INITIALIZING_FORMAL_DECL, | 296 const Visit(VisitKind.VISIT_REQUIRED_INITIALIZING_FORMAL_DECL, |
373 element: 'initializing_formal(#b)', | 297 element: 'initializing_formal(#b)', index: 1), |
374 index: 1), | |
375 const Visit(VisitKind.VISIT_IMPLICIT_SUPER_CONSTRUCTOR_INVOKE, | 298 const Visit(VisitKind.VISIT_IMPLICIT_SUPER_CONSTRUCTOR_INVOKE, |
376 element: 'generative_constructor(Object#)', | 299 element: 'generative_constructor(Object#)', type: 'Object'), |
377 type: 'Object'), | |
378 ], | 300 ], |
379 method: ''), | 301 method: ''), |
380 const Test.clazz( | 302 const Test.clazz( |
381 ''' | 303 ''' |
382 class C { | 304 class C { |
383 var b; | 305 var b; |
384 C(a, [this.b = 42]); | 306 C(a, [this.b = 42]); |
385 } | 307 } |
386 ''', | 308 ''', |
387 const [ | 309 const [ |
388 const Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, | 310 const Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, |
389 element: 'generative_constructor(C#)', | 311 element: 'generative_constructor(C#)', |
390 parameters: '(a,[this.b=42])', | 312 parameters: '(a,[this.b=42])', |
391 body: ';'), | 313 body: ';'), |
392 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 314 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
393 element: 'parameter(#a)', | 315 element: 'parameter(#a)', index: 0), |
394 index: 0), | |
395 const Visit(VisitKind.VISIT_OPTIONAL_INITIALIZING_FORMAL_DECL, | 316 const Visit(VisitKind.VISIT_OPTIONAL_INITIALIZING_FORMAL_DECL, |
396 element: 'initializing_formal(#b)', | 317 element: 'initializing_formal(#b)', constant: 42, index: 1), |
397 constant: 42, | |
398 index: 1), | |
399 const Visit(VisitKind.VISIT_IMPLICIT_SUPER_CONSTRUCTOR_INVOKE, | 318 const Visit(VisitKind.VISIT_IMPLICIT_SUPER_CONSTRUCTOR_INVOKE, |
400 element: 'generative_constructor(Object#)', | 319 element: 'generative_constructor(Object#)', type: 'Object'), |
401 type: 'Object'), | |
402 ], | 320 ], |
403 method: ''), | 321 method: ''), |
404 const Test.clazz( | 322 const Test.clazz( |
405 ''' | 323 ''' |
406 class C { | 324 class C { |
407 var b; | 325 var b; |
408 C(a, {this.b: 42}); | 326 C(a, {this.b: 42}); |
409 } | 327 } |
410 ''', | 328 ''', |
411 const [ | 329 const [ |
412 const Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, | 330 const Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, |
413 element: 'generative_constructor(C#)', | 331 element: 'generative_constructor(C#)', |
414 parameters: '(a,{this.b: 42})', | 332 parameters: '(a,{this.b: 42})', |
415 body: ';'), | 333 body: ';'), |
416 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 334 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
417 element: 'parameter(#a)', | 335 element: 'parameter(#a)', index: 0), |
418 index: 0), | |
419 const Visit(VisitKind.VISIT_NAMED_INITIALIZING_FORMAL_DECL, | 336 const Visit(VisitKind.VISIT_NAMED_INITIALIZING_FORMAL_DECL, |
420 element: 'initializing_formal(#b)', | 337 element: 'initializing_formal(#b)', constant: 42), |
421 constant: 42), | |
422 const Visit(VisitKind.VISIT_IMPLICIT_SUPER_CONSTRUCTOR_INVOKE, | 338 const Visit(VisitKind.VISIT_IMPLICIT_SUPER_CONSTRUCTOR_INVOKE, |
423 element: 'generative_constructor(Object#)', | 339 element: 'generative_constructor(Object#)', type: 'Object'), |
424 type: 'Object'), | |
425 ], | 340 ], |
426 method: ''), | 341 method: ''), |
427 const Test.clazz( | 342 const Test.clazz( |
428 ''' | 343 ''' |
429 class C { | 344 class C { |
430 C(a, b) : super(); | 345 C(a, b) : super(); |
431 } | 346 } |
432 ''', | 347 ''', |
433 const [ | 348 const [ |
434 const Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, | 349 const Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, |
435 element: 'generative_constructor(C#)', | 350 element: 'generative_constructor(C#)', |
436 parameters: '(a,b)', | 351 parameters: '(a,b)', |
437 body: ';'), | 352 body: ';'), |
438 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 353 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
439 element: 'parameter(#a)', | 354 element: 'parameter(#a)', index: 0), |
440 index: 0), | |
441 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 355 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
442 element: 'parameter(#b)', | 356 element: 'parameter(#b)', index: 1), |
443 index: 1), | |
444 const Visit(VisitKind.VISIT_SUPER_CONSTRUCTOR_INVOKE, | 357 const Visit(VisitKind.VISIT_SUPER_CONSTRUCTOR_INVOKE, |
445 element: 'generative_constructor(Object#)', | 358 element: 'generative_constructor(Object#)', |
446 type: 'Object', | 359 type: 'Object', |
447 arguments: '()', | 360 arguments: '()', |
448 selector: 'CallStructure(arity=0)'), | 361 selector: 'CallStructure(arity=0)'), |
449 ], | 362 ], |
450 method: ''), | 363 method: ''), |
451 const Test.clazz( | 364 const Test.clazz( |
452 ''' | 365 ''' |
453 class C { | 366 class C { |
454 var field; | 367 var field; |
455 C(a, b) : this.field = a; | 368 C(a, b) : this.field = a; |
456 } | 369 } |
457 ''', | 370 ''', |
458 const [ | 371 const [ |
459 const Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, | 372 const Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, |
460 element: 'generative_constructor(C#)', | 373 element: 'generative_constructor(C#)', |
461 parameters: '(a,b)', | 374 parameters: '(a,b)', |
462 body: ';'), | 375 body: ';'), |
463 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 376 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
464 element: 'parameter(#a)', | 377 element: 'parameter(#a)', index: 0), |
465 index: 0), | |
466 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 378 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
467 element: 'parameter(#b)', | 379 element: 'parameter(#b)', index: 1), |
468 index: 1), | |
469 const Visit(VisitKind.VISIT_FIELD_INITIALIZER, | 380 const Visit(VisitKind.VISIT_FIELD_INITIALIZER, |
470 element: 'field(C#field)', | 381 element: 'field(C#field)', rhs: 'a'), |
471 rhs: 'a'), | |
472 const Visit(VisitKind.VISIT_IMPLICIT_SUPER_CONSTRUCTOR_INVOKE, | 382 const Visit(VisitKind.VISIT_IMPLICIT_SUPER_CONSTRUCTOR_INVOKE, |
473 element: 'generative_constructor(Object#)', | 383 element: 'generative_constructor(Object#)', type: 'Object'), |
474 type: 'Object'), | |
475 ], | 384 ], |
476 method: ''), | 385 method: ''), |
477 const Test.clazz( | 386 const Test.clazz( |
478 ''' | 387 ''' |
479 class C { | 388 class C { |
480 var field1; | 389 var field1; |
481 var field2; | 390 var field2; |
482 C(a, b) : this.field1 = a, this.field2 = b; | 391 C(a, b) : this.field1 = a, this.field2 = b; |
483 } | 392 } |
484 ''', | 393 ''', |
485 const [ | 394 const [ |
486 const Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, | 395 const Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, |
487 element: 'generative_constructor(C#)', | 396 element: 'generative_constructor(C#)', |
488 parameters: '(a,b)', | 397 parameters: '(a,b)', |
489 body: ';'), | 398 body: ';'), |
490 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 399 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
491 element: 'parameter(#a)', | 400 element: 'parameter(#a)', index: 0), |
492 index: 0), | |
493 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 401 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
494 element: 'parameter(#b)', | 402 element: 'parameter(#b)', index: 1), |
495 index: 1), | |
496 const Visit(VisitKind.VISIT_FIELD_INITIALIZER, | 403 const Visit(VisitKind.VISIT_FIELD_INITIALIZER, |
497 element: 'field(C#field1)', | 404 element: 'field(C#field1)', rhs: 'a'), |
498 rhs: 'a'), | |
499 const Visit(VisitKind.VISIT_FIELD_INITIALIZER, | 405 const Visit(VisitKind.VISIT_FIELD_INITIALIZER, |
500 element: 'field(C#field2)', | 406 element: 'field(C#field2)', rhs: 'b'), |
501 rhs: 'b'), | |
502 const Visit(VisitKind.VISIT_IMPLICIT_SUPER_CONSTRUCTOR_INVOKE, | 407 const Visit(VisitKind.VISIT_IMPLICIT_SUPER_CONSTRUCTOR_INVOKE, |
503 element: 'generative_constructor(Object#)', | 408 element: 'generative_constructor(Object#)', type: 'Object'), |
504 type: 'Object'), | |
505 ], | 409 ], |
506 method: ''), | 410 method: ''), |
507 const Test.clazz( | 411 const Test.clazz( |
508 ''' | 412 ''' |
509 class C { | 413 class C { |
510 C(a, b) : this._(a, b); | 414 C(a, b) : this._(a, b); |
511 C._(a, b); | 415 C._(a, b); |
512 } | 416 } |
513 ''', | 417 ''', |
514 const [ | 418 const [ |
515 const Visit(VisitKind.VISIT_REDIRECTING_GENERATIVE_CONSTRUCTOR_DECL, | 419 const Visit(VisitKind.VISIT_REDIRECTING_GENERATIVE_CONSTRUCTOR_DECL, |
516 element: 'generative_constructor(C#)', | 420 element: 'generative_constructor(C#)', |
517 parameters: '(a,b)', | 421 parameters: '(a,b)', |
518 initializers: ':this._(a,b)'), | 422 initializers: ':this._(a,b)'), |
519 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 423 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
520 element: 'parameter(#a)', | 424 element: 'parameter(#a)', index: 0), |
521 index: 0), | |
522 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 425 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
523 element: 'parameter(#b)', | 426 element: 'parameter(#b)', index: 1), |
524 index: 1), | |
525 const Visit(VisitKind.VISIT_THIS_CONSTRUCTOR_INVOKE, | 427 const Visit(VisitKind.VISIT_THIS_CONSTRUCTOR_INVOKE, |
526 element: 'generative_constructor(C#_)', | 428 element: 'generative_constructor(C#_)', |
527 arguments: '(a,b)', | 429 arguments: '(a,b)', |
528 selector: 'CallStructure(arity=2)'), | 430 selector: 'CallStructure(arity=2)'), |
529 ], | 431 ], |
530 method: ''), | 432 method: ''), |
531 const Test.clazz( | 433 const Test.clazz( |
532 ''' | 434 ''' |
533 class C { | 435 class C { |
534 factory C(a, b) => null; | 436 factory C(a, b) => null; |
535 } | 437 } |
536 ''', | 438 ''', |
537 const [ | 439 const [ |
538 const Visit(VisitKind.VISIT_FACTORY_CONSTRUCTOR_DECL, | 440 const Visit(VisitKind.VISIT_FACTORY_CONSTRUCTOR_DECL, |
539 element: 'factory_constructor(C#)', | 441 element: 'factory_constructor(C#)', |
540 parameters: '(a,b)', | 442 parameters: '(a,b)', |
541 body: '=>null;'), | 443 body: '=>null;'), |
542 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 444 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
543 element: 'parameter(#a)', | 445 element: 'parameter(#a)', index: 0), |
544 index: 0), | |
545 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 446 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
546 element: 'parameter(#b)', | 447 element: 'parameter(#b)', index: 1), |
547 index: 1), | |
548 ], | 448 ], |
549 method: ''), | 449 method: ''), |
550 const Test.clazz( | 450 const Test.clazz( |
551 ''' | 451 ''' |
552 class C { | 452 class C { |
553 factory C(a, b) = C._; | 453 factory C(a, b) = C._; |
554 C._(a, b); | 454 C._(a, b); |
555 } | 455 } |
556 ''', | 456 ''', |
557 const [ | 457 const [ |
558 const Visit(VisitKind.VISIT_REDIRECTING_FACTORY_CONSTRUCTOR_DECL, | 458 const Visit(VisitKind.VISIT_REDIRECTING_FACTORY_CONSTRUCTOR_DECL, |
559 element: 'factory_constructor(C#)', | 459 element: 'factory_constructor(C#)', |
560 parameters: '(a,b)', | 460 parameters: '(a,b)', |
561 target: 'generative_constructor(C#_)', | 461 target: 'generative_constructor(C#_)', |
562 type: 'C'), | 462 type: 'C'), |
563 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 463 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
564 element: 'parameter(#a)', | 464 element: 'parameter(#a)', index: 0), |
565 index: 0), | |
566 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 465 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
567 element: 'parameter(#b)', | 466 element: 'parameter(#b)', index: 1), |
568 index: 1), | |
569 ], | 467 ], |
570 method: ''), | 468 method: ''), |
571 const Test.clazz( | 469 const Test.clazz( |
572 ''' | 470 ''' |
573 class C { | 471 class C { |
574 factory C(a, b) = D; | 472 factory C(a, b) = D; |
575 } | 473 } |
576 class D<T> { | 474 class D<T> { |
577 D(a, b); | 475 D(a, b); |
578 } | 476 } |
579 ''', | 477 ''', |
580 const [ | 478 const [ |
581 const Visit(VisitKind.VISIT_REDIRECTING_FACTORY_CONSTRUCTOR_DECL, | 479 const Visit(VisitKind.VISIT_REDIRECTING_FACTORY_CONSTRUCTOR_DECL, |
582 element: 'factory_constructor(C#)', | 480 element: 'factory_constructor(C#)', |
583 parameters: '(a,b)', | 481 parameters: '(a,b)', |
584 target: 'generative_constructor(D#)', | 482 target: 'generative_constructor(D#)', |
585 type: 'D'), | 483 type: 'D'), |
586 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 484 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
587 element: 'parameter(#a)', | 485 element: 'parameter(#a)', index: 0), |
588 index: 0), | |
589 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 486 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
590 element: 'parameter(#b)', | 487 element: 'parameter(#b)', index: 1), |
591 index: 1), | |
592 ], | 488 ], |
593 method: ''), | 489 method: ''), |
594 const Test.clazz( | 490 const Test.clazz( |
595 ''' | 491 ''' |
596 class C { | 492 class C { |
597 factory C(a, b) = D<int>; | 493 factory C(a, b) = D<int>; |
598 } | 494 } |
599 class D<T> { | 495 class D<T> { |
600 D(a, b); | 496 D(a, b); |
601 } | 497 } |
602 ''', | 498 ''', |
603 const [ | 499 const [ |
604 const Visit(VisitKind.VISIT_REDIRECTING_FACTORY_CONSTRUCTOR_DECL, | 500 const Visit(VisitKind.VISIT_REDIRECTING_FACTORY_CONSTRUCTOR_DECL, |
605 element: 'factory_constructor(C#)', | 501 element: 'factory_constructor(C#)', |
606 parameters: '(a,b)', | 502 parameters: '(a,b)', |
607 target: 'generative_constructor(D#)', | 503 target: 'generative_constructor(D#)', |
608 type: 'D<int>'), | 504 type: 'D<int>'), |
609 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 505 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
610 element: 'parameter(#a)', | 506 element: 'parameter(#a)', index: 0), |
611 index: 0), | |
612 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 507 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
613 element: 'parameter(#b)', | 508 element: 'parameter(#b)', index: 1), |
614 index: 1), | |
615 ], | 509 ], |
616 method: ''), | 510 method: ''), |
617 const Test.clazz( | 511 const Test.clazz( |
618 ''' | 512 ''' |
619 class C { | 513 class C { |
620 factory C(a, b) = D<int>; | 514 factory C(a, b) = D<int>; |
621 } | 515 } |
622 class D<T> { | 516 class D<T> { |
623 factory D(a, b) = E<D<T>>; | 517 factory D(a, b) = E<D<T>>; |
624 } | 518 } |
625 class E<S> { | 519 class E<S> { |
626 E(a, b); | 520 E(a, b); |
627 } | 521 } |
628 ''', | 522 ''', |
629 const [ | 523 const [ |
630 const Visit(VisitKind.VISIT_REDIRECTING_FACTORY_CONSTRUCTOR_DECL, | 524 const Visit(VisitKind.VISIT_REDIRECTING_FACTORY_CONSTRUCTOR_DECL, |
631 element: 'factory_constructor(C#)', | 525 element: 'factory_constructor(C#)', |
632 parameters: '(a,b)', | 526 parameters: '(a,b)', |
633 target: 'factory_constructor(D#)', | 527 target: 'factory_constructor(D#)', |
634 type: 'D<int>'), | 528 type: 'D<int>'), |
635 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 529 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
636 element: 'parameter(#a)', | 530 element: 'parameter(#a)', index: 0), |
637 index: 0), | |
638 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | 531 const Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, |
639 element: 'parameter(#b)', | 532 element: 'parameter(#b)', index: 1), |
640 index: 1), | |
641 ], | 533 ], |
642 method: ''), | 534 method: ''), |
643 ], | 535 ], |
644 "Field declarations": const [ | 536 "Field declarations": const [ |
645 const Test.clazz( | 537 const Test.clazz( |
646 ''' | 538 ''' |
647 class C { | 539 class C { |
648 var m; | 540 var m; |
649 } | 541 } |
650 ''', | 542 ''', |
(...skipping 14 matching lines...) Expand all Loading... |
665 element: 'field(C#n)'), | 557 element: 'field(C#n)'), |
666 ]), | 558 ]), |
667 const Test.clazz( | 559 const Test.clazz( |
668 ''' | 560 ''' |
669 class C { | 561 class C { |
670 var m = 42; | 562 var m = 42; |
671 } | 563 } |
672 ''', | 564 ''', |
673 const [ | 565 const [ |
674 const Visit(VisitKind.VISIT_INSTANCE_FIELD_DECL, | 566 const Visit(VisitKind.VISIT_INSTANCE_FIELD_DECL, |
675 element: 'field(C#m)', | 567 element: 'field(C#m)', rhs: 42), |
676 rhs: 42), | |
677 ]), | 568 ]), |
678 const Test( | 569 const Test( |
679 ''' | 570 ''' |
680 m() { | 571 m() { |
681 var local; | 572 var local; |
682 } | 573 } |
683 ''', | 574 ''', |
684 const [ | 575 const [ |
685 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 576 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
686 element: 'function(m)', | 577 element: 'function(m)', parameters: '()', body: '{var local;}'), |
687 parameters: '()', | |
688 body: '{var local;}'), | |
689 const Visit(VisitKind.VISIT_LOCAL_VARIABLE_DECL, | 578 const Visit(VisitKind.VISIT_LOCAL_VARIABLE_DECL, |
690 element: 'variable(m#local)'), | 579 element: 'variable(m#local)'), |
691 ]), | 580 ]), |
692 const Test( | 581 const Test( |
693 ''' | 582 ''' |
694 m() { | 583 m() { |
695 var local = 42; | 584 var local = 42; |
696 } | 585 } |
697 ''', | 586 ''', |
698 const [ | 587 const [ |
699 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 588 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
700 element: 'function(m)', | 589 element: 'function(m)', |
701 parameters: '()', | 590 parameters: '()', |
702 body: '{var local=42;}'), | 591 body: '{var local=42;}'), |
703 const Visit(VisitKind.VISIT_LOCAL_VARIABLE_DECL, | 592 const Visit(VisitKind.VISIT_LOCAL_VARIABLE_DECL, |
704 element: 'variable(m#local)', | 593 element: 'variable(m#local)', rhs: 42), |
705 rhs: 42), | |
706 ]), | 594 ]), |
707 const Test( | 595 const Test( |
708 ''' | 596 ''' |
709 m() { | 597 m() { |
710 const local = 42; | 598 const local = 42; |
711 } | 599 } |
712 ''', | 600 ''', |
713 const [ | 601 const [ |
714 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 602 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
715 element: 'function(m)', | 603 element: 'function(m)', |
716 parameters: '()', | 604 parameters: '()', |
717 body: '{const local=42;}'), | 605 body: '{const local=42;}'), |
718 const Visit(VisitKind.VISIT_LOCAL_CONSTANT_DECL, | 606 const Visit(VisitKind.VISIT_LOCAL_CONSTANT_DECL, |
719 element: 'variable(m#local)', | 607 element: 'variable(m#local)', constant: 42), |
720 constant: 42), | |
721 ]), | 608 ]), |
722 const Test( | 609 const Test( |
723 ''' | 610 ''' |
724 m() { | 611 m() { |
725 var local1, local2; | 612 var local1, local2; |
726 } | 613 } |
727 ''', | 614 ''', |
728 const [ | 615 const [ |
729 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 616 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
730 element: 'function(m)', | 617 element: 'function(m)', |
731 parameters: '()', | 618 parameters: '()', |
732 body: '{var local1,local2;}'), | 619 body: '{var local1,local2;}'), |
733 const Visit(VisitKind.VISIT_LOCAL_VARIABLE_DECL, | 620 const Visit(VisitKind.VISIT_LOCAL_VARIABLE_DECL, |
734 element: 'variable(m#local1)'), | 621 element: 'variable(m#local1)'), |
735 const Visit(VisitKind.VISIT_LOCAL_VARIABLE_DECL, | 622 const Visit(VisitKind.VISIT_LOCAL_VARIABLE_DECL, |
736 element: 'variable(m#local2)'), | 623 element: 'variable(m#local2)'), |
737 ]), | 624 ]), |
738 const Test( | 625 const Test( |
739 ''' | 626 ''' |
740 m() { | 627 m() { |
741 var local1 = 42, local2 = true; | 628 var local1 = 42, local2 = true; |
742 } | 629 } |
743 ''', | 630 ''', |
744 const [ | 631 const [ |
745 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 632 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
746 element: 'function(m)', | 633 element: 'function(m)', |
747 parameters: '()', | 634 parameters: '()', |
748 body: '{var local1=42,local2=true;}'), | 635 body: '{var local1=42,local2=true;}'), |
749 const Visit(VisitKind.VISIT_LOCAL_VARIABLE_DECL, | 636 const Visit(VisitKind.VISIT_LOCAL_VARIABLE_DECL, |
750 element: 'variable(m#local1)', | 637 element: 'variable(m#local1)', rhs: 42), |
751 rhs: 42), | |
752 const Visit(VisitKind.VISIT_LOCAL_VARIABLE_DECL, | 638 const Visit(VisitKind.VISIT_LOCAL_VARIABLE_DECL, |
753 element: 'variable(m#local2)', | 639 element: 'variable(m#local2)', rhs: true), |
754 rhs: true), | |
755 ]), | 640 ]), |
756 const Test( | 641 const Test( |
757 ''' | 642 ''' |
758 m() { | 643 m() { |
759 const local1 = 42, local2 = true; | 644 const local1 = 42, local2 = true; |
760 } | 645 } |
761 ''', | 646 ''', |
762 const [ | 647 const [ |
763 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | 648 const Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, |
764 element: 'function(m)', | 649 element: 'function(m)', |
765 parameters: '()', | 650 parameters: '()', |
766 body: '{const local1=42,local2=true;}'), | 651 body: '{const local1=42,local2=true;}'), |
767 const Visit(VisitKind.VISIT_LOCAL_CONSTANT_DECL, | 652 const Visit(VisitKind.VISIT_LOCAL_CONSTANT_DECL, |
768 element: 'variable(m#local1)', | 653 element: 'variable(m#local1)', constant: 42), |
769 constant: 42), | |
770 const Visit(VisitKind.VISIT_LOCAL_CONSTANT_DECL, | 654 const Visit(VisitKind.VISIT_LOCAL_CONSTANT_DECL, |
771 element: 'variable(m#local2)', | 655 element: 'variable(m#local2)', constant: true), |
772 constant: true), | |
773 ]), | 656 ]), |
774 const Test.clazz( | 657 const Test.clazz( |
775 ''' | 658 ''' |
776 class C { | 659 class C { |
777 static var m; | 660 static var m; |
778 } | 661 } |
779 ''', | 662 ''', |
780 const [ | 663 const [ |
781 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, | 664 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, element: 'field(C#m)'), |
782 element: 'field(C#m)'), | |
783 ]), | 665 ]), |
784 const Test.clazz( | 666 const Test.clazz( |
785 ''' | 667 ''' |
786 class C { | 668 class C { |
787 static var m, n; | 669 static var m, n; |
788 } | 670 } |
789 ''', | 671 ''', |
790 const [ | 672 const [ |
791 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, | 673 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, element: 'field(C#m)'), |
792 element: 'field(C#m)'), | 674 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, element: 'field(C#n)'), |
793 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, | |
794 element: 'field(C#n)'), | |
795 ]), | 675 ]), |
796 const Test.clazz( | 676 const Test.clazz( |
797 ''' | 677 ''' |
798 class C { | 678 class C { |
799 static var k, l, m, n; | 679 static var k, l, m, n; |
800 } | 680 } |
801 ''', | 681 ''', |
802 const [ | 682 const [ |
803 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, | 683 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, element: 'field(C#k)'), |
804 element: 'field(C#k)'), | 684 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, element: 'field(C#l)'), |
805 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, | 685 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, element: 'field(C#m)'), |
806 element: 'field(C#l)'), | 686 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, element: 'field(C#n)'), |
807 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, | |
808 element: 'field(C#m)'), | |
809 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, | |
810 element: 'field(C#n)'), | |
811 ]), | 687 ]), |
812 const Test.clazz( | 688 const Test.clazz( |
813 ''' | 689 ''' |
814 class C { | 690 class C { |
815 static var m = 42; | 691 static var m = 42; |
816 } | 692 } |
817 ''', | 693 ''', |
818 const [ | 694 const [ |
819 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, | 695 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, |
820 element: 'field(C#m)', | 696 element: 'field(C#m)', rhs: 42), |
821 rhs: 42), | |
822 ]), | 697 ]), |
823 const Test.clazz( | 698 const Test.clazz( |
824 ''' | 699 ''' |
825 class C { | 700 class C { |
826 static var m = 42, n = true; | 701 static var m = 42, n = true; |
827 } | 702 } |
828 ''', | 703 ''', |
829 const [ | 704 const [ |
830 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, | 705 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, |
831 element: 'field(C#m)', | 706 element: 'field(C#m)', rhs: 42), |
832 rhs: 42), | |
833 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, | 707 const Visit(VisitKind.VISIT_STATIC_FIELD_DECL, |
834 element: 'field(C#n)', | 708 element: 'field(C#n)', rhs: true), |
835 rhs: true), | |
836 ]), | 709 ]), |
837 const Test.clazz( | 710 const Test.clazz( |
838 ''' | 711 ''' |
839 class C { | 712 class C { |
840 static const m = 42; | 713 static const m = 42; |
841 } | 714 } |
842 ''', | 715 ''', |
843 const [ | 716 const [ |
844 const Visit(VisitKind.VISIT_STATIC_CONSTANT_DECL, | 717 const Visit(VisitKind.VISIT_STATIC_CONSTANT_DECL, |
845 element: 'field(C#m)', | 718 element: 'field(C#m)', constant: 42), |
846 constant: 42), | |
847 ]), | 719 ]), |
848 const Test( | 720 const Test( |
849 ''' | 721 ''' |
850 var m; | 722 var m; |
851 ''', | 723 ''', |
852 const [ | 724 const [ |
853 const Visit(VisitKind.VISIT_TOP_LEVEL_FIELD_DECL, | 725 const Visit(VisitKind.VISIT_TOP_LEVEL_FIELD_DECL, |
854 element: 'field(m)'), | 726 element: 'field(m)'), |
855 ]), | 727 ]), |
856 const Test( | 728 const Test( |
857 ''' | 729 ''' |
858 var m, n; | 730 var m, n; |
859 ''', | 731 ''', |
860 const [ | 732 const [ |
861 const Visit(VisitKind.VISIT_TOP_LEVEL_FIELD_DECL, | 733 const Visit(VisitKind.VISIT_TOP_LEVEL_FIELD_DECL, |
862 element: 'field(m)'), | 734 element: 'field(m)'), |
863 const Visit(VisitKind.VISIT_TOP_LEVEL_FIELD_DECL, | 735 const Visit(VisitKind.VISIT_TOP_LEVEL_FIELD_DECL, |
864 element: 'field(n)'), | 736 element: 'field(n)'), |
865 ]), | 737 ]), |
866 const Test( | 738 const Test( |
867 ''' | 739 ''' |
868 var m = 42; | 740 var m = 42; |
869 ''', | 741 ''', |
870 const [ | 742 const [ |
871 const Visit(VisitKind.VISIT_TOP_LEVEL_FIELD_DECL, | 743 const Visit(VisitKind.VISIT_TOP_LEVEL_FIELD_DECL, |
872 element: 'field(m)', | 744 element: 'field(m)', rhs: 42), |
873 rhs: 42), | |
874 ]), | 745 ]), |
875 const Test( | 746 const Test( |
876 ''' | 747 ''' |
877 const m = 42; | 748 const m = 42; |
878 ''', | 749 ''', |
879 const [ | 750 const [ |
880 const Visit(VisitKind.VISIT_TOP_LEVEL_CONSTANT_DECL, | 751 const Visit(VisitKind.VISIT_TOP_LEVEL_CONSTANT_DECL, |
881 element: 'field(m)', | 752 element: 'field(m)', constant: 42), |
882 constant: 42), | |
883 ]), | 753 ]), |
884 ], | 754 ], |
885 }; | 755 }; |
OLD | NEW |