| 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 |