blob: c857539ccdfbceb4069173b73cbb4fdaaa4d35b1 [file] [log] [blame]
/*
* 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.
*/
/**
* @assertion It is a compile-time error if k explicitly specifies a default
* value for an optional parameter.
* @description Checks that it is not an error if redirecting factory
* constructor has optional parameters with no defaults and that actual
* arguments are passed as expected.
* @author ilya
*/
import "../../../../Utils/expect.dart";
List expect = [];
test(x, y) {
Expect.listEquals(expect, [x, y]);
}
class F {
factory F(int x, [int y]) = C;
factory F.foo(int x, [int y]) = C.foo;
factory F.bar(int x, {int y}) = C.bar;
}
class C implements F {
C(int x, [int y = 0]) {
test(x, y);
}
C.foo(int x, [int y = 0]) {
test(x, y);
}
C.bar(int x, {int y = 0}) {
test(x, y);
}
}
main() {
expect = [1, 0];
new F(1);
expect = [1, 1];
new F(1, 1);
expect = [1, 0];
new F.foo(1);
expect = [1, 1];
new F.foo(1, 1);
expect = [1, 0];
new F.bar(1);
expect = [1, 1];
new F.bar(1, y: 1);
}