| OLD | NEW |
| 1 // compile options: --emit-metadata | 1 // compile options: --emit-metadata |
| 2 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 2 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 3 // for details. All rights reserved. Use of this source code is governed by a | 3 // for details. All rights reserved. Use of this source code is governed by a |
| 4 // BSD-style license that can be found in the LICENSE file. | 4 // BSD-style license that can be found in the LICENSE file. |
| 5 | 5 |
| 6 // Regression test for Issue 17141. | 6 // Regression test for Issue 17141. |
| 7 | 7 |
| 8 library test.metadata_nested_constructor_call; | 8 library test.metadata_nested_constructor_call; |
| 9 | 9 |
| 10 import 'dart:mirrors'; | 10 import 'dart:mirrors'; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 | 22 |
| 23 @Box() | 23 @Box() |
| 24 class A {} | 24 class A {} |
| 25 | 25 |
| 26 @Box(const Box()) | 26 @Box(const Box()) |
| 27 class B {} | 27 class B {} |
| 28 | 28 |
| 29 @Box(const Box(const Box())) | 29 @Box(const Box(const Box())) |
| 30 class C {} | 30 class C {} |
| 31 | 31 |
| 32 @Box(const Box(const MutableBox())) // /// 01: compile-time error | 32 @Box(const Box(const MutableBox())) // //# 01: compile-time error |
| 33 class D {} | 33 class D {} |
| 34 | 34 |
| 35 @Box(const MutableBox(const Box())) // /// 02: compile-time error | 35 @Box(const MutableBox(const Box())) // //# 02: compile-time error |
| 36 class E {} | 36 class E {} |
| 37 | 37 |
| 38 @Box(Box()) // /// 03: compile-time error | 38 @Box(Box()) // //# 03: compile-time error |
| 39 class F {} | 39 class F {} |
| 40 | 40 |
| 41 @Box(Box(const Box())) // /// 04: compile-time error | 41 @Box(Box(const Box())) // //# 04: compile-time error |
| 42 class G {} | 42 class G {} |
| 43 | 43 |
| 44 @Box(Box(const MutableBox())) // /// 05: compile-time error | 44 @Box(Box(const MutableBox())) // //# 05: compile-time error |
| 45 class H {} | 45 class H {} |
| 46 | 46 |
| 47 @Box(MutableBox(const Box())) // /// 06: compile-time error | 47 @Box(MutableBox(const Box())) // //# 06: compile-time error |
| 48 class I {} | 48 class I {} |
| 49 | 49 |
| 50 final closure = () => 42; | 50 final closure = () => 42; |
| 51 @Box(closure()) // /// 07: compile-time error | 51 @Box(closure()) // //# 07: compile-time error |
| 52 class J {} | 52 class J {} |
| 53 | 53 |
| 54 @Box(closure) // /// 08: compile-time error | 54 @Box(closure) // //# 08: compile-time error |
| 55 class K {} | 55 class K {} |
| 56 | 56 |
| 57 function() => 42; | 57 function() => 42; |
| 58 @Box(function()) // /// 09: compile-time error | 58 @Box(function()) // //# 09: compile-time error |
| 59 class L {} | 59 class L {} |
| 60 | 60 |
| 61 // N.B. This is legal, but @function is not (tested by metadata_allowed_values). | 61 // N.B. This is legal, but @function is not (tested by metadata_allowed_values). |
| 62 @Box(function) | 62 @Box(function) |
| 63 class M {} | 63 class M {} |
| 64 | 64 |
| 65 checkMetadata(DeclarationMirror mirror, List expectedMetadata) { | 65 checkMetadata(DeclarationMirror mirror, List expectedMetadata) { |
| 66 Expect.listEquals(expectedMetadata.map(reflect).toList(), mirror.metadata); | 66 Expect.listEquals(expectedMetadata.map(reflect).toList(), mirror.metadata); |
| 67 } | 67 } |
| 68 | 68 |
| 69 main() { | 69 main() { |
| 70 closure(); | 70 closure(); |
| 71 checkMetadata(reflectClass(A), [const Box()]); | 71 checkMetadata(reflectClass(A), [const Box()]); |
| 72 checkMetadata(reflectClass(B), [const Box(const Box())]); | 72 checkMetadata(reflectClass(B), [const Box(const Box())]); |
| 73 checkMetadata(reflectClass(C), [const Box(const Box(const Box()))]); | 73 checkMetadata(reflectClass(C), [const Box(const Box(const Box()))]); |
| 74 reflectClass(D).metadata; | 74 reflectClass(D).metadata; |
| 75 reflectClass(E).metadata; | 75 reflectClass(E).metadata; |
| 76 reflectClass(F).metadata; | 76 reflectClass(F).metadata; |
| 77 reflectClass(G).metadata; | 77 reflectClass(G).metadata; |
| 78 reflectClass(H).metadata; | 78 reflectClass(H).metadata; |
| 79 reflectClass(I).metadata; | 79 reflectClass(I).metadata; |
| 80 reflectClass(J).metadata; | 80 reflectClass(J).metadata; |
| 81 reflectClass(K).metadata; | 81 reflectClass(K).metadata; |
| 82 reflectClass(L).metadata; | 82 reflectClass(L).metadata; |
| 83 reflectClass(M).metadata; | 83 reflectClass(M).metadata; |
| 84 } | 84 } |
| OLD | NEW |