Index: test/codegen/lib/mirrors/lazy_static_test.dart |
diff --git a/test/codegen/lib/mirrors/lazy_static_test.dart b/test/codegen/lib/mirrors/lazy_static_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3cfba8d5e035e739257f666eec12260f8aba3737 |
--- /dev/null |
+++ b/test/codegen/lib/mirrors/lazy_static_test.dart |
@@ -0,0 +1,33 @@ |
+// 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 static members. |
+ |
+import 'dart:mirrors'; |
+ |
+import 'package:expect/expect.dart'; |
+ |
+import 'stringify.dart'; |
+ |
+class Foo { |
+ static var hello = { |
+ 'a': 'b', |
+ 'c': 'd', |
+ }; |
+} |
+ |
+void main() { |
+ expect('Variable(s(hello) in s(Foo), static)', |
+ reflectClass(Foo).declarations[#hello]); |
+ var reflectee = reflectClass(Foo).getField(#hello).reflectee; |
+ Expect.stringEquals('a, c', reflectee.keys.join(', ')); |
+ // Call the lazy getter twice as different things probably happen in the |
+ // underlying implementation. |
+ reflectee = reflectClass(Foo).getField(#hello).reflectee; |
+ Expect.stringEquals('a, c', reflectee.keys.join(', ')); |
+ var value = 'fisk'; |
+ Foo.hello = value; |
+ reflectee = reflectClass(Foo).getField(#hello).reflectee; |
+ Expect.identical(value, reflectee); |
+} |