Index: tests/lib_strong/mirrors/field_metadata_test.dart |
diff --git a/tests/lib_strong/mirrors/field_metadata_test.dart b/tests/lib_strong/mirrors/field_metadata_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d64144dffbed799c8b0662409a82e6cc80b27987 |
--- /dev/null |
+++ b/tests/lib_strong/mirrors/field_metadata_test.dart |
@@ -0,0 +1,36 @@ |
+// Copyright (c) 2017, 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. |
+ |
+import 'dart:mirrors'; |
+import 'package:expect/expect.dart'; |
+ |
+class Bar { |
+ final String name; |
+ |
+ const Bar(this.name); |
+} |
+ |
+class Foo { |
+ @Bar('bar') |
+ int x = 40; |
+ |
+ @Bar('baz') |
+ final String y = 'hi'; |
+} |
+ |
+void main() { |
+ dynamic f = new Foo(); |
+ Expect.throws(() { |
+ f.x = 'hello'; |
+ }); |
+ f.x += 2; |
+ Expect.equals(f.x, 42); |
+ Expect.equals(f.y, 'hi'); |
+ |
+ var members = reflect(f).type.declarations; |
+ var x = members[#x] as VariableMirror; |
+ var y = members[#y] as VariableMirror; |
+ Expect.equals(x.type.simpleName, #int); |
+ Expect.equals(y.type.simpleName, #String); |
+} |