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

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

Issue 17759007: First pass at asynchronous input loading in dart2js. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comments Created 7 years, 3 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) 2013, the Dart project authors. Please see the AUTHORS file 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 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 7 import
7 '../../../sdk/lib/_internal/compiler/implementation/types/types.dart' 8 '../../../sdk/lib/_internal/compiler/implementation/types/types.dart'
8 show ContainerTypeMask, TypeMask; 9 show ContainerTypeMask, TypeMask;
9 10
10 import 'compiler_helper.dart'; 11 import 'compiler_helper.dart';
11 import 'parser_helper.dart'; 12 import 'parser_helper.dart';
12 13
13 14
14 String generateTest(String listAllocation) { 15 String generateTest(String listAllocation) {
15 return """ 16 return """
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 doTest('[]', nullify: false); // Test literal list. 183 doTest('[]', nullify: false); // Test literal list.
183 doTest('new List()', nullify: false); // Test growable list. 184 doTest('new List()', nullify: false); // Test growable list.
184 doTest('new List(1)', nullify: true); // Test fixed list. 185 doTest('new List(1)', nullify: true); // Test fixed list.
185 doTest('new List.filled(1, 0)', nullify: false); // Test List.filled. 186 doTest('new List.filled(1, 0)', nullify: false); // Test List.filled.
186 doTest('new List.filled(1, null)', nullify: true); // Test List.filled. 187 doTest('new List.filled(1, null)', nullify: true); // Test List.filled.
187 } 188 }
188 189
189 void doTest(String allocation, {bool nullify}) { 190 void doTest(String allocation, {bool nullify}) {
190 Uri uri = new Uri(scheme: 'source'); 191 Uri uri = new Uri(scheme: 'source');
191 var compiler = compilerFor(generateTest(allocation), uri); 192 var compiler = compilerFor(generateTest(allocation), uri);
192 compiler.runCompiler(uri); 193 asyncTest(() => compiler.runCompiler(uri).then((_) {
193 var typesTask = compiler.typesTask; 194 var typesTask = compiler.typesTask;
194 var typesInferrer = typesTask.typesInferrer; 195 var typesInferrer = typesTask.typesInferrer;
195 196
196 checkType(String name, type) { 197 checkType(String name, type) {
197 var element = findElement(compiler, name); 198 var element = findElement(compiler, name);
198 ContainerTypeMask mask = typesInferrer.getTypeOfElement(element); 199 ContainerTypeMask mask = typesInferrer.getTypeOfElement(element);
199 if (nullify) type = type.nullable(); 200 if (nullify) type = type.nullable();
200 Expect.equals(type, mask.elementType.simplify(compiler), name); 201 Expect.equals(type, mask.elementType.simplify(compiler), name);
201 } 202 }
202 203
203 checkType('listInField', typesTask.numType); 204 checkType('listInField', typesTask.numType);
204 checkType('listPassedToMethod', typesTask.numType); 205 checkType('listPassedToMethod', typesTask.numType);
205 checkType('listReturnedFromMethod', typesTask.numType); 206 checkType('listReturnedFromMethod', typesTask.numType);
206 checkType('listUsedWithCascade', typesTask.numType); 207 checkType('listUsedWithCascade', typesTask.numType);
207 checkType('listUsedInClosure', typesTask.numType); 208 checkType('listUsedInClosure', typesTask.numType);
208 checkType('listPassedToSelector', typesTask.numType); 209 checkType('listPassedToSelector', typesTask.numType);
209 checkType('listReturnedFromSelector', typesTask.numType); 210 checkType('listReturnedFromSelector', typesTask.numType);
210 checkType('listUsedWithAddAndInsert', typesTask.numType); 211 checkType('listUsedWithAddAndInsert', typesTask.numType);
211 checkType('listUsedWithConstraint', typesTask.numType); 212 checkType('listUsedWithConstraint', typesTask.numType);
212 checkType('listEscapingFromSetter', typesTask.numType); 213 checkType('listEscapingFromSetter', typesTask.numType);
213 checkType('listUsedInLocal', typesTask.numType); 214 checkType('listUsedInLocal', typesTask.numType);
214 checkType('listEscapingInSetterValue', typesTask.numType); 215 checkType('listEscapingInSetterValue', typesTask.numType);
215 checkType('listEscapingInIndex', typesTask.numType); 216 checkType('listEscapingInIndex', typesTask.numType);
216 checkType('listEscapingInIndexSet', typesTask.intType); 217 checkType('listEscapingInIndexSet', typesTask.intType);
217 checkType('listEscapingTwiceInIndexSet', typesTask.numType); 218 checkType('listEscapingTwiceInIndexSet', typesTask.numType);
218 checkType('listSetInNonFinalField', typesTask.numType); 219 checkType('listSetInNonFinalField', typesTask.numType);
219 checkType('listWithChangedLength', typesTask.intType.nullable()); 220 checkType('listWithChangedLength', typesTask.intType.nullable());
220 221
221 checkType('listPassedToClosure', typesTask.dynamicType); 222 checkType('listPassedToClosure', typesTask.dynamicType);
222 checkType('listReturnedFromClosure', typesTask.dynamicType); 223 checkType('listReturnedFromClosure', typesTask.dynamicType);
223 checkType('listUsedWithNonOkSelector', typesTask.dynamicType); 224 checkType('listUsedWithNonOkSelector', typesTask.dynamicType);
224 checkType('listPassedAsOptionalParameter', typesTask.dynamicType); 225 checkType('listPassedAsOptionalParameter', typesTask.dynamicType);
225 checkType('listPassedAsNamedParameter', typesTask.dynamicType); 226 checkType('listPassedAsNamedParameter', typesTask.dynamicType);
226 227
227 if (!allocation.contains('filled')) { 228 if (!allocation.contains('filled')) {
228 checkType('listUnset', new TypeMask.nonNullEmpty()); 229 checkType('listUnset', new TypeMask.nonNullEmpty());
229 checkType('listOnlySetWithConstraint', new TypeMask.nonNullEmpty()); 230 checkType('listOnlySetWithConstraint', new TypeMask.nonNullEmpty());
230 } 231 }
232 }));
231 } 233 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/list_tracer_node_type_test.dart ('k') | tests/compiler/dart2js/lookup_member_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698