Chromium Code Reviews| Index: tests/compiler/dart2js_extra/mirror_invalid_field_access2_test.dart |
| diff --git a/tests/compiler/dart2js_extra/mirror_invalid_field_access2_test.dart b/tests/compiler/dart2js_extra/mirror_invalid_field_access2_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..d4cdf2687cff321091d63ce7f07e320e480c6551 |
| --- /dev/null |
| +++ b/tests/compiler/dart2js_extra/mirror_invalid_field_access2_test.dart |
| @@ -0,0 +1,31 @@ |
| +// 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 that we cannot reflect on elements not covered by the `MirrorsUsed` |
| +// annotation. |
| + |
| +library test; |
| + |
| +@MirrorsUsed(targets: 'C.foo') |
| +import 'dart:mirrors'; |
| + |
| +import 'package:expect/expect.dart'; |
| + |
| +class C { |
| + var foo; |
| + var bar; |
| +} |
| + |
| +main() { |
| + var c = new C(); |
| + |
| + c.bar = 1; |
| + var local = c.bar; |
| + |
| + var mirror = reflect(c); |
| + Expect.equals(1, mirror.setField(const Symbol('foo'), 1).reflectee); |
| + Expect.equals(1, mirror.getField(const Symbol('foo')).reflectee); |
| + Expect.throws(() => mirror.setField(const Symbol('bar'), 2)); |
|
ngeoffray
2013/08/29 07:45:49
I'd check the error.
karlklose
2013/08/29 15:33:37
Done.
|
| + Expect.throws(() => mirror.getField(const Symbol('bar'))); |
| +} |