| // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| // Test to make sure that the names of classes that are marked with meta |
| // annotations of MirrorsUsed are preserved. |
| // In the test the class B is not instantiated, but we still want its names |
| // ("foo") to be preserved. |
| |
| @MirrorsUsed(metaTargets: "Meta") |
| import 'dart:mirrors'; |
| import 'package:expect/expect.dart'; |
| |
| class A { |
| noSuchMethod(invocationMirror) { |
| return MirrorSystem.getName(invocationMirror.memberName); |
| } |
| } |
| |
| class B { |
| @Meta() |
| foo() => 499; |
| } |
| |
| class Meta { |
| const Meta(); |
| } |
| |
| void main() { |
| var a = new A(); |
| if (new DateTime.now().year == 1984) { |
| a = A; |
| } |
| Expect.equals("foo", a.foo()); |
| } |