Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(734)

Side by Side Diff: pkg/analyzer2dart/test/sexpr_data.dart

Issue 669673006: Add SExpression test and share tests between dart2dart and analyzer2dart. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
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.
4
5 /// Test data for sexpr_test.
6 library test.sexpr.data;
7
8 import 'test_helper.dart';
9
10 const List<Group> TEST_DATA = const [
11 const Group('Empty main', const [
12 const Result('''
13 main() {}
14 ''', '''
15 (FunctionDefinition main ( return)
16 (LetPrim v0 (Constant NullConstant))
17 (InvokeContinuation return v0))
18 '''),
19
20 const Result('''
21 foo() {}
22 main() {
23 foo();
24 }
25 ''', '''
26 (FunctionDefinition main ( return)
27 (LetCont (k0 v0)
28 (LetPrim v1 (Constant NullConstant))
29 (InvokeContinuation return v1))
30 (InvokeStatic foo k0))
31 ''')
32 ]),
33
34 const Group('Literals', const [
35 const Result('''
36 main() {
37 return 0;
38 }
39 ''', '''
40 (FunctionDefinition main ( return)
41 (LetPrim v0 (Constant IntConstant(0)))
42 (InvokeContinuation return v0))
43 '''),
44
45 const Result('''
46 main() {
47 return 1.5;
48 }
49 ''', '''
50 (FunctionDefinition main ( return)
51 (LetPrim v0 (Constant DoubleConstant(1.5)))
52 (InvokeContinuation return v0))
53 '''),
54
55 const Result('''
56 main() {
57 return true;
58 }
59 ''', '''
60 (FunctionDefinition main ( return)
61 (LetPrim v0 (Constant BoolConstant(true)))
62 (InvokeContinuation return v0))
63 '''),
64
65 const Result('''
66 main() {
67 return false;
68 }
69 ''', '''
70 (FunctionDefinition main ( return)
71 (LetPrim v0 (Constant BoolConstant(false)))
72 (InvokeContinuation return v0))
73 '''),
74
75 const Result('''
76 main() {
77 return "a";
78 }
79 ''', '''
80 (FunctionDefinition main ( return)
81 (LetPrim v0 (Constant StringConstant("a")))
82 (InvokeContinuation return v0))
83 '''),
84 ]),
85
86 const Group('Parameters', const [
87 const Result('''
88 main(args) {}
89 ''', '''
90 (FunctionDefinition main (args return)
91 (LetPrim v0 (Constant NullConstant))
92 (InvokeContinuation return v0))
93 '''),
94
95 const Result('''
96 main(a, b) {}
97 ''', '''
98 (FunctionDefinition main (a b return)
99 (LetPrim v0 (Constant NullConstant))
100 (InvokeContinuation return v0))
101 '''),
102 ]),
103
104 const Group('Pass arguments', const [
105 const Result('''
106 foo(a) {}
107 main() {
108 foo(null);
109 }
110 ''', '''
111 (FunctionDefinition main ( return)
112 (LetPrim v0 (Constant NullConstant))
113 (LetCont (k0 v1)
114 (LetPrim v2 (Constant NullConstant))
115 (InvokeContinuation return v2))
116 (InvokeStatic foo v0 k0))
117 '''),
118
119 const Result('''
120 bar(b, c) {}
121 foo(a) {}
122 main() {
123 foo(null);
124 bar(0, "");
125 }
126 ''', '''
127 (FunctionDefinition main ( return)
128 (LetPrim v0 (Constant NullConstant))
129 (LetCont (k0 v1)
130 (LetPrim v2 (Constant IntConstant(0)))
131 (LetPrim v3 (Constant StringConstant("")))
132 (LetCont (k1 v4)
133 (LetPrim v5 (Constant NullConstant))
134 (InvokeContinuation return v5))
135 (InvokeStatic bar v2 v3 k1))
136 (InvokeStatic foo v0 k0))
137 '''),
138
139 const Result('''
140 foo(a) {}
141 main() {
142 return foo(null);
143 }
144 ''', '''
145 (FunctionDefinition main ( return)
146 (LetPrim v0 (Constant NullConstant))
147 (LetCont (k0 v1)
148 (InvokeContinuation return v1))
149 (InvokeStatic foo v0 k0))
150 '''),
151 ]),
152
153 const Group('Local variables', const [
154 const Result('''
155 main() {
156 var a;
157 return a;
158 }
159 ''', '''
160 (FunctionDefinition main ( return)
161 (LetPrim v0 (Constant NullConstant))
162 (InvokeContinuation return v0))
163 '''),
164
165 const Result('''
166 main() {
167 var a = 0;
168 return a;
169 }
170 ''', '''
171 (FunctionDefinition main ( return)
172 (LetPrim v0 (Constant IntConstant(0)))
173 (InvokeContinuation return v0))
174 '''),
175
176 const Result('''
177 main(a) {
178 return a;
179 }
180 ''', '''
181 (FunctionDefinition main (a return)
182 (InvokeContinuation return a))
183 '''),
184 ]),
185
186 const Group('Dynamic access', const [
187 const Result('''
188 main(a) {
189 return a.foo;
190 }
191 ''', '''
192 (FunctionDefinition main (a return)
193 (LetCont (k0 v0)
194 (InvokeContinuation return v0))
195 (InvokeMethod a foo k0))
196 '''),
197
198 const Result('''
199 main() {
200 var a = "";
201 return a.foo;
202 }
203 ''', '''
204 (FunctionDefinition main ( return)
205 (LetPrim v0 (Constant StringConstant("")))
206 (LetCont (k0 v1)
207 (InvokeContinuation return v1))
208 (InvokeMethod v0 foo k0))
209 '''),
210 ]),
211
212 const Group('Dynamic invocation', const [
213 const Result('''
214 main(a) {
215 return a.foo(0);
216 }
217 ''', '''
218 (FunctionDefinition main (a return)
219 (LetPrim v0 (Constant IntConstant(0)))
220 (LetCont (k0 v1)
221 (InvokeContinuation return v1))
222 (InvokeMethod a foo v0 k0))
223 '''),
224
225 const Result('''
226 main() {
227 var a = "";
228 return a.foo(0, 1);
229 }
230 ''', '''
231 (FunctionDefinition main ( return)
232 (LetPrim v0 (Constant StringConstant("")))
233 (LetPrim v1 (Constant IntConstant(0)))
234 (LetPrim v2 (Constant IntConstant(1)))
235 (LetCont (k0 v3)
236 (InvokeContinuation return v3))
237 (InvokeMethod v0 foo v1 v2 k0))
238 '''),
239 ]),
240
241 const Group('Binary expressions', const [
242 const Result('''
243 main() {
244 return 0 + "";
245 }
246 ''', '''
247 (FunctionDefinition main ( return)
248 (LetPrim v0 (Constant IntConstant(0)))
249 (LetPrim v1 (Constant StringConstant("")))
250 (LetCont (k0 v2)
251 (InvokeContinuation return v2))
252 (InvokeMethod v0 + v1 k0))
253 '''),
254
255 const Result('''
256 main() {
257 return 0 - "";
258 }
259 ''', '''
260 (FunctionDefinition main ( return)
261 (LetPrim v0 (Constant IntConstant(0)))
262 (LetPrim v1 (Constant StringConstant("")))
263 (LetCont (k0 v2)
264 (InvokeContinuation return v2))
265 (InvokeMethod v0 - v1 k0))
266 '''),
267
268 const Result('''
269 main() {
270 return 0 * "";
271 }
272 ''', '''
273 (FunctionDefinition main ( return)
274 (LetPrim v0 (Constant IntConstant(0)))
275 (LetPrim v1 (Constant StringConstant("")))
276 (LetCont (k0 v2)
277 (InvokeContinuation return v2))
278 (InvokeMethod v0 * v1 k0))
279 '''),
280
281 const Result('''
282 main() {
283 return 0 / "";
284 }
285 ''', '''
286 (FunctionDefinition main ( return)
287 (LetPrim v0 (Constant IntConstant(0)))
288 (LetPrim v1 (Constant StringConstant("")))
289 (LetCont (k0 v2)
290 (InvokeContinuation return v2))
291 (InvokeMethod v0 / v1 k0))
292 '''),
293
294 const Result('''
295 main() {
296 return 0 ~/ "";
297 }
298 ''', '''
299 (FunctionDefinition main ( return)
300 (LetPrim v0 (Constant IntConstant(0)))
301 (LetPrim v1 (Constant StringConstant("")))
302 (LetCont (k0 v2)
303 (InvokeContinuation return v2))
304 (InvokeMethod v0 ~/ v1 k0))
305 '''),
306
307 const Result('''
308 main() {
309 return 0 < "";
310 }
311 ''', '''
312 (FunctionDefinition main ( return)
313 (LetPrim v0 (Constant IntConstant(0)))
314 (LetPrim v1 (Constant StringConstant("")))
315 (LetCont (k0 v2)
316 (InvokeContinuation return v2))
317 (InvokeMethod v0 < v1 k0))
318 '''),
319
320 const Result('''
321 main() {
322 return 0 <= "";
323 }
324 ''', '''
325 (FunctionDefinition main ( return)
326 (LetPrim v0 (Constant IntConstant(0)))
327 (LetPrim v1 (Constant StringConstant("")))
328 (LetCont (k0 v2)
329 (InvokeContinuation return v2))
330 (InvokeMethod v0 <= v1 k0))
331 '''),
332
333 const Result('''
334 main() {
335 return 0 > "";
336 }
337 ''', '''
338 (FunctionDefinition main ( return)
339 (LetPrim v0 (Constant IntConstant(0)))
340 (LetPrim v1 (Constant StringConstant("")))
341 (LetCont (k0 v2)
342 (InvokeContinuation return v2))
343 (InvokeMethod v0 > v1 k0))
344 '''),
345
346 const Result('''
347 main() {
348 return 0 >= "";
349 }
350 ''', '''
351 (FunctionDefinition main ( return)
352 (LetPrim v0 (Constant IntConstant(0)))
353 (LetPrim v1 (Constant StringConstant("")))
354 (LetCont (k0 v2)
355 (InvokeContinuation return v2))
356 (InvokeMethod v0 >= v1 k0))
357 '''),
358
359 const Result('''
360 main() {
361 return 0 << "";
362 }
363 ''', '''
364 (FunctionDefinition main ( return)
365 (LetPrim v0 (Constant IntConstant(0)))
366 (LetPrim v1 (Constant StringConstant("")))
367 (LetCont (k0 v2)
368 (InvokeContinuation return v2))
369 (InvokeMethod v0 << v1 k0))
370 '''),
371
372 const Result('''
373 main() {
374 return 0 >> "";
375 }
376 ''', '''
377 (FunctionDefinition main ( return)
378 (LetPrim v0 (Constant IntConstant(0)))
379 (LetPrim v1 (Constant StringConstant("")))
380 (LetCont (k0 v2)
381 (InvokeContinuation return v2))
382 (InvokeMethod v0 >> v1 k0))
383 '''),
384
385 const Result('''
386 main() {
387 return 0 & "";
388 }
389 ''', '''
390 (FunctionDefinition main ( return)
391 (LetPrim v0 (Constant IntConstant(0)))
392 (LetPrim v1 (Constant StringConstant("")))
393 (LetCont (k0 v2)
394 (InvokeContinuation return v2))
395 (InvokeMethod v0 & v1 k0))
396 '''),
397
398 const Result('''
399 main() {
400 return 0 | "";
401 }
402 ''', '''
403 (FunctionDefinition main ( return)
404 (LetPrim v0 (Constant IntConstant(0)))
405 (LetPrim v1 (Constant StringConstant("")))
406 (LetCont (k0 v2)
407 (InvokeContinuation return v2))
408 (InvokeMethod v0 | v1 k0))
409 '''),
410
411 const Result('''
412 main() {
413 return 0 ^ "";
414 }
415 ''', '''
416 (FunctionDefinition main ( return)
417 (LetPrim v0 (Constant IntConstant(0)))
418 (LetPrim v1 (Constant StringConstant("")))
419 (LetCont (k0 v2)
420 (InvokeContinuation return v2))
421 (InvokeMethod v0 ^ v1 k0))
422 '''),
423
424 const Result('''
425 main() {
426 return 0 == "";
427 }
428 ''', '''
429 (FunctionDefinition main ( return)
430 (LetPrim v0 (Constant IntConstant(0)))
431 (LetPrim v1 (Constant StringConstant("")))
432 (LetCont (k0 v2)
433 (InvokeContinuation return v2))
434 (InvokeMethod v0 == v1 k0))
435 '''),
436
437 const Result('''
438 main() {
439 return 0 != "";
440 }
441 ''', '''
442 (FunctionDefinition main ( return)
443 (LetPrim v0 (Constant IntConstant(0)))
444 (LetPrim v1 (Constant StringConstant("")))
445 (LetCont (k0 v2)
446 (LetCont (k1 v3)
447 (InvokeContinuation return v3))
448 (LetCont (k2)
449 (LetPrim v4 (Constant BoolConstant(false)))
450 (InvokeContinuation k1 v4))
451 (LetCont (k3)
452 (LetPrim v5 (Constant BoolConstant(true)))
453 (InvokeContinuation k1 v5))
454 (Branch (IsTrue v2) k2 k3))
455 (InvokeMethod v0 == v1 k0))
456 '''),
457
458 const Result('''
459 main() {
460 return 0 && "";
461 }
462 ''', '''
463 (FunctionDefinition main ( return)
464 (LetPrim v0 (Constant IntConstant(0)))
465 (LetCont (k0 v1)
466 (InvokeContinuation return v1))
467 (LetCont (k1)
468 (LetPrim v2 (Constant StringConstant("")))
469 (LetCont (k2)
470 (LetPrim v3 (Constant BoolConstant(true)))
471 (InvokeContinuation k0 v3))
472 (LetCont (k3)
473 (LetPrim v4 (Constant BoolConstant(false)))
474 (InvokeContinuation k0 v4))
475 (Branch (IsTrue v2) k2 k3))
476 (LetCont (k4)
477 (LetPrim v5 (Constant BoolConstant(false)))
478 (InvokeContinuation k0 v5))
479 (Branch (IsTrue v0) k1 k4))
480 '''),
481
482 const Result('''
483 main() {
484 return 0 || "";
485 }
486 ''', '''
487 (FunctionDefinition main ( return)
488 (LetPrim v0 (Constant IntConstant(0)))
489 (LetCont (k0 v1)
490 (InvokeContinuation return v1))
491 (LetCont (k1)
492 (LetPrim v2 (Constant BoolConstant(true)))
493 (InvokeContinuation k0 v2))
494 (LetCont (k2)
495 (LetPrim v3 (Constant StringConstant("")))
496 (LetCont (k3)
497 (LetPrim v4 (Constant BoolConstant(true)))
498 (InvokeContinuation k0 v4))
499 (LetCont (k4)
500 (LetPrim v5 (Constant BoolConstant(false)))
501 (InvokeContinuation k0 v5))
502 (Branch (IsTrue v3) k3 k4))
503 (Branch (IsTrue v0) k1 k2))
504 '''),
505
506 const Result('''
507 main() {
508 return 0 + "" * 2;
509 }
510 ''', '''
511 (FunctionDefinition main ( return)
512 (LetPrim v0 (Constant IntConstant(0)))
513 (LetPrim v1 (Constant StringConstant("")))
514 (LetPrim v2 (Constant IntConstant(2)))
515 (LetCont (k0 v3)
516 (LetCont (k1 v4)
517 (InvokeContinuation return v4))
518 (InvokeMethod v0 + v3 k1))
519 (InvokeMethod v1 * v2 k0))
520 '''),
521
522 const Result('''
523 main() {
524 return 0 * "" + 2;
525 }
526 ''', '''
527 (FunctionDefinition main ( return)
528 (LetPrim v0 (Constant IntConstant(0)))
529 (LetPrim v1 (Constant StringConstant("")))
530 (LetCont (k0 v2)
531 (LetPrim v3 (Constant IntConstant(2)))
532 (LetCont (k1 v4)
533 (InvokeContinuation return v4))
534 (InvokeMethod v2 + v3 k1))
535 (InvokeMethod v0 * v1 k0))
536 '''),
537 ]),
538
539 const Group('If statement', const [
540 const Result('''
541 main(a) {
542 if (a) {
543 print(0);
544 }
545 }
546 ''', '''
547 (FunctionDefinition main (a return)
548 (LetCont (k0)
549 (LetPrim v0 (Constant NullConstant))
550 (InvokeContinuation return v0))
551 (LetCont (k1)
552 (LetPrim v1 (Constant IntConstant(0)))
553 (LetCont (k2 v2)
554 (InvokeContinuation k0 ))
555 (InvokeStatic print v1 k2))
556 (LetCont (k3)
557 (InvokeContinuation k0 ))
558 (Branch (IsTrue a) k1 k3))
559 '''),
560
561 const Result('''
562 main(a) {
563 if (a) {
564 print(0);
565 } else {
566 print(1);
567 }
568 }
569 ''', '''
570 (FunctionDefinition main (a return)
571 (LetCont (k0)
572 (LetPrim v0 (Constant NullConstant))
573 (InvokeContinuation return v0))
574 (LetCont (k1)
575 (LetPrim v1 (Constant IntConstant(0)))
576 (LetCont (k2 v2)
577 (InvokeContinuation k0 ))
578 (InvokeStatic print v1 k2))
579 (LetCont (k3)
580 (LetPrim v3 (Constant IntConstant(1)))
581 (LetCont (k4 v4)
582 (InvokeContinuation k0 ))
583 (InvokeStatic print v3 k4))
584 (Branch (IsTrue a) k1 k3))
585 '''),
586
587 const Result('''
588 main(a) {
589 if (a) {
590 print(0);
591 } else {
592 print(1);
593 print(2);
594 }
595 }
596 ''', '''
597 (FunctionDefinition main (a return)
598 (LetCont (k0)
599 (LetPrim v0 (Constant NullConstant))
600 (InvokeContinuation return v0))
601 (LetCont (k1)
602 (LetPrim v1 (Constant IntConstant(0)))
603 (LetCont (k2 v2)
604 (InvokeContinuation k0 ))
605 (InvokeStatic print v1 k2))
606 (LetCont (k3)
607 (LetPrim v3 (Constant IntConstant(1)))
608 (LetCont (k4 v4)
609 (LetPrim v5 (Constant IntConstant(2)))
610 (LetCont (k5 v6)
611 (InvokeContinuation k0 ))
612 (InvokeStatic print v5 k5))
613 (InvokeStatic print v3 k4))
614 (Branch (IsTrue a) k1 k3))
615 '''),
616 ]),
617
618 const Group('Conditional expression', const [
619 const Result('''
620 main(a) {
621 return a ? print(0) : print(1);
622 }
623 ''', '''
624 (FunctionDefinition main (a return)
625 (LetCont (k0 v0)
626 (InvokeContinuation return v0))
627 (LetCont (k1)
628 (LetPrim v1 (Constant IntConstant(0)))
629 (LetCont (k2 v2)
630 (InvokeContinuation k0 v2))
631 (InvokeStatic print v1 k2))
632 (LetCont (k3)
633 (LetPrim v3 (Constant IntConstant(1)))
634 (LetCont (k4 v4)
635 (InvokeContinuation k0 v4))
636 (InvokeStatic print v3 k4))
637 (Branch (IsTrue a) k1 k3))
638 '''),
639 ]),
640 ];
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698