blob: 688894c6ea461195c23bf06dbbcf92a411e6bd62 [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.
// @dart = 2.7
import "package:expect/expect.dart";
oneOptionalArgument(a, {b}) {
Expect.equals(1, a);
Expect.equals(2, b);
}
twoOptionalArguments({a, b}) {
Expect.equals(1, a);
Expect.equals(2, b);
}
main() {
twoOptionalArguments(a: 1, b: 2);
twoOptionalArguments(b: 2, a: 1);
oneOptionalArgument(1, b: 2);
new A.twoOptionalArguments(a: 1, b: 2);
new A.twoOptionalArguments(b: 2, a: 1);
new A.oneOptionalArgument(1, b: 2);
new B.one();
new B.two();
new B.three();
new B().B_one();
new B().B_two();
new B().B_three();
}
class A {
A.oneOptionalArgument(a, {b}) {
Expect.equals(1, a);
Expect.equals(2, b);
}
A.twoOptionalArguments({a, b}) {
Expect.equals(1, a);
Expect.equals(2, b);
}
A();
// A named constructor now conflicts with a method of the same name.
oneOptArg(a, {b}) {
Expect.equals(1, a);
Expect.equals(2, b);
}
twoOptArgs({a, b}) {
Expect.equals(1, a);
Expect.equals(2, b);
}
}
class B extends A {
B.one() : super.twoOptionalArguments(a: 1, b: 2);
B.two() : super.twoOptionalArguments(b: 2, a: 1);
B.three() : super.oneOptionalArgument(1, b: 2);
B();
B_one() {
super.twoOptArgs(a: 1, b: 2);
}
B_two() {
super.twoOptArgs(b: 2, a: 1);
}
B_three() {
super.oneOptArg(1, b: 2);
}
}