blob: be74835a483758022389abf5afb0b488f0de68d6 [file] [log] [blame]
// Copyright (c) 2012, 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.
main() {
new Param.test1(false);
new Param.test1(true, 42);
new Param.test2(false);
new Param.test2(true, 42);
new Param.test3(false);
new Param.test3(true, 42);
new Param.test4();
new Param.test5();
new Param.test6(false);
new Param.test6(true, 42);
new Param.test7();
new Param.test8();
}
class Super {
var superField;
var otherSuperField;
Super();
Super.withParameters(passed, op, value) {
Expect.equals(passed, op);
Expect.equals(passed ? 42 : 0, value);
}
Super.withOptional(passed, [int a]) : superField = ?a {
Expect.equals(passed, ?a);
Expect.equals(passed, superField);
}
Super.withUpdate(passed, [int a = 0])
: superField = ?a, otherSuperField = a++ {
Expect.equals(passed, ?a);
Expect.equals(passed, superField);
Expect.equals(passed ? 43 : 1, a);
}
}
class Param extends Super {
var field;
var otherField;
Param.test1(a_check, [int a]) {
Expect.equals(a_check, ?a);
}
Param.test2(passed, [int a]) : field = ?a {
Expect.equals(passed, ?a);
Expect.equals(passed, field);
}
Param.test3(passed, [int a = 0]) : super.withParameters(passed, ?a, a) {
Expect.equals(passed, ?a);
}
Param.test4() : super.withOptional(true, 42);
Param.test5() : super.withOptional(false);
Param.test6(passed, [int a = 0]) : field = ?a, otherField = a++ {
Expect.equals(passed, ?a);
Expect.equals(passed, field);
Expect.equals(passed ? 43 : 1, a);
}
Param.test7() : super.withUpdate(true, 42);
Param.test8() : super.withUpdate(false);
}