OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 import 'package:expect/expect.dart'; | 4 import 'package:expect/expect.dart'; |
5 | 5 |
6 class Foo { | 6 class Foo { |
7 dynamic method(int x) {} | 7 dynamic method(int x) {} |
| 8 dynamic method2(int x) {} |
8 } | 9 } |
9 | 10 |
10 main() { | 11 main() { |
11 Foo foo = new Foo(); | 12 Foo foo = new Foo(); |
12 | 13 |
13 dynamic dynamicMethod1 = foo.method; | 14 dynamic dynamicMethod1 = foo.method; |
14 Expect.throws(() => dynamicMethod1(2.5)); | 15 Expect.throws(() => dynamicMethod1(2.5)); |
15 | 16 |
16 dynamic dynamicMethod2 = (foo as dynamic).method; | 17 dynamic dynamicMethod2 = (foo as dynamic).method; |
17 Expect.throws(() => dynamicMethod2(2.5)); | 18 Expect.throws(() => dynamicMethod2(2.5)); |
| 19 |
| 20 Expect.equals(dynamicMethod1, dynamicMethod1); |
| 21 Expect.equals(dynamicMethod1, dynamicMethod2); |
| 22 Expect.equals(dynamicMethod1, foo.method); |
| 23 Expect.equals(foo.method2, (foo as dynamic).method2); |
| 24 |
| 25 Expect.notEquals(dynamicMethod1, new Foo().method); |
| 26 Expect.notEquals(dynamicMethod1, (new Foo() as dynamic).method); |
| 27 Expect.notEquals(dynamicMethod1, foo.method2); |
| 28 Expect.notEquals(dynamicMethod1, (foo as dynamic).method2); |
18 } | 29 } |
OLD | NEW |