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 // Dart test program testing closures. | |
5 | |
6 typedef T F<T>(T t); | |
7 | |
8 class Parameterized<T> { | |
9 Parameterized() { } | |
10 T mul3(F f, T t) { return 3*f(t); } | |
11 T test(T t) { | |
12 return mul3(T _(T t) { return 3*t; }, t); | |
13 } | |
14 } | |
15 | |
16 class LocalFunction2Test { | |
17 static int f(int n) { | |
18 int a = 0; | |
19 var g = (int n) { | |
20 a += n; | |
21 return a; | |
22 }; | |
23 var h = (int n) { | |
24 a += 10*n; | |
25 return a; | |
26 }; | |
27 return g(n) + h(n); | |
28 } | |
29 | |
30 static testMain() { | |
31 Expect.equals(3 + 33, f(3)); | |
32 Expect.equals(9.0, new Parameterized<double>().test(1.0)); | |
33 } | |
34 } | |
35 | |
36 main() { | |
37 LocalFunction2Test.testMain(); | |
38 } | |
OLD | NEW |