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 | 4 |
5 import 'package:expect/expect.dart'; | 5 import 'package:expect/expect.dart'; |
6 | 6 |
7 class X { | 7 class X { |
8 call() => 42; | 8 call() => 42; |
9 } | 9 } |
10 | 10 |
| 11 class XX extends X { |
| 12 XX.named(); |
| 13 } |
| 14 |
11 class Y { | 15 class Y { |
12 call(int x) => 87 + x; | 16 call(int x) => 87 + x; |
13 | 17 |
14 static int staticMethod(int x) => x + 1; | 18 static int staticMethod(int x) => x + 1; |
15 } | 19 } |
16 | 20 |
17 class Z<T> { | 21 class Z<T> { |
18 final T value; | 22 final T value; |
19 Z(this.value); | 23 Z(this.value); |
20 call() => value; | 24 call() => value; |
21 | 25 |
22 static int staticMethod(int x) => x + 1; | 26 static int staticMethod(int x) => x + 1; |
23 } | 27 } |
24 | 28 |
25 typedef F(int x); | 29 typedef F(int x); |
26 typedef G(String y); | 30 typedef G(String y); |
| 31 typedef H(); |
27 | 32 |
28 main() { | 33 main() { |
29 X x = new X(); | 34 X x = new X(); |
30 Function f = x; // Should pass checked mode test | 35 Function f = x; // Should pass checked mode test |
31 Y y = new Y(); | 36 Y y = new Y(); |
32 Function g = y; // Should pass checked mode test | 37 Function g = y; // Should pass checked mode test |
33 F f0 = y; // Should pass checked mode test | 38 F f0 = y; // Should pass checked mode test |
34 F f1 = x; /// 00: dynamic type error, static type warning | 39 F f1 = x; /// 00: dynamic type error, static type warning |
35 G g0 = y; /// 01: dynamic type error, static type warning | 40 G g0 = y; /// 01: dynamic type error, static type warning |
36 | 41 |
37 Expect.equals(f(), 42); | 42 Expect.equals(f(), 42); |
38 Expect.equals(g(100), 187); | 43 Expect.equals(g(100), 187); |
39 | 44 |
40 var z = new Z<int>(123); | 45 var z = new Z<int>(123); |
41 Expect.equals(z(), 123); | 46 Expect.equals(z(), 123); |
42 // TODO(jmesserly): this test doesn't work yet. | 47 // TODO(jmesserly): this test doesn't work yet. |
43 // Expect.equals((z as dynamic)(), 123); | 48 // Expect.equals((z as dynamic)(), 123); |
44 | 49 |
45 Expect.equals(Y.staticMethod(6), 7); | 50 Expect.equals(Y.staticMethod(6), 7); |
46 Expect.equals(Z.staticMethod(6), 7); | 51 Expect.equals(Z.staticMethod(6), 7); |
| 52 |
| 53 var xx = new XX.named(); |
| 54 Expect.equals(xx(), 42); |
| 55 |
| 56 H xx2 = new XX.named(); |
| 57 Expect.equals(xx2(), 42); |
47 } | 58 } |
OLD | NEW |