| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import "package:expect/expect.dart"; |
| |
| int i = 0; |
| |
| // Tests super calls and constructors. |
| main() { |
| Sub sub = new Sub(1, 2); |
| Expect.equals(1, sub.x); |
| Expect.equals(2, sub.y); |
| Expect.equals(3, sub.z); |
| Expect.equals(1, sub.v); |
| Expect.equals(2, sub.w); |
| Expect.equals(3, sub.u); |
| |
| sub = new Sub.stat(); |
| Expect.equals(2, sub.x); |
| Expect.equals(3, sub.y); |
| Expect.equals(0, sub.v); |
| Expect.equals(1, sub.w); |
| Expect.equals(4, sub.z); |
| Expect.equals(5, sub.u); |
| } |
| |
| class Sup { |
| var x, y, z; |
| |
| Sup(a, b) |
| : this.x = a, |
| this.y = b { |
| z = a + b; |
| } |
| |
| Sup.stat() |
| : this.x = i++, |
| this.y = i++ { |
| z = i++; |
| } |
| } |
| |
| class Sub extends Sup { |
| var u, v, w; |
| |
| Sub(a, b) |
| : this.v = a, |
| this.w = b, |
| super(a, b) { |
| u = a + b; |
| } |
| |
| Sub.stat() |
| : this.v = i++, |
| this.w = i++, |
| super.stat() { |
| u = i++; |
| } |
| } |