OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 // Dart test program for constructors and initializers. | 4 // Dart test program for constructors and initializers. |
5 | 5 |
6 import "package:expect/expect.dart"; | |
7 | |
8 // Expect the initializer expressions E(i) to be evaluated | 6 // Expect the initializer expressions E(i) to be evaluated |
9 // in the order 1, 2, 3, ... | 7 // in the order 1, 2, 3, ... |
10 // Each expression must be evaluated exactly once. | 8 // Each expression must be evaluated exactly once. |
11 | 9 |
12 String trace = ""; | 10 String trace = ""; |
13 | 11 |
14 int E(int i) { | 12 int E(int i) { |
15 trace = trace.concat("$i-"); | 13 trace = trace.concat("$i-"); |
16 return i; | 14 return i; |
17 } | 15 } |
(...skipping 10 matching lines...) Expand all Loading... |
28 B(x) : b1 = E(1) /* Implicit super call to A's initializers happens here. */ { | 26 B(x) : b1 = E(1) /* Implicit super call to A's initializers happens here. */ { |
29 // Implicit super call to A's body happens here. | 27 // Implicit super call to A's body happens here. |
30 E(4); | 28 E(4); |
31 } | 29 } |
32 } | 30 } |
33 | 31 |
34 main() { | 32 main() { |
35 var b = new B(0); | 33 var b = new B(0); |
36 Expect.equals("1-2-3-4-", trace); | 34 Expect.equals("1-2-3-4-", trace); |
37 } | 35 } |
OLD | NEW |