// 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. import "package:expect/expect.dart"; // Expect the initializer expressions E(i) to be evaluated // in the order 1, 2, 3, ... // This test has no inheritance but many fields to flush out issues with // ordering of fields. String trace = ""; int E(int i) { trace += "$i-"; return i; } class A { var j; // Names are in reverse order to detect sorting by name... var i = 0; // Initialized odd/even to detect these inits affecting order. var h; var g = 0; var f; var e = 0; var d; var c = 0; var b; var a = 0; A() : a = E(1), // Initializations in different order to decls. Ascending... b = E(2), c = E(3), f = E(4), // Descending to be perverse... e = E(5), d = E(6), g = E(7), // Ascending again. h = E(8), i = E(9), j = E(10) { Expect.equals(1, a); Expect.equals(2, b); Expect.equals(3, c); Expect.equals(4, f); Expect.equals(5, e); Expect.equals(6, d); Expect.equals(7, g); Expect.equals(8, h); Expect.equals(9, i); Expect.equals(10, j); } } main() { var x = new A(); Expect.equals('1-2-3-4-5-6-7-8-9-10-', trace); }