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

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
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
9 import 'metadata_test.dart';
10 import 'metadata_allowed_values_import.dart'; // Unprefixed.
11 import 'metadata_allowed_values_import.dart' as prefix;
12
13 @A
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 /// 01: compile-time error
34 class E {
35 static var NOT_CONSTANT = 3;
36 }
37
38 @F(6) /// 02: compile-time error
39 class F {
40 final field;
41 F(this.field);
42 }
43
44 @G.named(4) /// 03: compile-time error
45 class G {
46 final field;
47 G.named(this.field);
48 }
49
50 @H<int>() /// 04: compile-time error
rmacnak 2013/10/24 21:33:56 dart2js thinks this okay
51 class H<T> {
52 const H();
53 }
54
55 @I[0] /// 05: compile-time error
56 class I {}
57
58 @this.toString /// 06: compile-time error
59 class J {}
60
61 @super.toString /// 07: compile-time error
62 class K {}
63
64 @L.func() /// 08: compile-time error
65 class L {
66 static func() => 6;
67 }
68
69 @Imported
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
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() /// 09: compile-time error
94 class U {}
95
96 @V.tearOff
rmacnak 2013/10/24 21:33:56 Having code in metadata is weird.
97 class V {
98 static tearOff() {}
99 }
100
101 topLevelTearOff() => 4;
102
103 @topLevelTearOff
104 class W {}
105
106 main() {
107 checkMetadata(reflectClass(A), [A]);
108 checkMetadata(reflectClass(B), [B.CONSTANT]);
109 checkMetadata(reflectClass(C), [const C(3)]);
110 checkMetadata(reflectClass(D), [const D.named(4)]);
111 reflectClass(E).metadata; /// 01: continued
112 reflectClass(F).metadata; /// 02: continued
113 reflectClass(G).metadata; /// 03: continued
114 reflectClass(H).metadata; /// 04: continued
115 reflectClass(I).metadata; /// 05: continued
116 reflectClass(J).metadata; /// 06: continued
117 reflectClass(K).metadata; /// 07: continued
118 reflectClass(L).metadata; /// 08: continued
119 checkMetadata(reflectClass(M), [Imported]);
120 checkMetadata(reflectClass(N), [const Imported()]);
121 checkMetadata(reflectClass(O), [const Imported.named()]);
122 checkMetadata(reflectClass(P), [Imported.CONSTANT]);
123 checkMetadata(reflectClass(Q), [prefix.Imported]);
124 checkMetadata(reflectClass(R), [const prefix.Imported()]);
125 checkMetadata(reflectClass(S), [const prefix.Imported.named()]);
126 checkMetadata(reflectClass(T), [prefix.Imported.CONSTANT]);
127 reflectClass(U).metadata; /// 09: continued
128 checkMetadata(reflectClass(V), [V.tearOff]);
129 checkMetadata(reflectClass(W), [topLevelTearOff]);
130 }
OLDNEW
« runtime/vm/parser.cc ('K') | « 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