OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 @MirrorsUsed(targets: "A") | 5 @MirrorsUsed(targets: "A") |
6 import 'dart:mirrors'; | 6 import 'dart:mirrors'; |
7 | 7 |
8 import 'package:expect/expect.dart'; | 8 import 'package:expect/expect.dart'; |
9 | 9 |
10 class A { | 10 class A { |
11 foo(y, [x]) => y; | 11 foo(y, [x]) => y; |
12 operator+(other) => null; | 12 operator +(other) => null; |
13 get bar => 499; | 13 get bar => 499; |
14 operator$foo([optional = 499]) => optional; | 14 operator$foo([optional = 499]) => optional; |
15 } | 15 } |
16 | 16 |
17 main() { | 17 main() { |
18 // We are using `getField` to tear off `foo`. We must make sure that all | 18 // We are using `getField` to tear off `foo`. We must make sure that all |
19 // stub methods are installed. | 19 // stub methods are installed. |
20 var closure = reflect(new A()).getField(#foo).reflectee; | 20 var closure = reflect(new A()).getField(#foo).reflectee; |
21 Expect.equals("b", closure("b")); | 21 Expect.equals("b", closure("b")); |
22 | 22 |
23 closure = reflect(new A()).getField(#operator$foo).reflectee; | 23 closure = reflect(new A()).getField(#operator$foo).reflectee; |
24 Expect.equals(499, closure()); | 24 Expect.equals(499, closure()); |
25 } | 25 } |
OLD | NEW |