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

Side by Side Diff: tests/language/final_syntax_test.dart

Issue 10855174: Lazy implementation of final variables. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Remove lazy bailout initializers. Created 8 years, 3 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
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 main() { 5 main() {
kasperl 2012/09/05 08:54:54 Should we keep an unchanged copy of this around as
floitsch 2012/09/05 09:31:07 This file is a copy of const_syntax_test. So there
6 const f0 = 42; 6 final f0 = 42;
7 const f1; /// 01: compile-time error 7 final f1; /// 01: compile-time error
8 const int f2 = 87; 8 final int f2 = 87;
9 const int f3; /// 02: compile-time error 9 final int f3; /// 02: compile-time error
10 Expect.equals(42, f0); 10 Expect.equals(42, f0);
11 Expect.equals(87, f2); 11 Expect.equals(87, f2);
12 12
13 Expect.equals(42, F0); 13 Expect.equals(42, F0);
14 Expect.equals(null, F1); /// 03: compile-time error 14 Expect.equals(null, F1); /// 03: compile-time error
15 Expect.equals(87, F2); 15 Expect.equals(87, F2);
16 Expect.equals(null, F3); /// 04: compile-time error 16 Expect.equals(null, F3); /// 04: compile-time error
17 17
18 Expect.isTrue(P0 is Point); 18 Expect.isTrue(P0 is Point);
19 Expect.isTrue(P1 is int); /// 05: compile-time error 19 Expect.isTrue(P1 is int);
20 Expect.isTrue(P2 is Point); /// 06: compile-time error 20 Expect.isTrue(P2 is Point);
21 Expect.isTrue(P3 is int); /// 07: compile-time error 21 Expect.isTrue(P3 is int);
22 22
23 Expect.isTrue(A0 is int); 23 Expect.isTrue(A0 is int);
24 Expect.isTrue(A1 is int); 24 Expect.isTrue(A1 is int);
25 Expect.isTrue(A2 is int); /// 08: compile-time error 25 Expect.isTrue(A2 is int); /// 08: runtime error
26 Expect.isTrue(A3 is int); /// 08: continued 26 Expect.isTrue(A3 is int); /// 08: continued
27 27
28 Expect.isTrue(C0.X is C1); 28 Expect.isTrue(C0.X is C1);
29 Expect.isTrue(C0.X.x is C1); /// 09: compile-time error 29 Expect.isTrue(C0.X.x is C1); /// 09: compile-time error
30 30
31 Expect.equals("Hello 42", B2); 31 Expect.equals("Hello 42", B2);
32 Expect.equals("42Hello", B3); /// 10: compile-time error 32 Expect.equals("42Hello", B3); /// 10: runtime error
33 } 33 }
34 34
35 const F0 = 42; 35 final F0 = 42;
36 const F1; /// 03: continued 36 final F1; /// 03: continued
37 const int F2 = 87; 37 final int F2 = 87;
38 const int F3; /// 04: continued 38 final int F3; /// 04: continued
39 39
40 class Point { 40 class Point {
41 final x, y; 41 final x, y;
42 const Point(this.x, this.y); 42 final Point(this.x, this.y);
43 operator +(int other) => x; 43 operator +(int other) => x;
44 } 44 }
45 45
46 // Check that compile time expressions can include invocations of 46 // Check that compile time expressions can include invocations of
47 // user-defined const constructors. 47 // user-defined final finalructors.
kasperl 2012/09/05 08:25:24 Hehe. Word of the day: finalructors.
floitsch 2012/09/05 09:31:07 hehe. done.
48 const P0 = const Point(0, 0); 48 final P0 = const Point(0, 0);
49 const P1 = const Point(0, 0) + 1; /// 05: continued 49 final P1 = const Point(0, 0) + 1;
50 const P2 = new Point(0, 0); /// 06: continued 50 final P2 = new Point(0, 0);
51 const P3 = new Point(0, 0) + 1; /// 07: continued 51 final P3 = new Point(0, 0) + 1;
52 52
53 // Check that we cannot have cyclic references in compile time 53 // Check that we cannot have cyclic references in compile time
54 // expressions. 54 // expressions.
55 const A0 = 42; 55 final A0 = 42;
56 const A1 = A0 + 1; 56 final A1 = A0 + 1;
57 const A2 = A3 + 1; /// 08: continued 57 final A2 = A3 + 1; /// 08: continued
58 const A3 = A2 + 1; /// 08: continued 58 final A3 = A2 + 1; /// 08: continued
59 59
60 class C0 { 60 class C0 {
61 static const X = const C1(); 61 static final X = const C1();
62 } 62 }
63 63
64 class C1 { 64 class C1 {
65 const C1() 65 const C1()
66 : x = C0.X /// 09: continued 66 : x = C0.X /// 09: continued
67 ; 67 ;
68 final x = null; 68 final x = null;
69 } 69 }
70 70
71 // Check that sub-expressions of binary + are numeric. 71 // Check that sub-expressions of binary + are numeric.
72 const B0 = 42; 72 final B0 = 42;
73 const B1 = "Hello"; 73 final B1 = "Hello";
74 const B2 = "$B1 $B0"; 74 final B2 = "$B1 $B0";
75 const B3 = B0 + B1; /// 10: continued 75 final B3 = B0 + B1; /// 10: continued
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698