OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
4 // Dart test program for testing bad named parameters. | 4 // Dart test program for testing bad named parameters. |
5 | 5 |
6 import "package:expect/expect.dart"; | 6 import "package:expect/expect.dart"; |
7 | 7 |
8 | 8 |
9 class BadNamedParametersTest { | 9 class BadNamedParametersTest { |
10 | 10 |
11 int f42(int a, {int b: 20, int c: 30}) { | 11 int f42(int a, {int b: 20, int c: 30}) { |
12 return 100*(100*a + b) + c; | 12 return 100*(100*a + b) + c; |
13 } | 13 } |
14 | 14 |
15 int f52(int a, {int b: 20, int c, int d: 40}) { | 15 int f52(int a, {int b: 20, int c, int d: 40}) { |
16 return 100*(100*(100*a + b) + (c == null ? 0 : c)) + d; | 16 return 100*(100*(100*a + b) + (c == null ? 0 : c)) + d; |
17 } | 17 } |
18 | 18 |
19 static testMain() { | 19 static testMain() { |
20 BadNamedParametersTest np = new BadNamedParametersTest(); | 20 BadNamedParametersTest np = new BadNamedParametersTest(); |
21 | 21 |
22 // Verify that NoSuchMethod is called after an error is detected. | 22 // Verify that NoSuchMethod is called after an error is detected. |
23 bool caught; | 23 bool caught; |
24 try { | 24 try { |
25 caught = false; | 25 caught = false; |
26 // Parameter b passed twice. | 26 // Parameter b passed twice. |
27 np.f42(10, 25, b:25); /// 01: static type warning | 27 np.f42(10, 25, b:25); //# 01: static type warning |
28 } on NoSuchMethodError catch (e) { | 28 } on NoSuchMethodError catch (e) { |
29 caught = true; | 29 caught = true; |
30 } | 30 } |
31 Expect.equals(true, caught); /// 01: continued | 31 Expect.equals(true, caught); //# 01: continued |
32 try { | 32 try { |
33 caught = false; | 33 caught = false; |
34 // Parameter x does not exist. | 34 // Parameter x does not exist. |
35 np.f42(10, 25, x:99); /// 02: static type warning | 35 np.f42(10, 25, x:99); //# 02: static type warning |
36 } on NoSuchMethodError catch (e) { | 36 } on NoSuchMethodError catch (e) { |
37 caught = true; | 37 caught = true; |
38 } | 38 } |
39 Expect.equals(true, caught); /// 02: continued | 39 Expect.equals(true, caught); //# 02: continued |
40 try { | 40 try { |
41 caught = false; | 41 caught = false; |
42 // Parameter b1 does not exist. | 42 // Parameter b1 does not exist. |
43 np.f52(10, b:25, b1:99, c:35); /// 03: static type warning | 43 np.f52(10, b:25, b1:99, c:35); //# 03: static type warning |
44 } on NoSuchMethodError catch (e) { | 44 } on NoSuchMethodError catch (e) { |
45 caught = true; | 45 caught = true; |
46 } | 46 } |
47 Expect.equals(true, caught); /// 03: continued | 47 Expect.equals(true, caught); //# 03: continued |
48 try { | 48 try { |
49 caught = false; | 49 caught = false; |
50 // Too many parameters. | 50 // Too many parameters. |
51 np.f42(10, 20, 30, 40); /// 04: static type warning | 51 np.f42(10, 20, 30, 40); //# 04: static type warning |
52 } on NoSuchMethodError catch (e) { | 52 } on NoSuchMethodError catch (e) { |
53 caught = true; | 53 caught = true; |
54 } | 54 } |
55 Expect.equals(true, caught); /// 04: continued | 55 Expect.equals(true, caught); //# 04: continued |
56 try { | 56 try { |
57 caught = false; | 57 caught = false; |
58 // Too few parameters. | 58 // Too few parameters. |
59 np.f42(b:25); /// 05: static type warning | 59 np.f42(b:25); //# 05: static type warning |
60 } on NoSuchMethodError catch (e) { | 60 } on NoSuchMethodError catch (e) { |
61 caught = true; | 61 caught = true; |
62 } | 62 } |
63 Expect.equals(true, caught); /// 05: continued | 63 Expect.equals(true, caught); //# 05: continued |
64 } | 64 } |
65 } | 65 } |
66 | 66 |
67 main() { | 67 main() { |
68 BadNamedParametersTest.testMain(); | 68 BadNamedParametersTest.testMain(); |
69 } | 69 } |
OLD | NEW |