OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 static foo(y, [x]) => y; | 11 static foo(y, [x]) => y; |
12 static get bar => 499; | 12 static get bar => 499; |
13 static operator$foo([optional = 499]) => optional; | 13 static operator$foo([optional = 499]) => optional; |
14 static var x = 42; | 14 static var x = 42; |
15 static final y = "toto"; | 15 static final y = "toto"; |
16 static const z = true; | 16 static const z = true; |
17 } | 17 } |
18 | 18 |
19 main() { | 19 main() { |
20 var cm = reflectClass(A); | 20 var cm = reflectClass(A); |
21 var closure = cm.getField(#foo).reflectee; | 21 var closure = cm.getField(#foo).reflectee; |
22 Expect.equals("b", closure("b")); | 22 Expect.equals("b", closure("b")); |
23 | 23 |
24 closure = cm.getField(#operator$foo).reflectee; | 24 closure = cm.getField(#operator$foo).reflectee; |
25 Expect.equals(499, closure()); | 25 Expect.equals(499, closure()); |
26 | 26 |
27 Expect.equals(499, cm.getField(#bar).reflectee); | 27 Expect.equals(499, cm.getField(#bar).reflectee); |
28 Expect.equals(42, cm.getField(#x).reflectee); | 28 Expect.equals(42, cm.getField(#x).reflectee); |
29 Expect.equals("toto", cm.getField(#y).reflectee); /// 00: ok | 29 Expect.equals("toto", cm.getField(#y).reflectee); // /// 00: ok |
30 Expect.equals(true, cm.getField(#z).reflectee); /// 00: ok | 30 Expect.equals(true, cm.getField(#z).reflectee); // /// 00: ok |
31 } | 31 } |
OLD | NEW |