mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 15:09:04 +00:00
ed571882d2
Change-Id: I2f638cbf6b0fc6e91b3666143a34eb12a66c6fea Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141780 Auto-Submit: Bob Nystrom <rnystrom@google.com> Reviewed-by: Leaf Petersen <leafp@google.com> Commit-Queue: Bob Nystrom <rnystrom@google.com>
62 lines
1.4 KiB
Dart
62 lines
1.4 KiB
Dart
// 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);
|
|
}
|