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 import "package:expect/expect.dart"; | 5 import "package:expect/expect.dart"; |
6 | 6 |
7 // Tests function statement and expression syntax. | 7 // Tests function statement and expression syntax. |
8 | 8 |
9 class FunctionSyntaxTest { | 9 class FunctionSyntaxTest { |
10 | 10 |
11 static void testMain | 11 static void testMain |
12 /* /// 00: compile-time error | 12 /* //# 00: compile-time error |
13 () | 13 () |
14 */ /// 00: continued | 14 */ //# 00: continued |
15 { | 15 { |
16 testNestedFunctions(); | 16 testNestedFunctions(); |
17 testFunctionExpressions(); | 17 testFunctionExpressions(); |
18 testPrecedence(); | 18 testPrecedence(); |
19 testInitializers(); | 19 testInitializers(); |
20 testFunctionParameter(); | 20 testFunctionParameter(); |
21 testFunctionIdentifierExpression(); | 21 testFunctionIdentifierExpression(); |
22 testFunctionIdentifierStatement(); | 22 testFunctionIdentifierStatement(); |
23 } | 23 } |
24 | 24 |
25 static void testNestedFunctions | 25 static void testNestedFunctions |
26 /* /// 01: compile-time error | 26 /* //# 01: compile-time error |
27 () | 27 () |
28 */ /// 01: continued | 28 */ //# 01: continued |
29 { | 29 { |
30 // No types - braces. | 30 // No types - braces. |
31 nb0 | 31 nb0 |
32 /* /// 02: compile-time error | 32 /* //# 02: compile-time error |
33 () | 33 () |
34 */ /// 02: continued | 34 */ //# 02: continued |
35 { return 42; } | 35 { return 42; } |
36 nb1 | 36 nb1 |
37 /* /// 03: compile-time error | 37 /* //# 03: compile-time error |
38 (a) | 38 (a) |
39 */ /// 03: continued | 39 */ //# 03: continued |
40 { return a; } | 40 { return a; } |
41 nb2 | 41 nb2 |
42 /* /// 04: compile-time error | 42 /* //# 04: compile-time error |
43 (a, b) | 43 (a, b) |
44 */ /// 04: continued | 44 */ //# 04: continued |
45 { return a + b; } | 45 { return a + b; } |
46 Expect.equals(42, nb0()); | 46 Expect.equals(42, nb0()); |
47 Expect.equals(87, nb1(87)); | 47 Expect.equals(87, nb1(87)); |
48 Expect.equals(1 + 2, nb2(1, 2)); | 48 Expect.equals(1 + 2, nb2(1, 2)); |
49 | 49 |
50 // No types - arrows. | 50 // No types - arrows. |
51 na0 | 51 na0 |
52 /* /// 05: compile-time error | 52 /* //# 05: compile-time error |
53 () | 53 () |
54 */ /// 05: continued | 54 */ //# 05: continued |
55 => 42; | 55 => 42; |
56 na1 | 56 na1 |
57 /* /// 06: compile-time error | 57 /* //# 06: compile-time error |
58 (a) | 58 (a) |
59 */ /// 06: continued | 59 */ //# 06: continued |
60 => a; | 60 => a; |
61 na2 | 61 na2 |
62 /* /// 07: compile-time error | 62 /* //# 07: compile-time error |
63 (a, b) | 63 (a, b) |
64 */ /// 07: continued | 64 */ //# 07: continued |
65 => a + b; | 65 => a + b; |
66 Expect.equals(42, na0()); | 66 Expect.equals(42, na0()); |
67 Expect.equals(87, na1(87)); | 67 Expect.equals(87, na1(87)); |
68 Expect.equals(1 + 2, na2(1, 2)); | 68 Expect.equals(1 + 2, na2(1, 2)); |
69 | 69 |
70 // Return type - braces. | 70 // Return type - braces. |
71 int rb0 | 71 int rb0 |
72 /* /// 08: compile-time error | 72 /* //# 08: compile-time error |
73 () | 73 () |
74 */ /// 08: continued | 74 */ //# 08: continued |
75 { return 42; } | 75 { return 42; } |
76 int rb1 | 76 int rb1 |
77 /* /// 09: compile-time error | 77 /* //# 09: compile-time error |
78 (a) | 78 (a) |
79 */ /// 09: continued | 79 */ //# 09: continued |
80 { return a; } | 80 { return a; } |
81 int rb2 | 81 int rb2 |
82 /* /// 10: compile-time error | 82 /* //# 10: compile-time error |
83 (a, b) | 83 (a, b) |
84 */ /// 10: continued | 84 */ //# 10: continued |
85 { return a + b; } | 85 { return a + b; } |
86 Expect.equals(42, rb0()); | 86 Expect.equals(42, rb0()); |
87 Expect.equals(87, rb1(87)); | 87 Expect.equals(87, rb1(87)); |
88 Expect.equals(1 + 2, rb2(1, 2)); | 88 Expect.equals(1 + 2, rb2(1, 2)); |
89 | 89 |
90 // Return type - arrows. | 90 // Return type - arrows. |
91 int ra0 | 91 int ra0 |
92 /* /// 11: compile-time error | 92 /* //# 11: compile-time error |
93 () | 93 () |
94 */ /// 11: continued | 94 */ //# 11: continued |
95 => 42; | 95 => 42; |
96 int ra1 | 96 int ra1 |
97 /* /// 12: compile-time error | 97 /* //# 12: compile-time error |
98 (a) | 98 (a) |
99 */ /// 12: continued | 99 */ //# 12: continued |
100 => a; | 100 => a; |
101 int ra2 | 101 int ra2 |
102 /* /// 13: compile-time error | 102 /* //# 13: compile-time error |
103 (a, b) | 103 (a, b) |
104 */ /// 13: continued | 104 */ //# 13: continued |
105 => a + b; | 105 => a + b; |
106 Expect.equals(42, ra0()); | 106 Expect.equals(42, ra0()); |
107 Expect.equals(87, ra1(87)); | 107 Expect.equals(87, ra1(87)); |
108 Expect.equals(1 + 2, ra2(1, 2)); | 108 Expect.equals(1 + 2, ra2(1, 2)); |
109 | 109 |
110 // Fully typed - braces. | 110 // Fully typed - braces. |
111 int fb1 | 111 int fb1 |
112 /* /// 14: compile-time error | 112 /* //# 14: compile-time error |
113 (int a) | 113 (int a) |
114 */ /// 14: continued | 114 */ //# 14: continued |
115 { return a; } | 115 { return a; } |
116 int fb2 | 116 int fb2 |
117 /* /// 15: compile-time error | 117 /* //# 15: compile-time error |
118 (int a, int b) | 118 (int a, int b) |
119 */ /// 15: continued | 119 */ //# 15: continued |
120 { return a + b; } | 120 { return a + b; } |
121 Expect.equals(42, rb0()); | 121 Expect.equals(42, rb0()); |
122 Expect.equals(87, rb1(87)); | 122 Expect.equals(87, rb1(87)); |
123 Expect.equals(1 + 2, rb2(1, 2)); | 123 Expect.equals(1 + 2, rb2(1, 2)); |
124 | 124 |
125 // Fully typed - arrows. | 125 // Fully typed - arrows. |
126 int fa1 | 126 int fa1 |
127 /* /// 16: compile-time error | 127 /* //# 16: compile-time error |
128 (int a) | 128 (int a) |
129 */ /// 16: continued | 129 */ //# 16: continued |
130 => a; | 130 => a; |
131 int fa2 | 131 int fa2 |
132 /* /// 17: compile-time error | 132 /* //# 17: compile-time error |
133 (int a, int b) | 133 (int a, int b) |
134 */ /// 17: continued | 134 */ //# 17: continued |
135 => a + b; | 135 => a + b; |
136 Expect.equals(42, ra0()); | 136 Expect.equals(42, ra0()); |
137 Expect.equals(87, ra1(87)); | 137 Expect.equals(87, ra1(87)); |
138 Expect.equals(1 + 2, ra2(1, 2)); | 138 Expect.equals(1 + 2, ra2(1, 2)); |
139 | 139 |
140 // Generic types - braces. | 140 // Generic types - braces. |
141 List<int> gb0 | 141 List<int> gb0 |
142 /* /// 18: compile-time error | 142 /* //# 18: compile-time error |
143 () | 143 () |
144 */ /// 18: continued | 144 */ //# 18: continued |
145 { return [42]; } | 145 { return [42]; } |
146 List<int> gb1 | 146 List<int> gb1 |
147 /* /// 19: compile-time error | 147 /* //# 19: compile-time error |
148 (List<int> a) | 148 (List<int> a) |
149 */ /// 19: continued | 149 */ //# 19: continued |
150 { return a; } | 150 { return a; } |
151 Expect.equals(42, gb0()[0]); | 151 Expect.equals(42, gb0()[0]); |
152 Expect.equals(87, gb1([87])[0]); | 152 Expect.equals(87, gb1([87])[0]); |
153 | 153 |
154 // Generic types - arrows. | 154 // Generic types - arrows. |
155 List<int> ga0 | 155 List<int> ga0 |
156 /* /// 20: compile-time error | 156 /* //# 20: compile-time error |
157 () | 157 () |
158 */ /// 20: continued | 158 */ //# 20: continued |
159 => [42]; | 159 => [42]; |
160 List<int> ga1 | 160 List<int> ga1 |
161 /* /// 21: compile-time error | 161 /* //# 21: compile-time error |
162 (List<int> a) | 162 (List<int> a) |
163 */ /// 21: continued | 163 */ //# 21: continued |
164 => a; | 164 => a; |
165 Expect.equals(42, ga0()[0]); | 165 Expect.equals(42, ga0()[0]); |
166 Expect.equals(87, ga1([87])[0]); | 166 Expect.equals(87, ga1([87])[0]); |
167 } | 167 } |
168 | 168 |
169 static void testFunctionExpressions | 169 static void testFunctionExpressions |
170 /* /// 22: compile-time error | 170 /* //# 22: compile-time error |
171 () | 171 () |
172 */ /// 22: continued | 172 */ //# 22: continued |
173 { | 173 { |
174 eval0 | 174 eval0 |
175 /* /// 23: compile-time error | 175 /* //# 23: compile-time error |
176 (fn) | 176 (fn) |
177 */ /// 23: continued | 177 */ //# 23: continued |
178 => fn(); | 178 => fn(); |
179 eval1 | 179 eval1 |
180 /* /// 24: compile-time error | 180 /* //# 24: compile-time error |
181 (fn, a) | 181 (fn, a) |
182 */ /// 24: continued | 182 */ //# 24: continued |
183 => fn(a); | 183 => fn(a); |
184 eval2 | 184 eval2 |
185 /* /// 25: compile-time error | 185 /* //# 25: compile-time error |
186 (fn, a, b) | 186 (fn, a, b) |
187 */ /// 25: continued | 187 */ //# 25: continued |
188 => fn(a, b); | 188 => fn(a, b); |
189 | 189 |
190 // No types - braces. | 190 // No types - braces. |
191 Expect.equals(42, eval0( | 191 Expect.equals(42, eval0( |
192 /* /// 26: compile-time error | 192 /* //# 26: compile-time error |
193 () | 193 () |
194 */ /// 26: continued | 194 */ //# 26: continued |
195 { return 42; })); | 195 { return 42; })); |
196 Expect.equals(87, eval1( | 196 Expect.equals(87, eval1( |
197 /* /// 27: compile-time error | 197 /* //# 27: compile-time error |
198 (a) | 198 (a) |
199 */ /// 27: continued | 199 */ //# 27: continued |
200 { return a; }, 87)); | 200 { return a; }, 87)); |
201 Expect.equals(1 + 2, eval2( | 201 Expect.equals(1 + 2, eval2( |
202 /* /// 28: compile-time error | 202 /* //# 28: compile-time error |
203 (a, b) | 203 (a, b) |
204 */ /// 28: continued | 204 */ //# 28: continued |
205 { return a + b; }, 1, 2)); | 205 { return a + b; }, 1, 2)); |
206 Expect.equals(42, eval0( | 206 Expect.equals(42, eval0( |
207 /* /// 29: compile-time error | 207 /* //# 29: compile-time error |
208 () | 208 () |
209 */ /// 29: continued | 209 */ //# 29: continued |
210 { return 42; })); | 210 { return 42; })); |
211 Expect.equals(87, eval1( | 211 Expect.equals(87, eval1( |
212 /* /// 30: compile-time error | 212 /* //# 30: compile-time error |
213 (a) | 213 (a) |
214 */ /// 30: continued | 214 */ //# 30: continued |
215 { return a; }, 87)); | 215 { return a; }, 87)); |
216 Expect.equals(1 + 2, eval2( | 216 Expect.equals(1 + 2, eval2( |
217 /* /// 31: compile-time error | 217 /* //# 31: compile-time error |
218 (a, b) | 218 (a, b) |
219 */ /// 31: continued | 219 */ //# 31: continued |
220 { return a + b; }, 1, 2)); | 220 { return a + b; }, 1, 2)); |
221 | 221 |
222 // No types - arrows. | 222 // No types - arrows. |
223 Expect.equals(42, eval0( | 223 Expect.equals(42, eval0( |
224 /* /// 32: compile-time error | 224 /* //# 32: compile-time error |
225 () | 225 () |
226 */ /// 32: continued | 226 */ //# 32: continued |
227 => 42)); | 227 => 42)); |
228 Expect.equals(87, eval1( | 228 Expect.equals(87, eval1( |
229 /* /// 33: compile-time error | 229 /* //# 33: compile-time error |
230 (a) | 230 (a) |
231 */ /// 33: continued | 231 */ //# 33: continued |
232 => a, 87)); | 232 => a, 87)); |
233 Expect.equals(1 + 2, eval2( | 233 Expect.equals(1 + 2, eval2( |
234 /* /// 34: compile-time error | 234 /* //# 34: compile-time error |
235 (a, b) | 235 (a, b) |
236 */ /// 34: continued | 236 */ //# 34: continued |
237 => a + b, 1, 2)); | 237 => a + b, 1, 2)); |
238 Expect.equals(42, eval0( | 238 Expect.equals(42, eval0( |
239 /* /// 35: compile-time error | 239 /* //# 35: compile-time error |
240 () | 240 () |
241 */ /// 35: continued | 241 */ //# 35: continued |
242 => 42)); | 242 => 42)); |
243 Expect.equals(87, eval1( | 243 Expect.equals(87, eval1( |
244 /* /// 36: compile-time error | 244 /* //# 36: compile-time error |
245 (a) | 245 (a) |
246 */ /// 36: continued | 246 */ //# 36: continued |
247 => a, 87)); | 247 => a, 87)); |
248 Expect.equals(1 + 2, eval2( | 248 Expect.equals(1 + 2, eval2( |
249 /* /// 37: compile-time error | 249 /* //# 37: compile-time error |
250 (a, b) | 250 (a, b) |
251 */ /// 37: continued | 251 */ //# 37: continued |
252 => a + b, 1, 2)); | 252 => a + b, 1, 2)); |
253 | 253 |
254 // Argument types - braces. | 254 // Argument types - braces. |
255 Expect.equals(42, eval0( | 255 Expect.equals(42, eval0( |
256 /* /// 44: compile-time error | 256 /* //# 44: compile-time error |
257 () | 257 () |
258 */ /// 44: continued | 258 */ //# 44: continued |
259 { return 42; })); | 259 { return 42; })); |
260 Expect.equals(87, eval1( | 260 Expect.equals(87, eval1( |
261 /* /// 45: compile-time error | 261 /* //# 45: compile-time error |
262 (int a) | 262 (int a) |
263 */ /// 45: continued | 263 */ //# 45: continued |
264 { return a; }, 87)); | 264 { return a; }, 87)); |
265 Expect.equals(1 + 2, eval2( | 265 Expect.equals(1 + 2, eval2( |
266 /* /// 46: compile-time error | 266 /* //# 46: compile-time error |
267 (int a, int b) | 267 (int a, int b) |
268 */ /// 46: continued | 268 */ //# 46: continued |
269 { return a + b; }, 1, 2)); | 269 { return a + b; }, 1, 2)); |
270 Expect.equals(42, eval0( | 270 Expect.equals(42, eval0( |
271 /* /// 47: compile-time error | 271 /* //# 47: compile-time error |
272 () | 272 () |
273 */ /// 47: continued | 273 */ //# 47: continued |
274 { return 42; })); | 274 { return 42; })); |
275 Expect.equals(87, eval1( | 275 Expect.equals(87, eval1( |
276 /* /// 48: compile-time error | 276 /* //# 48: compile-time error |
277 (int a) | 277 (int a) |
278 */ /// 48: continued | 278 */ //# 48: continued |
279 { return a; }, 87)); | 279 { return a; }, 87)); |
280 Expect.equals(1 + 2, eval2( | 280 Expect.equals(1 + 2, eval2( |
281 /* /// 49: compile-time error | 281 /* //# 49: compile-time error |
282 (int a, int b) | 282 (int a, int b) |
283 */ /// 49: continued | 283 */ //# 49: continued |
284 { return a + b; }, 1, 2)); | 284 { return a + b; }, 1, 2)); |
285 | 285 |
286 // Argument types - arrows. | 286 // Argument types - arrows. |
287 Expect.equals(42, eval0( | 287 Expect.equals(42, eval0( |
288 /* /// 50: compile-time error | 288 /* //# 50: compile-time error |
289 () | 289 () |
290 */ /// 50: continued | 290 */ //# 50: continued |
291 => 42)); | 291 => 42)); |
292 Expect.equals(87, eval1( | 292 Expect.equals(87, eval1( |
293 /* /// 51: compile-time error | 293 /* //# 51: compile-time error |
294 (int a) | 294 (int a) |
295 */ /// 51: continued | 295 */ //# 51: continued |
296 => a, 87)); | 296 => a, 87)); |
297 Expect.equals(1 + 2, eval2( | 297 Expect.equals(1 + 2, eval2( |
298 /* /// 52: compile-time error | 298 /* //# 52: compile-time error |
299 (int a, int b) | 299 (int a, int b) |
300 */ /// 52: continued | 300 */ //# 52: continued |
301 => a + b, 1, 2)); | 301 => a + b, 1, 2)); |
302 Expect.equals(42, eval0( | 302 Expect.equals(42, eval0( |
303 /* /// 53: compile-time error | 303 /* //# 53: compile-time error |
304 () | 304 () |
305 */ /// 53: continued | 305 */ //# 53: continued |
306 => 42)); | 306 => 42)); |
307 Expect.equals(87, eval1( | 307 Expect.equals(87, eval1( |
308 /* /// 54: compile-time error | 308 /* //# 54: compile-time error |
309 (int a) | 309 (int a) |
310 */ /// 54: continued | 310 */ //# 54: continued |
311 => a, 87)); | 311 => a, 87)); |
312 Expect.equals(1 + 2, eval2( | 312 Expect.equals(1 + 2, eval2( |
313 /* /// 55: compile-time error | 313 /* //# 55: compile-time error |
314 (int a, int b) | 314 (int a, int b) |
315 */ /// 55: continued | 315 */ //# 55: continued |
316 => a + b, 1, 2)); | 316 => a + b, 1, 2)); |
317 | 317 |
318 } | 318 } |
319 | 319 |
320 static void testPrecedence | 320 static void testPrecedence |
321 /* /// 64: compile-time error | 321 /* //# 64: compile-time error |
322 () | 322 () |
323 */ /// 64: continued | 323 */ //# 64: continued |
324 { | 324 { |
325 expectEvaluatesTo | 325 expectEvaluatesTo |
326 /* /// 65: compile-time error | 326 /* //# 65: compile-time error |
327 (value, fn) | 327 (value, fn) |
328 */ /// 65: continued | 328 */ //# 65: continued |
329 { Expect.equals(value, fn()); } | 329 { Expect.equals(value, fn()); } |
330 | 330 |
331 // Assignment. | 331 // Assignment. |
332 var x; | 332 var x; |
333 expectEvaluatesTo(42, ()=> x = 42); | 333 expectEvaluatesTo(42, ()=> x = 42); |
334 Expect.equals(42, x); | 334 Expect.equals(42, x); |
335 x = 1; | 335 x = 1; |
336 expectEvaluatesTo(100, ()=> x += 99); | 336 expectEvaluatesTo(100, ()=> x += 99); |
337 Expect.equals(100, x); | 337 Expect.equals(100, x); |
338 x = 1; | 338 x = 1; |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
396 // Postfix / prefix. | 396 // Postfix / prefix. |
397 var y = 0; | 397 var y = 0; |
398 expectEvaluatesTo(0, ()=> y++); | 398 expectEvaluatesTo(0, ()=> y++); |
399 expectEvaluatesTo(2, ()=> ++y); | 399 expectEvaluatesTo(2, ()=> ++y); |
400 expectEvaluatesTo(1, ()=> --y); | 400 expectEvaluatesTo(1, ()=> --y); |
401 expectEvaluatesTo(1, ()=> y--); | 401 expectEvaluatesTo(1, ()=> y--); |
402 Expect.equals(0, y); | 402 Expect.equals(0, y); |
403 | 403 |
404 // Selector. | 404 // Selector. |
405 fn | 405 fn |
406 /* /// 66: compile-time error | 406 /* //# 66: compile-time error |
407 () | 407 () |
408 */ /// 66: continued | 408 */ //# 66: continued |
409 => 42; | 409 => 42; |
410 var list = [87]; | 410 var list = [87]; |
411 expectEvaluatesTo(42, ()=> fn()); | 411 expectEvaluatesTo(42, ()=> fn()); |
412 expectEvaluatesTo(1, ()=> list.length); | 412 expectEvaluatesTo(1, ()=> list.length); |
413 expectEvaluatesTo(87, ()=> list[0]); | 413 expectEvaluatesTo(87, ()=> list[0]); |
414 expectEvaluatesTo(87, ()=> list.removeLast()); | 414 expectEvaluatesTo(87, ()=> list.removeLast()); |
415 } | 415 } |
416 | 416 |
417 static void testInitializers | 417 static void testInitializers |
418 /* /// 67: compile-time error | 418 /* //# 67: compile-time error |
419 () | 419 () |
420 */ /// 67: continued | 420 */ //# 67: continued |
421 { | 421 { |
422 Expect.equals(42, (new C.cb0().fn)()); | 422 Expect.equals(42, (new C.cb0().fn)()); |
423 Expect.equals(43, (new C.ca0().fn)()); | 423 Expect.equals(43, (new C.ca0().fn)()); |
424 Expect.equals(44, (new C.cb1().fn)()); | 424 Expect.equals(44, (new C.cb1().fn)()); |
425 Expect.equals(45, (new C.ca1().fn)()); | 425 Expect.equals(45, (new C.ca1().fn)()); |
426 Expect.equals(46, (new C.cb2().fn)()); | 426 Expect.equals(46, (new C.cb2().fn)()); |
427 Expect.equals(47, (new C.ca2().fn)()); | 427 Expect.equals(47, (new C.ca2().fn)()); |
428 Expect.equals(48, (new C.cb3().fn)()); | 428 Expect.equals(48, (new C.cb3().fn)()); |
429 Expect.equals(49, (new C.ca3().fn)()); | 429 Expect.equals(49, (new C.ca3().fn)()); |
430 | 430 |
(...skipping 10 matching lines...) Expand all Loading... |
441 Expect.equals(63, (new C.ra0().fn)()); | 441 Expect.equals(63, (new C.ra0().fn)()); |
442 Expect.equals(64, (new C.rb1().fn)()); | 442 Expect.equals(64, (new C.rb1().fn)()); |
443 Expect.equals(65, (new C.ra1().fn)()); | 443 Expect.equals(65, (new C.ra1().fn)()); |
444 Expect.equals(66, (new C.rb2().fn)()); | 444 Expect.equals(66, (new C.rb2().fn)()); |
445 Expect.equals(67, (new C.ra2().fn)()); | 445 Expect.equals(67, (new C.ra2().fn)()); |
446 Expect.equals(68, (new C.rb3().fn)()); | 446 Expect.equals(68, (new C.rb3().fn)()); |
447 Expect.equals(69, (new C.ra3().fn)()); | 447 Expect.equals(69, (new C.ra3().fn)()); |
448 } | 448 } |
449 | 449 |
450 static void testFunctionParameter | 450 static void testFunctionParameter |
451 /* /// 68: compile-time error | 451 /* //# 68: compile-time error |
452 () | 452 () |
453 */ /// 68: continued | 453 */ //# 68: continued |
454 { | 454 { |
455 f0(fn()) => fn(); | 455 f0(fn()) => fn(); |
456 Expect.equals(42, f0(()=> 42)); | 456 Expect.equals(42, f0(()=> 42)); |
457 | 457 |
458 f1(int fn()) => fn(); | 458 f1(int fn()) => fn(); |
459 Expect.equals(87, f1(()=> 87)); | 459 Expect.equals(87, f1(()=> 87)); |
460 | 460 |
461 f2(fn(a)) => fn(42); | 461 f2(fn(a)) => fn(42); |
462 Expect.equals(43, f2((a)=> a + 1)); | 462 Expect.equals(43, f2((a)=> a + 1)); |
463 | 463 |
464 f3(fn(int a)) => fn(42); | 464 f3(fn(int a)) => fn(42); |
465 Expect.equals(44, f3((int a)=> a + 2)); | 465 Expect.equals(44, f3((int a)=> a + 2)); |
466 } | 466 } |
467 | 467 |
468 static void testFunctionIdentifierExpression | 468 static void testFunctionIdentifierExpression |
469 /* /// 69: compile-time error | 469 /* //# 69: compile-time error |
470 () | 470 () |
471 */ /// 69: continued | 471 */ //# 69: continued |
472 { | 472 { |
473 Expect.equals(87, ( | 473 Expect.equals(87, ( |
474 /* /// 70: compile-time error | 474 /* //# 70: compile-time error |
475 () | 475 () |
476 */ /// 70: continued | 476 */ //# 70: continued |
477 => 87)()); | 477 => 87)()); |
478 } | 478 } |
479 | 479 |
480 static void testFunctionIdentifierStatement | 480 static void testFunctionIdentifierStatement |
481 /* /// 71: compile-time error | 481 /* //# 71: compile-time error |
482 () | 482 () |
483 */ /// 71: continued | 483 */ //# 71: continued |
484 { | 484 { |
485 function | 485 function |
486 /* /// 72: compile-time error | 486 /* //# 72: compile-time error |
487 () | 487 () |
488 */ /// 72: continued | 488 */ //# 72: continued |
489 => 42; | 489 => 42; |
490 Expect.equals(42, function()); | 490 Expect.equals(42, function()); |
491 Expect.equals(true, function is Function); | 491 Expect.equals(true, function is Function); |
492 } | 492 } |
493 | 493 |
494 } | 494 } |
495 | 495 |
496 | 496 |
497 class C { | 497 class C { |
498 | 498 |
(...skipping 27 matching lines...) Expand all Loading... |
526 C.rb1() : fn = wrap(() { return 64; }) { } | 526 C.rb1() : fn = wrap(() { return 64; }) { } |
527 C.ra1() : fn = wrap(()=> 65) { } | 527 C.ra1() : fn = wrap(()=> 65) { } |
528 | 528 |
529 C.rb2() : fn = [() { return 66; }][0] { } | 529 C.rb2() : fn = [() { return 66; }][0] { } |
530 C.ra2() : fn = [() => 67][0] { } | 530 C.ra2() : fn = [() => 67][0] { } |
531 | 531 |
532 C.rb3() : fn = {'x': () { return 68; }}['x'] { } | 532 C.rb3() : fn = {'x': () { return 68; }}['x'] { } |
533 C.ra3() : fn = {'x': () => 69}['x'] { } | 533 C.ra3() : fn = {'x': () => 69}['x'] { } |
534 | 534 |
535 static wrap | 535 static wrap |
536 /* /// 73: compile-time error | 536 /* //# 73: compile-time error |
537 (fn) | 537 (fn) |
538 */ /// 73: continued | 538 */ //# 73: continued |
539 { return fn; } | 539 { return fn; } |
540 | 540 |
541 final fn; | 541 final fn; |
542 | 542 |
543 } | 543 } |
544 | 544 |
545 main | 545 main |
546 /* /// 74: compile-time error | 546 /* //# 74: compile-time error |
547 () | 547 () |
548 */ /// 74: continued | 548 */ //# 74: continued |
549 { | 549 { |
550 FunctionSyntaxTest.testMain(); | 550 FunctionSyntaxTest.testMain(); |
551 } | 551 } |
OLD | NEW |