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 program for constructors and initializers. | |
5 | |
6 // Expect the initializer expressions E(i) to be evaluated | |
7 // in the order 1, 2, 3, ... | |
8 // This test has no inheritance but many fields to flush out issues with | |
9 // ordering of fields. | |
10 | |
11 String trace = ""; | |
12 | |
13 int E(int i) { | |
14 trace = trace.concat("$i-"); | |
15 return i; | |
16 } | |
17 | |
18 class A { | |
19 var j; // Names are in reverse order to detect sorting by name... | |
20 var i = 0; // Initialized odd/even to detect these inits affecting order. | |
21 var h; | |
22 var g = 0; | |
23 var f; | |
24 var e = 0; | |
25 var d; | |
26 var c = 0; | |
27 var b; | |
28 var a = 0; | |
29 | |
30 A() | |
31 : a = E(1), // Initializations in different order to decls. Ascending... | |
32 b = E(2), | |
33 c = E(3), | |
34 | |
35 f = E(4), // Descending to be perverse... | |
36 e = E(5), | |
37 d = E(6), | |
38 | |
39 g = E(7), // Ascending again. | |
40 h = E(8), | |
41 i = E(9), | |
42 j = E(10) { | |
43 | |
44 Expect.equals(1, a); | |
45 Expect.equals(2, b); | |
46 Expect.equals(3, c); | |
47 | |
48 Expect.equals(4, f); | |
49 Expect.equals(5, e); | |
50 Expect.equals(6, d); | |
51 | |
52 Expect.equals(7, g); | |
53 Expect.equals(8, h); | |
54 Expect.equals(9, i); | |
55 Expect.equals(10, j); | |
56 } | |
57 } | |
58 | |
59 main() { | |
60 var x = new A(); | |
61 Expect.equals('1-2-3-4-5-6-7-8-9-10-', trace); | |
62 } | |
OLD | NEW |