Chromium Code Reviews| Index: tests/language/positional_parameters_type_test.dart |
| =================================================================== |
| --- tests/language/positional_parameters_type_test.dart (revision 0) |
| +++ tests/language/positional_parameters_type_test.dart (revision 0) |
| @@ -0,0 +1,53 @@ |
| +// 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. |
| +// VMOptions=--enable_type_checks |
| +// |
| +// Dart test program for testing optional parameters in type tests. |
| + |
| +// TODO(regis): The expected signatures below will change once we run this test |
| +// with --reject_named_argument_as_positional which is still too early to do at |
| +// this time. |
| + |
| +class NamedParametersTypeTest { |
| + static int testMain() { |
| + int result = 0; |
| + Function anyFunction; |
| + void acceptFunNumOptBool(void funNumOptBool(num num, [bool b])) { }; |
|
hausner
2012/09/07 00:23:29
Should this be num n instead of num num. Same comm
regis
2012/09/07 01:11:33
Done here and in other tests.
|
| + void funNum(num num) { }; |
| + void funNumBool(num num, bool b) { }; |
| + void funNumOptBool(num num, [bool b = true]) { }; |
| + void funNumOptBoolX(num num, [bool x = true]) { }; |
| + anyFunction = funNum; // No error. |
| + anyFunction = funNumBool; // No error. |
| + anyFunction = funNumOptBool; // No error. |
| + anyFunction = funNumOptBoolX; // No error. |
| + acceptFunNumOptBool(funNumOptBool); // No error. |
| + try { |
| + acceptFunNumOptBool(funNum); // No static type warning. |
| + } on TypeError catch (error) { |
| + result += 1; |
| + Expect.stringEquals("(num, [b: bool]) => void", error.dstType); |
| + Expect.stringEquals("(num) => void", error.srcType); |
| + } |
| + try { |
| + acceptFunNumOptBool(funNumBool); /// static type warning |
| + } on TypeError catch (error) { |
| + result += 10; |
| + Expect.stringEquals("(num, [b: bool]) => void", error.dstType); |
| + Expect.stringEquals("(num, bool) => void", error.srcType); |
| + } |
| + try { |
| + acceptFunNumOptBool(funNumOptBoolX); /// static type warning |
| + } on TypeError catch (error) { |
| + result += 100; |
| + Expect.stringEquals("(num, [b: bool]) => void", error.dstType); |
| + Expect.stringEquals("(num, [x: bool]) => void", error.srcType); |
| + } |
| + return result; |
| + } |
| +} |
| + |
| +main() { |
| + Expect.equals(111, NamedParametersTypeTest.testMain()); |
| +} |