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

Side by Side Diff: tests/compiler/dart2js/metadata_test.dart

Issue 263103003: Remove warnings from dart2js test-suite. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Remove debug code. Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import "package:expect/expect.dart"; 5 import "package:expect/expect.dart";
6 import "package:async_helper/async_helper.dart"; 6 import "package:async_helper/async_helper.dart";
7 import 'compiler_helper.dart'; 7 import 'compiler_helper.dart';
8 import 'parser_helper.dart'; 8 import 'parser_helper.dart';
9 import '../../../sdk/lib/_internal/compiler/implementation/dart2jslib.dart'
10 show PrimitiveConstant;
9 11
10 void checkPosition(Spannable spannable, Node node, String source, compiler) { 12 void checkPosition(Spannable spannable, Node node, String source, compiler) {
11 SourceSpan span = compiler.spanFromSpannable(spannable); 13 SourceSpan span = compiler.spanFromSpannable(spannable);
12 Expect.isTrue(span.begin < span.end, 14 Expect.isTrue(span.begin < span.end,
13 'begin = ${span.begin}; end = ${span.end}'); 15 'begin = ${span.begin}; end = ${span.end}');
14 Expect.isTrue(span.end < source.length, 16 Expect.isTrue(span.end < source.length,
15 'end = ${span.end}; length = ${source.length}'); 17 'end = ${span.end}; length = ${source.length}');
16 String yield = source.substring(span.begin, span.end); 18 String yield = source.substring(span.begin, span.end);
17 19
18 // TODO(ahe): The node does not include "@". Fix that. 20 // TODO(ahe): The node does not include "@". Fix that.
19 Expect.stringEquals('@$node', yield); 21 Expect.stringEquals('@$node', yield);
20 } 22 }
21 23
22 void checkAnnotation(String name, String declaration, 24 void checkAnnotation(String name, String declaration,
23 {bool isTopLevelOnly: false}) { 25 {bool isTopLevelOnly: false}) {
24 // Ensure that a compile-time constant can be resolved from an 26 // Ensure that a compile-time constant can be resolved from an
25 // annotation. 27 // annotation.
26 var source1 = """const native = 'xyz'; 28 var source1 = """const native = 'xyz';
27 @native 29 @native
28 $declaration 30 $declaration
29 main() {}"""; 31 main() {}""";
30 32
31 compileAndCheck(source1, name, (compiler, element) { 33 compileAndCheck(source1, name, (compiler, element) {
32 compiler.enqueuer.resolution.queueIsClosed = false; 34 compiler.enqueuer.resolution.queueIsClosed = false;
33 Expect.equals(1, length(element.metadata), 35 Expect.equals(1, length(element.metadata),
34 'Unexpected metadata count on $element.'); 36 'Unexpected metadata count on $element.');
35 PartialMetadataAnnotation annotation = element.metadata.head; 37 PartialMetadataAnnotation annotation = element.metadata.head;
36 annotation.ensureResolved(compiler); 38 annotation.ensureResolved(compiler);
37 Constant value = annotation.value; 39 PrimitiveConstant value = annotation.value;
38 Expect.stringEquals('xyz', value.value.slowToString()); 40 Expect.stringEquals('xyz', value.value.slowToString());
39 41
40 checkPosition(annotation, annotation.cachedNode, source1, compiler); 42 checkPosition(annotation, annotation.cachedNode, source1, compiler);
41 }); 43 });
42 44
43 // Ensure that each repeated annotation has a unique instance of 45 // Ensure that each repeated annotation has a unique instance of
44 // [MetadataAnnotation]. 46 // [MetadataAnnotation].
45 var source2 = """const native = 'xyz'; 47 var source2 = """const native = 'xyz';
46 @native @native 48 @native @native
47 $declaration 49 $declaration
48 main() {}"""; 50 main() {}""";
49 51
50 compileAndCheck(source2, name, (compiler, element) { 52 compileAndCheck(source2, name, (compiler, element) {
51 compiler.enqueuer.resolution.queueIsClosed = false; 53 compiler.enqueuer.resolution.queueIsClosed = false;
52 Expect.equals(2, length(element.metadata)); 54 Expect.equals(2, length(element.metadata));
53 PartialMetadataAnnotation annotation1 = element.metadata.head; 55 PartialMetadataAnnotation annotation1 = element.metadata.head;
54 PartialMetadataAnnotation annotation2 = element.metadata.tail.head; 56 PartialMetadataAnnotation annotation2 = element.metadata.tail.head;
55 annotation1.ensureResolved(compiler); 57 annotation1.ensureResolved(compiler);
56 annotation2.ensureResolved(compiler); 58 annotation2.ensureResolved(compiler);
57 Expect.isFalse(identical(annotation1, annotation2), 59 Expect.isFalse(identical(annotation1, annotation2),
58 'expected unique instances'); 60 'expected unique instances');
59 Expect.notEquals(annotation1, annotation2, 'expected unequal instances'); 61 Expect.notEquals(annotation1, annotation2, 'expected unequal instances');
60 Constant value1 = annotation1.value; 62 PrimitiveConstant value1 = annotation1.value;
61 Constant value2 = annotation2.value; 63 PrimitiveConstant value2 = annotation2.value;
62 Expect.identical(value1, value2, 'expected same compile-time constant'); 64 Expect.identical(value1, value2, 'expected same compile-time constant');
63 Expect.stringEquals('xyz', value1.value.slowToString()); 65 Expect.stringEquals('xyz', value1.value.slowToString());
64 Expect.stringEquals('xyz', value2.value.slowToString()); 66 Expect.stringEquals('xyz', value2.value.slowToString());
65 67
66 checkPosition(annotation1, annotation1.cachedNode, source2, compiler); 68 checkPosition(annotation1, annotation1.cachedNode, source2, compiler);
67 checkPosition(annotation2, annotation2.cachedNode, source2, compiler); 69 checkPosition(annotation2, annotation2.cachedNode, source2, compiler);
68 }); 70 });
69 71
70 if (isTopLevelOnly) return; 72 if (isTopLevelOnly) return;
71 73
72 // Ensure that a compile-time constant can be resolved from an 74 // Ensure that a compile-time constant can be resolved from an
73 // annotation. 75 // annotation.
74 var source3 = """const native = 'xyz'; 76 var source3 = """const native = 'xyz';
75 class Foo { 77 class Foo {
76 @native 78 @native
77 $declaration 79 $declaration
78 } 80 }
79 main() {}"""; 81 main() {}""";
80 82
81 compileAndCheck(source3, 'Foo', (compiler, element) { 83 compileAndCheck(source3, 'Foo', (compiler, element) {
82 compiler.enqueuer.resolution.queueIsClosed = false; 84 compiler.enqueuer.resolution.queueIsClosed = false;
83 Expect.equals(0, length(element.metadata)); 85 Expect.equals(0, length(element.metadata));
84 element.ensureResolved(compiler); 86 element.ensureResolved(compiler);
85 Expect.equals(0, length(element.metadata)); 87 Expect.equals(0, length(element.metadata));
86 element = element.lookupLocalMember(name); 88 element = element.lookupLocalMember(name);
87 Expect.equals(1, length(element.metadata)); 89 Expect.equals(1, length(element.metadata));
88 PartialMetadataAnnotation annotation = element.metadata.head; 90 PartialMetadataAnnotation annotation = element.metadata.head;
89 annotation.ensureResolved(compiler); 91 annotation.ensureResolved(compiler);
90 Constant value = annotation.value; 92 PrimitiveConstant value = annotation.value;
91 Expect.stringEquals('xyz', value.value.slowToString()); 93 Expect.stringEquals('xyz', value.value.slowToString());
92 94
93 checkPosition(annotation, annotation.cachedNode, source3, compiler); 95 checkPosition(annotation, annotation.cachedNode, source3, compiler);
94 }); 96 });
95 97
96 // Ensure that each repeated annotation has a unique instance of 98 // Ensure that each repeated annotation has a unique instance of
97 // [MetadataAnnotation]. 99 // [MetadataAnnotation].
98 var source4 = """const native = 'xyz'; 100 var source4 = """const native = 'xyz';
99 class Foo { 101 class Foo {
100 @native @native 102 @native @native
101 $declaration 103 $declaration
102 } 104 }
103 main() {}"""; 105 main() {}""";
104 106
105 compileAndCheck(source4, 'Foo', (compiler, element) { 107 compileAndCheck(source4, 'Foo', (compiler, element) {
106 compiler.enqueuer.resolution.queueIsClosed = false; 108 compiler.enqueuer.resolution.queueIsClosed = false;
107 Expect.equals(0, length(element.metadata)); 109 Expect.equals(0, length(element.metadata));
108 element.ensureResolved(compiler); 110 element.ensureResolved(compiler);
109 Expect.equals(0, length(element.metadata)); 111 Expect.equals(0, length(element.metadata));
110 element = element.lookupLocalMember(name); 112 element = element.lookupLocalMember(name);
111 Expect.equals(2, length(element.metadata)); 113 Expect.equals(2, length(element.metadata));
112 PartialMetadataAnnotation annotation1 = element.metadata.head; 114 PartialMetadataAnnotation annotation1 = element.metadata.head;
113 PartialMetadataAnnotation annotation2 = element.metadata.tail.head; 115 PartialMetadataAnnotation annotation2 = element.metadata.tail.head;
114 annotation1.ensureResolved(compiler); 116 annotation1.ensureResolved(compiler);
115 annotation2.ensureResolved(compiler); 117 annotation2.ensureResolved(compiler);
116 Expect.isFalse(identical(annotation1, annotation2), 118 Expect.isFalse(identical(annotation1, annotation2),
117 'expected unique instances'); 119 'expected unique instances');
118 Expect.notEquals(annotation1, annotation2, 'expected unequal instances'); 120 Expect.notEquals(annotation1, annotation2, 'expected unequal instances');
119 Constant value1 = annotation1.value; 121 PrimitiveConstant value1 = annotation1.value;
120 Constant value2 = annotation2.value; 122 PrimitiveConstant value2 = annotation2.value;
121 Expect.identical(value1, value2, 'expected same compile-time constant'); 123 Expect.identical(value1, value2, 'expected same compile-time constant');
122 Expect.stringEquals('xyz', value1.value.slowToString()); 124 Expect.stringEquals('xyz', value1.value.slowToString());
123 Expect.stringEquals('xyz', value2.value.slowToString()); 125 Expect.stringEquals('xyz', value2.value.slowToString());
124 126
125 checkPosition(annotation1, annotation1.cachedNode, source4, compiler); 127 checkPosition(annotation1, annotation1.cachedNode, source4, compiler);
126 checkPosition(annotation1, annotation2.cachedNode, source4, compiler); 128 checkPosition(annotation1, annotation2.cachedNode, source4, compiler);
127 }); 129 });
128 } 130 }
129 131
130 void testClassMetadata() { 132 void testClassMetadata() {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 asyncTest(() => compiler.runCompiler(uri).then((_) { 164 asyncTest(() => compiler.runCompiler(uri).then((_) {
163 compiler.enqueuer.resolution.queueIsClosed = false; 165 compiler.enqueuer.resolution.queueIsClosed = false;
164 LibraryElement element = compiler.libraries['$uri']; 166 LibraryElement element = compiler.libraries['$uri'];
165 Expect.isNotNull(element, 'Cannot find $uri'); 167 Expect.isNotNull(element, 'Cannot find $uri');
166 168
167 Link<MetadataAnnotation> metadata = extractMetadata(element); 169 Link<MetadataAnnotation> metadata = extractMetadata(element);
168 Expect.equals(1, length(metadata)); 170 Expect.equals(1, length(metadata));
169 171
170 PartialMetadataAnnotation annotation = metadata.head; 172 PartialMetadataAnnotation annotation = metadata.head;
171 annotation.ensureResolved(compiler); 173 annotation.ensureResolved(compiler);
172 Constant value = annotation.value; 174 PrimitiveConstant value = annotation.value;
173 Expect.stringEquals('xyz', value.value.slowToString()); 175 Expect.stringEquals('xyz', value.value.slowToString());
174 176
175 checkPosition(annotation, annotation.cachedNode, source, compiler); 177 checkPosition(annotation, annotation.cachedNode, source, compiler);
176 })); 178 }));
177 } 179 }
178 180
179 var source; 181 var source;
180 182
181 source = """@native 183 source = """@native
182 library foo; 184 library foo;
(...skipping 26 matching lines...) Expand all
209 compileAndCheckLibrary(source, 211 compileAndCheckLibrary(source,
210 (e) => e.compilationUnits.first.partTag.metadata); 212 (e) => e.compilationUnits.first.partTag.metadata);
211 } 213 }
212 214
213 void main() { 215 void main() {
214 testClassMetadata(); 216 testClassMetadata();
215 testTopLevelMethodMetadata(); 217 testTopLevelMethodMetadata();
216 testTopLevelFieldMetadata(); 218 testTopLevelFieldMetadata();
217 testLibraryTags(); 219 testLibraryTags();
218 } 220 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/memory_source_file_helper.dart ('k') | tests/compiler/dart2js/mirror_helper_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698