OLD | NEW |
---|---|
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 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 | 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 // | 4 // |
5 // Test named arguments work as expected regardless of whether the function or | 5 // Test named arguments work as expected regardless of whether the function or |
6 // method is called via function call syntax or method call syntax. | 6 // method is called via function call syntax or method call syntax. |
7 // VMOptions=--optimization-counter-threshold=10 --no-background-compilation | 7 // VMOptions=--optimization-counter-threshold=10 --no-background-compilation |
8 | 8 |
9 import "package:expect/expect.dart"; | 9 import "package:expect/expect.dart"; |
10 | 10 |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
91 a.foo(''); | 91 a.foo(''); |
92 a.foo('a', 111); | 92 a.foo('a', 111); |
93 a.foo('ab', 111, 222); | 93 a.foo('ab', 111, 222); |
94 a.foo2('a', a: 111); | 94 a.foo2('a', a: 111); |
95 a.foo2('b', b: 222); | 95 a.foo2('b', b: 222); |
96 a.foo2('ab', a: 111, b: 222); | 96 a.foo2('ab', a: 111, b: 222); |
97 a.foo2('ab', b: 222, a: 111); | 97 a.foo2('ab', b: 222, a: 111); |
98 | 98 |
99 Expect.equals(7, a.calls); | 99 Expect.equals(7, a.calls); |
100 | 100 |
101 checkException(() => a.foo()); // Too few arguments. | 101 checkException(() => a.foo()); // Too few arguments. |
102 checkException(() => a.foo('abc', 1, 2, 3)); // Too many arguments. | 102 checkException(() => a.foo('abc', 1, 2, 3)); // Too many arguments. |
103 checkException(() => a.foo2('c', c: 1)); // Bad name. | 103 checkException(() => a.foo2('c', c: 1)); // Bad name. |
104 checkException(() => a.foo2('c', a:111, c: 1)); // Bad name. | 104 checkException(() => a.foo2('c', a:111, c: 1)); // Bad name. |
sra1
2017/03/21 03:28:14
fix
| |
105 | 105 |
106 Expect.equals(7, a.calls); | 106 Expect.equals(7, a.calls); |
107 } | 107 } |
108 | 108 |
109 static testFunctionCallSyntax(a) { | 109 static testFunctionCallSyntax(a) { |
110 var f = a.foo; | 110 var f = a.foo; |
111 var f2 = a.foo2; | 111 var f2 = a.foo2; |
112 f(''); | 112 f(''); |
113 f('a', 111); | 113 f('a', 111); |
114 f('ab', 111, 222); | 114 f('ab', 111, 222); |
115 f2('a', a: 111); | 115 f2('a', a: 111); |
116 f2('b', b: 222); | 116 f2('b', b: 222); |
117 f2('ab', a: 111, b: 222); | 117 f2('ab', a: 111, b: 222); |
118 f2('ab', b: 222, a: 111); | 118 f2('ab', b: 222, a: 111); |
119 | 119 |
120 Expect.equals(7, a.calls); | 120 Expect.equals(7, a.calls); |
121 | 121 |
122 checkException(() => f()); // Too few arguments. | 122 checkException(() => f()); // Too few arguments. |
123 checkException(() => f('abc', 1, 2, 3)); // Too many arguments. | 123 checkException(() => f('abc', 1, 2, 3)); // Too many arguments. |
124 checkException(() => f2('c', c: 1)); // Bad name. | 124 checkException(() => f2('c', c: 1)); // Bad name. |
125 checkException(() => f2('c', a: 111, c: 1)); // Bad name. | 125 checkException(() => f2('c', a: 111, c: 1)); // Bad name. |
126 | 126 |
127 Expect.equals(7, a.calls); | 127 Expect.equals(7, a.calls); |
128 } | 128 } |
129 | 129 |
130 static testMain() { | 130 static testMain() { |
131 // 'Plain' calls where the method/field syntax matches the object. | 131 // 'Plain' calls where the method/field syntax matches the object. |
132 testMethodCallSyntax(new HasMethod()); | 132 testMethodCallSyntax(new HasMethod()); |
133 testFunctionCallSyntax(new HasField()); | 133 testFunctionCallSyntax(new HasField()); |
134 | 134 |
135 // 'Conversion' calls where method/field call syntax does not match the | 135 // 'Conversion' calls where method/field call syntax does not match the |
136 // object. | 136 // object. |
137 testMethodCallSyntax(new HasField()); | 137 testMethodCallSyntax(new HasField()); |
138 testFunctionCallSyntax(new HasMethod()); | 138 testFunctionCallSyntax(new HasMethod()); |
139 } | 139 } |
140 } | 140 } |
141 | 141 |
142 main() { | 142 main() { |
143 for (var i = 0; i < 20; i++) { | 143 for (var i = 0; i < 20; i++) { |
144 NamedParametersWithConversionsTest.testMain(); | 144 NamedParametersWithConversionsTest.testMain(); |
145 } | 145 } |
146 } | 146 } |
OLD | NEW |