Chromium Code Reviews| Index: tests/lib/mirrors/mirrors_used_get_name2_test.dart |
| diff --git a/tests/lib/mirrors/mirrors_used_get_name2_test.dart b/tests/lib/mirrors/mirrors_used_get_name2_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c6eab5d3f5a8e5d86fd67f994e506ea8f9096d7e |
| --- /dev/null |
| +++ b/tests/lib/mirrors/mirrors_used_get_name2_test.dart |
| @@ -0,0 +1,35 @@ |
| +// 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 (the |
| +// "foo") to be preserved. |
|
ahe
2013/12/12 19:54:40
Delete "the"?
floitsch
2013/12/12 20:43:18
Added it to make it clear that the phrase continue
|
| + |
| +@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()); |
| +} |