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

Side by Side Diff: tests/lib/mirrors/metadata_allowed_values_test.dart

Issue 40863002: Handle metadata with type literals or qualified identifiers. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « tests/lib/mirrors/metadata_allowed_values_import.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_with_type_literal;
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 checkMetadata(DeclarationMirror mirror, List expectedMetadata) {
147 Expect.listEquals(expectedMetadata.map(reflect).toList(), mirror.metadata);
148 }
149
150 main() {
151 reflectClass(A).metadata;
152 checkMetadata(reflectClass(B), [B.CONSTANT]);
153 checkMetadata(reflectClass(C), [const C(3)]);
154 checkMetadata(reflectClass(D), [const D.named(4)]);
155 reflectClass(E).metadata;
156 reflectClass(F).metadata;
157 reflectClass(G).metadata;
158 reflectClass(H).metadata;
159 reflectClass(I).metadata;
160 reflectClass(J).metadata;
161 reflectClass(K).metadata;
162 reflectClass(L).metadata;
163 reflectClass(M).metadata;
164 checkMetadata(reflectClass(N), [const Imported()]);
165 checkMetadata(reflectClass(O), [const Imported.named()]);
166 checkMetadata(reflectClass(P), [Imported.CONSTANT]);
167 reflectClass(Q).metadata;
168 checkMetadata(reflectClass(R), [const prefix.Imported()]);
169 checkMetadata(reflectClass(S), [const prefix.Imported.named()]);
170 checkMetadata(reflectClass(T), [prefix.Imported.CONSTANT]);
171 reflectClass(U).metadata;
172 reflectClass(V).metadata;
173 reflectClass(W).metadata;
174 reflectClass(X).metadata;
175 reflectClass(Y).metadata;
176 reflectClass(Z).metadata;
177 reflectClass(AA).metadata;
178 reflectClass(BB).metadata;
179 reflectClass(CC).metadata;
180 reflectClass(DD).metadata;
181 reflectClass(EE).metadata;
182 reflectClass(FF).metadata;
183 reflectClass(GG).metadata;
184 reflectClass(HH).metadata;
185 reflectClass(II).metadata;
186 reflectClass(JJ).metadata;
187 }
OLDNEW
« no previous file with comments | « tests/lib/mirrors/metadata_allowed_values_import.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698