OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | |
2 // for details. All rights reserved. Use of this source code is governed by a | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 // VMOptions=--enable_type_checks | |
5 // | |
6 // Dart test program for testing named parameters in type tests. | |
7 | |
8 class NamedParametersTypeTest { | |
9 static int testMain() { | |
10 int result = 0; | |
11 Function anyFunction; | |
12 void acceptFunNumOptBool(void funNumOptBool(num num, [bool b])) { }; | |
13 void funNum(num num) { }; | |
14 void funNumBool(num num, bool b) { }; | |
15 void funNumOptBool(num num, [bool b = true]) { }; | |
16 void funNumOptBoolX(num num, [bool x = true]) { }; | |
17 anyFunction = funNum; // No error. | |
18 anyFunction = funNumBool; // No error. | |
19 anyFunction = funNumOptBool; // No error. | |
20 anyFunction = funNumOptBoolX; // No error. | |
21 acceptFunNumOptBool(funNumOptBool); // No error. | |
22 try { | |
23 acceptFunNumOptBool(funNum); // No static type warning. | |
24 } catch (TypeError error) { | |
25 result += 1; | |
26 Expect.stringEquals("(num, [b: bool]) => void", error.dstType); | |
27 Expect.stringEquals("(num) => void", error.srcType); | |
28 } | |
29 try { | |
30 acceptFunNumOptBool(funNumBool); /// static type warning | |
31 } catch (TypeError error) { | |
32 result += 10; | |
33 Expect.stringEquals("(num, [b: bool]) => void", error.dstType); | |
34 Expect.stringEquals("(num, bool) => void", error.srcType); | |
35 } | |
36 try { | |
37 acceptFunNumOptBool(funNumOptBoolX); /// static type warning | |
38 } catch (TypeError error) { | |
39 result += 100; | |
40 Expect.stringEquals("(num, [b: bool]) => void", error.dstType); | |
41 Expect.stringEquals("(num, [x: bool]) => void", error.srcType); | |
42 } | |
43 return result; | |
44 } | |
45 } | |
46 | |
47 main() { | |
48 Expect.equals(111, NamedParametersTypeTest.testMain()); | |
49 } | |
OLD | NEW |