blob: 95ac2dd2d198e50ee1597ce078ffb1202257c3cc [file] [log] [blame]
// Copyright (c) 2016, 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.md file.
import 'package:expect/expect.dart';
String log;
init() {
log = '';
}
logit(msg) {
return log = '$log$msg';
}
class Base {
var b;
Base.arg0() : b = logit('b') {
logit('B');
}
Base.arg1(a) : b = logit('b') {
logit('B');
}
Base.arg2(a, b) : b = logit('b') {
logit('B');
}
}
class Sub extends Base {
var x;
var s;
Sub.arg0()
: x = logit('x'),
super.arg0(),
s = logit('s') {
logit('S');
}
Sub.arg1(a)
: x = logit('x'),
super.arg1(logit('1')),
s = logit('s') {
logit('S');
}
Sub.arg2(a, b)
: x = logit('x'),
super.arg2(logit('1'), logit('2')),
s = logit('s') {
logit('S');
}
}
test(fun(), String result) {
init();
fun();
Expect.isTrue(log == result);
}
main() {
test(() => new Sub.arg0(), 'xsbBS');
test(() => new Sub.arg1(1), 'x1sbBS');
test(() => new Sub.arg2(1, 2), 'x12sbBS');
}