OLD | NEW |
| (Empty) |
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 | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 // Dart test for testing order of constructor invocation. | |
5 | |
6 var trace = ""; | |
7 | |
8 int rec(int i) { | |
9 trace = trace.concat("$i "); | |
10 return i; | |
11 } | |
12 | |
13 class A { | |
14 A(int x) : x = rec(2) { | |
15 Expect.equals(1, x); // Parameter x | |
16 Expect.equals(2, this.x); | |
17 rec(5); | |
18 } | |
19 final int x; | |
20 } | |
21 | |
22 class B extends A { | |
23 B(this.a, int y, int z) | |
24 : super(rec(1)), z = rec(3), y = rec(4) { | |
25 rec(6); | |
26 } | |
27 int a; | |
28 int y; | |
29 int z; | |
30 } | |
31 | |
32 main() { | |
33 var test = new B(rec(0), 0, 0); | |
34 Expect.equals(0, test.a); | |
35 Expect.equals(2, test.x); | |
36 Expect.equals(4, test.y); | |
37 Expect.equals(3, test.z); | |
38 Expect.equals("0 1 2 3 4 5 6 ", trace); | |
39 } | |
40 | |
OLD | NEW |