OLD | NEW |
1 // Copyright (c) 2011, 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 int i = 0; |
| 6 |
5 // Tests super calls and constructors. | 7 // Tests super calls and constructors. |
6 class SuperTest { | 8 main() { |
7 static testMain() { | 9 Sub sub = new Sub(1, 2); |
8 Sup.i = 0; | 10 Expect.equals(1, sub.x); |
9 Sub sub = new Sub(1, 2); | 11 Expect.equals(2, sub.y); |
10 Expect.equals(1, sub.x); | 12 Expect.equals(3, sub.z); |
11 Expect.equals(2, sub.y); | 13 Expect.equals(1, sub.v); |
12 Expect.equals(3, sub.z); | 14 Expect.equals(2, sub.w); |
13 Expect.equals(1, sub.v); | 15 Expect.equals(3, sub.u); |
14 Expect.equals(2, sub.w); | |
15 Expect.equals(3, sub.u); | |
16 | 16 |
17 sub = new Sub.stat(); | 17 sub = new Sub.stat(); |
18 Expect.equals(0, sub.x); | 18 Expect.equals(0, sub.x); |
19 Expect.equals(1, sub.y); | 19 Expect.equals(1, sub.y); |
20 Expect.equals(2, sub.v); | 20 Expect.equals(2, sub.v); |
21 Expect.equals(3, sub.w); | 21 Expect.equals(3, sub.w); |
22 Expect.equals(4, sub.z); | 22 Expect.equals(4, sub.z); |
23 Expect.equals(5, sub.u); | 23 Expect.equals(5, sub.u); |
24 } | |
25 } | 24 } |
26 | 25 |
27 class Sup { | 26 class Sup { |
28 static int i; | |
29 var x, y, z; | 27 var x, y, z; |
30 | 28 |
31 Sup(a, b) : this.x = a, this.y = b { | 29 Sup(a, b) : this.x = a, this.y = b { |
32 z = a + b; | 30 z = a + b; |
33 } | 31 } |
34 | 32 |
35 Sup.stat() : this.x = i++, this.y = i++ { | 33 Sup.stat() : this.x = i++, this.y = i++ { |
36 z = i++; | 34 z = i++; |
37 } | 35 } |
38 } | 36 } |
39 | 37 |
40 class Sub extends Sup { | 38 class Sub extends Sup { |
41 var u, v, w; | 39 var u, v, w; |
42 | 40 |
43 Sub(a, b) : super(a, b), this.v = a, this.w = b { | 41 Sub(a, b) : super(a, b), this.v = a, this.w = b { |
44 u = a + b; | 42 u = a + b; |
45 } | 43 } |
46 | 44 |
47 Sub.stat() : super.stat(), this.v = i++, this.w = i++ { | 45 Sub.stat() : super.stat(), this.v = i++, this.w = i++ { |
48 u = i++; | 46 u = i++; |
49 } | 47 } |
50 } | 48 } |
51 | |
52 main() { | |
53 SuperTest.testMain(); | |
54 } | |
OLD | NEW |