// Copyright (c) 2011, 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. // Dart test program for constructors and initializers. class A extends B { A(x, y) : super(y), a = x { } var a; } class B { var b; B(x) : b = x { } B.namedB(var x) : b = x {} } // Test the order of initialization: first the instance variable then // the super constructor. class Alpha { Alpha(v) { this.foo(v); } } class Beta extends Alpha { Beta(v) : super(v), b = 1 {} foo(v) { // Check that 'b' was initialized. Expect.equals(1, b); b = v; } var b; } class ConstructorTest { static testMain() { var o = new A(10, 2); Expect.equals(10, o.a); Expect.equals(2, o.b); var o1 = new B.namedB(10); Expect.equals(10, o1.b); Expect.equals(22, o.a + o.b + o1.b); var beta = new Beta(3); Expect.equals(3, beta.b); } } main() { ConstructorTest.testMain(); }