| 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 // | |
| 5 // Dart test for new function type alias. | |
| 6 | |
| 7 class FunctionLiteralsTest { | |
| 8 | |
| 9 static void testMain() { | |
| 10 f(x) { return x * 2;} | |
| 11 f(42); // make sure it is parsed as a function call | |
| 12 Expect.equals(20, f(10)); | |
| 13 | |
| 14 int g(x) { return x * 2;} | |
| 15 g(42); // make sure it is parsed as a function call | |
| 16 Expect.equals(20, g(10)); | |
| 17 | |
| 18 h(x) { return x * 2;} | |
| 19 h(42); // make sure it is parsed as a function call | |
| 20 Expect.equals(20, h(10)); | |
| 21 | |
| 22 var a = int _(x) {return x + 2;}; | |
| 23 Expect.equals(7, a(5)); | |
| 24 | |
| 25 Expect.equals(10, apply((k) { return k << 1;}, 5)); | |
| 26 Expect.equals(20, apply((k) => k << 1, 10)); | |
| 27 | |
| 28 a = new A(3); | |
| 29 Expect.equals(-1, a.f); | |
| 30 Expect.equals(-3, a.f2); | |
| 31 | |
| 32 a = new A.n(5); | |
| 33 Expect.equals(-2, a.f); | |
| 34 Expect.equals(2, a.f2); | |
| 35 | |
| 36 Expect.equals(true, isOdd(5)); | |
| 37 Expect.equals(false, isOdd(8)); | |
| 38 | |
| 39 var b = new B(10); | |
| 40 Expect.equals(10, b.n); | |
| 41 Expect.equals(100, (b.f)(10)); | |
| 42 | |
| 43 b = new B.n(10); | |
| 44 Expect.equals(10, b.n); | |
| 45 Expect.equals(101, (b.f)(10)); | |
| 46 | |
| 47 int x = 0; | |
| 48 int y = 1; | |
| 49 // make sure this isn't parsed as a generic type | |
| 50 Expect.isTrue(x<y, "foo"); | |
| 51 } | |
| 52 } | |
| 53 | |
| 54 apply(f, n) { | |
| 55 return f(n); | |
| 56 } | |
| 57 | |
| 58 bool isOdd(b) => b % 2 == 1; | |
| 59 | |
| 60 class A { | |
| 61 int f; | |
| 62 int f2; | |
| 63 A(p) : f = apply((j) => 2 - j, p) { /* constr. body */ f2 = -p; } | |
| 64 A.n(p) : f = 1 + apply((j) => 2 - j, p) { /* constr. body */ f2 = -f; } | |
| 65 } | |
| 66 | |
| 67 class B { | |
| 68 var f; | |
| 69 int n; | |
| 70 B(z) : f = ((x) => x * x) { n = z; } | |
| 71 B.n(z) : f = ((x) { return x * x + 1; }) { n = z; } | |
| 72 } | |
| 73 | |
| 74 main() { | |
| 75 FunctionLiteralsTest.testMain(); | |
| 76 } | |
| OLD | NEW |