| Index: tests/language/src/ConstructorNamedArgumentsTest.dart
|
| diff --git a/tests/language/src/ConstructorNamedArgumentsTest.dart b/tests/language/src/ConstructorNamedArgumentsTest.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b0ea74e8bb5d36194bed3c4285b9e3c97a80fc85
|
| --- /dev/null
|
| +++ b/tests/language/src/ConstructorNamedArgumentsTest.dart
|
| @@ -0,0 +1,52 @@
|
| +// 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 test program for default constructors.
|
| +
|
| +String message;
|
| +
|
| +foo() {
|
| + message += 'foo';
|
| + return 1;
|
| +}
|
| +
|
| +bar() {
|
| + message += 'bar';
|
| + return 2;
|
| +}
|
| +
|
| +class X {
|
| + var i;
|
| + var j;
|
| + X([a = 'defa', b = 'defb']) : this.i = a, this.j = b;
|
| + X.foo() : this(b: 1, a: 2);
|
| + X.bar() : this(
|
| + 1, /// 01: compile-time error
|
| + a: 2);
|
| + X.baz() : this(a: 1, b: 2);
|
| + X.qux() : this(1, 2);
|
| + X.hest() : this();
|
| + X.fisk() : this(b: bar(), a: foo());
|
| + X.naebdyr() : this(a: foo(), b: bar());
|
| +}
|
| +
|
| +test(x, a, b) {
|
| + Expect.equals(x.i, a);
|
| + Expect.equals(x.j, b);
|
| +}
|
| +
|
| +main() {
|
| + test(new X.foo(), 2, 1);
|
| + test(new X.bar(), 2, 'defb');
|
| + test(new X.baz(), 1, 2);
|
| + test(new X.qux(), 1, 2);
|
| + test(new X.hest(), 'defa', 'defb');
|
| +
|
| + message = '';
|
| + new X.fisk();
|
| + Expect.equals('barfoo', message);
|
| +
|
| + message = '';
|
| + new X.naebdyr();
|
| + Expect.equals('foobar', message);
|
| +}
|
|
|