Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: test/codegen/lib/mirrors/metadata_allowed_values_test.dart

Issue 2265533002: Add mirrors tests (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 library test.metadata_allowed_values;
6
7 import 'dart:mirrors';
8 import 'package:expect/expect.dart';
9
10 import 'metadata_allowed_values_import.dart'; // Unprefixed.
11 import 'metadata_allowed_values_import.dart' as prefix;
12
13 @A /// 01: compile-time error
14 class A {}
15
16 @B.CONSTANT
17 class B {
18 static const CONSTANT = 3;
19 }
20
21 @C(3)
22 class C {
23 final field;
24 const C(this.field);
25 }
26
27 @D.named(4)
28 class D {
29 final field;
30 const D.named(this.field);
31 }
32
33 @E.NOT_CONSTANT /// 02: compile-time error
34 class E {
35 static var NOT_CONSTANT = 3;
36 }
37
38 @F(6) /// 03: compile-time error
39 class F {
40 final field;
41 F(this.field);
42 }
43
44 @G.named(4) /// 04: compile-time error
45 class G {
46 final field;
47 G.named(this.field);
48 }
49
50 @H<int>() /// 05: compile-time error
51 class H<T> {
52 const H();
53 }
54
55 @I[0] /// 06: compile-time error
56 class I {}
57
58 @this.toString /// 07: compile-time error
59 class J {}
60
61 @super.toString /// 08: compile-time error
62 class K {}
63
64 @L.func() /// 09: compile-time error
65 class L {
66 static func() => 6;
67 }
68
69 @Imported /// 10: compile-time error
70 class M {}
71
72 @Imported()
73 class N {}
74
75 @Imported.named()
76 class O {}
77
78 @Imported.CONSTANT
79 class P {}
80
81 @prefix.Imported /// 11: compile-time error
82 class Q {}
83
84 @prefix.Imported()
85 class R {}
86
87 @prefix.Imported.named()
88 class S {}
89
90 @prefix.Imported.CONSTANT
91 class T {}
92
93 @U..toString() /// 12: compile-time error
94 class U {}
95
96 @V.tearOff /// 13: compile-time error
97 class V {
98 static tearOff() {}
99 }
100
101 topLevelTearOff() => 4;
102
103 @topLevelTearOff /// 14: compile-time error
104 class W {}
105
106 @TypeParameter /// 15: compile-time error
107 class X<TypeParameter> {}
108
109 @TypeParameter.member /// 16: compile-time error
110 class Y<TypeParameter> {}
111
112 @1 /// 17: compile-time error
113 class Z {}
114
115 @3.14 /// 18: compile-time error
116 class AA {}
117
118 @'string' /// 19: compile-time error
119 class BB {}
120
121 @#symbol /// 20: compile-time error
122 class CC {}
123
124 @['element'] /// 21: compile-time error
125 class DD {}
126
127 @{'key': 'value'} /// 22: compile-time error
128 class EE {}
129
130 @true /// 23: compile-time error
131 class FF {}
132
133 @false /// 24: compile-time error
134 class GG {}
135
136 @null /// 25: compile-time error
137 class HH {}
138
139 const a = const [1, 2, 3];
140 @a
141 class II {}
142
143 @a[0] /// 26: compile-time error
144 class JJ {}
145
146 @kk /// 27: compile-time error
147 class KK {
148 const KK();
149 }
150 get kk => const KK();
151
152 @LL(() => 42) /// 28: compile-time error
153 class LL {
154 final field;
155 const LL(this.field);
156 }
157
158 @MM((x) => 42) /// 29: compile-time error
159 class MM {
160 final field;
161 const MM(this.field);
162 }
163
164 @NN(() {}) /// 30: compile-time error
165 class NN {
166 final field;
167 const NN(this.field);
168 }
169
170 @OO(() { () {} }) /// 31: compile-time error
171 class OO {
172 final field;
173 const OO(this.field);
174 }
175
176 checkMetadata(DeclarationMirror mirror, List expectedMetadata) {
177 Expect.listEquals(expectedMetadata.map(reflect).toList(), mirror.metadata);
178 }
179
180 main() {
181 reflectClass(A).metadata;
182 checkMetadata(reflectClass(B), [B.CONSTANT]);
183 checkMetadata(reflectClass(C), [const C(3)]);
184 checkMetadata(reflectClass(D), [const D.named(4)]);
185 reflectClass(E).metadata;
186 reflectClass(F).metadata;
187 reflectClass(G).metadata;
188 reflectClass(H).metadata;
189 reflectClass(I).metadata;
190 reflectClass(J).metadata;
191 reflectClass(K).metadata;
192 reflectClass(L).metadata;
193 reflectClass(M).metadata;
194 checkMetadata(reflectClass(N), [const Imported()]);
195 checkMetadata(reflectClass(O), [const Imported.named()]);
196 checkMetadata(reflectClass(P), [Imported.CONSTANT]);
197 reflectClass(Q).metadata;
198 checkMetadata(reflectClass(R), [const prefix.Imported()]);
199 checkMetadata(reflectClass(S), [const prefix.Imported.named()]);
200 checkMetadata(reflectClass(T), [prefix.Imported.CONSTANT]);
201 reflectClass(U).metadata;
202 reflectClass(V).metadata;
203 reflectClass(W).metadata;
204 reflectClass(X).metadata;
205 reflectClass(Y).metadata;
206 reflectClass(Z).metadata;
207 reflectClass(AA).metadata;
208 reflectClass(BB).metadata;
209 reflectClass(CC).metadata;
210 reflectClass(DD).metadata;
211 reflectClass(EE).metadata;
212 reflectClass(FF).metadata;
213 reflectClass(GG).metadata;
214 reflectClass(HH).metadata;
215 reflectClass(II).metadata;
216 reflectClass(JJ).metadata;
217 reflectClass(KK).metadata;
218 reflectClass(LL).metadata;
219 reflectClass(MM).metadata;
220 reflectClass(NN).metadata;
221 reflectClass(OO).metadata;
222 }
OLDNEW
« no previous file with comments | « test/codegen/lib/mirrors/metadata_allowed_values_import.dart ('k') | test/codegen/lib/mirrors/metadata_class_mirror_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698