blob: 196c06141f676cd865a80f295d35abeda3feb1b2 [file] [log] [blame]
// Copyright (c) 2017, 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.
// This test verifies that super calls get reordered properly. It exercises the
// case where the arguments to super have a type other than `dynamic`.
String events = '';
int f(x) {
events += 'f($x)\n';
return 0;
}
String g(x) {
events += 'g($x)\n';
return 'foo';
}
class B {
num x;
String y;
B(this.x, this.y) {
events += 'super($x, $y)\n';
}
}
class C extends B {
final z;
C()
: super(f(1), g(2)),
z = f(3);
}
main() {
new C();
if (events != 'f(1)\ng(2)\nf(3)\nsuper(0, foo)\n') {
throw 'Unexpected sequence of events: $events';
}
}