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

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

Issue 2278213003: Rename the global inference task and reduce it's API surface by introducing the (Closed)
Patch Set: cl comments Created 4 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
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 'package:compiler/src/types/types.dart' 7 import 'package:compiler/src/types/types.dart'
8 show MapTypeMask, TypeMask; 8 show MapTypeMask, TypeMask;
9 9
10 import 'compiler_helper.dart'; 10 import 'compiler_helper.dart';
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 } 210 }
211 211
212 void doTest(String allocation, [String keyElement, 212 void doTest(String allocation, [String keyElement,
213 String valueElement]) { 213 String valueElement]) {
214 Uri uri = new Uri(scheme: 'source'); 214 Uri uri = new Uri(scheme: 'source');
215 var compiler = compilerFor(generateTest(allocation), uri, 215 var compiler = compilerFor(generateTest(allocation), uri,
216 expectedErrors: 0, expectedWarnings: 1); 216 expectedErrors: 0, expectedWarnings: 1);
217 var classWorld = compiler.world; 217 var classWorld = compiler.world;
218 asyncTest(() => compiler.run(uri).then((_) { 218 asyncTest(() => compiler.run(uri).then((_) {
219 var keyType, valueType; 219 var keyType, valueType;
220 var typesTask = compiler.typesTask; 220 var commonMasks = compiler.commonMasks;
221 var typesInferrer = typesTask.typesInferrer; 221 var typesInferrer = compiler.globalInference.typesInferrer;
222 var emptyType = new TypeMask.nonNullEmpty(); 222 var emptyType = new TypeMask.nonNullEmpty();
223 var aKeyType = 223 var aKeyType =
224 typesInferrer.getTypeOfElement(findElement(compiler, 'aKey')); 224 typesInferrer.getTypeOfElement(findElement(compiler, 'aKey'));
225 if (keyElement != null) { 225 if (keyElement != null) {
226 keyType = 226 keyType =
227 typesInferrer.getTypeOfElement(findElement(compiler, keyElement)); 227 typesInferrer.getTypeOfElement(findElement(compiler, keyElement));
228 } 228 }
229 if (valueElement != null) { 229 if (valueElement != null) {
230 valueType = 230 valueType =
231 typesInferrer.getTypeOfElement(findElement(compiler, valueElement)); 231 typesInferrer.getTypeOfElement(findElement(compiler, valueElement));
232 } 232 }
233 if (keyType == null) keyType = emptyType; 233 if (keyType == null) keyType = emptyType;
234 if (valueType == null) valueType = emptyType; 234 if (valueType == null) valueType = emptyType;
235 235
236 checkType(String name, keyType, valueType) { 236 checkType(String name, keyType, valueType) {
237 var element = findElement(compiler, name); 237 var element = findElement(compiler, name);
238 MapTypeMask mask = typesInferrer.getTypeOfElement(element); 238 MapTypeMask mask = typesInferrer.getTypeOfElement(element);
239 Expect.equals(keyType, simplify(mask.keyType, compiler), name); 239 Expect.equals(keyType, simplify(mask.keyType, compiler), name);
240 Expect.equals(valueType, simplify(mask.valueType, compiler), name); 240 Expect.equals(valueType, simplify(mask.valueType, compiler), name);
241 } 241 }
242 242
243 K(TypeMask other) => simplify(keyType.union(other, classWorld), compiler); 243 K(TypeMask other) => simplify(keyType.union(other, classWorld), compiler);
244 V(TypeMask other) => 244 V(TypeMask other) =>
245 simplify(valueType.union(other, classWorld), compiler).nullable(); 245 simplify(valueType.union(other, classWorld), compiler).nullable();
246 246
247 checkType('mapInField', K(aKeyType), V(typesTask.numType)); 247 checkType('mapInField', K(aKeyType), V(commonMasks.numType));
248 checkType('mapPassedToMethod', K(aKeyType), V(typesTask.numType)); 248 checkType('mapPassedToMethod', K(aKeyType), V(commonMasks.numType));
249 checkType('mapReturnedFromMethod', K(aKeyType), V(typesTask.numType)); 249 checkType('mapReturnedFromMethod', K(aKeyType), V(commonMasks.numType));
250 checkType('mapUsedWithCascade', K(aKeyType), V(typesTask.numType)); 250 checkType('mapUsedWithCascade', K(aKeyType), V(commonMasks.numType));
251 checkType('mapUsedInClosure', K(aKeyType), V(typesTask.numType)); 251 checkType('mapUsedInClosure', K(aKeyType), V(commonMasks.numType));
252 checkType('mapPassedToSelector', K(aKeyType), V(typesTask.numType)); 252 checkType('mapPassedToSelector', K(aKeyType), V(commonMasks.numType));
253 checkType('mapReturnedFromSelector', K(aKeyType), V(typesTask.numType)); 253 checkType('mapReturnedFromSelector', K(aKeyType), V(commonMasks.numType));
254 checkType('mapUsedWithConstraint', K(aKeyType), V(typesTask.uint31Type)); 254 checkType('mapUsedWithConstraint', K(aKeyType), V(commonMasks.uint31Type));
255 checkType('mapEscapingFromSetter', K(aKeyType), V(typesTask.numType)); 255 checkType('mapEscapingFromSetter', K(aKeyType), V(commonMasks.numType));
256 checkType('mapUsedInLocal', K(aKeyType), V(typesTask.numType)); 256 checkType('mapUsedInLocal', K(aKeyType), V(commonMasks.numType));
257 checkType('mapEscapingInSetterValue', K(aKeyType), V(typesTask.numType)); 257 checkType('mapEscapingInSetterValue', K(aKeyType), V(commonMasks.numType));
258 checkType('mapEscapingInIndex', K(aKeyType), V(typesTask.numType)); 258 checkType('mapEscapingInIndex', K(aKeyType), V(commonMasks.numType));
259 checkType('mapEscapingInIndexSet', K(aKeyType), V(typesTask.uint31Type)); 259 checkType('mapEscapingInIndexSet', K(aKeyType), V(commonMasks.uint31Type));
260 checkType('mapEscapingTwiceInIndexSet', K(aKeyType), V(typesTask.numType)); 260 checkType('mapEscapingTwiceInIndexSet',
261 checkType('mapSetInNonFinalField', K(aKeyType), V(typesTask.numType)); 261 K(aKeyType), V(commonMasks.numType));
262 checkType('mapSetInNonFinalField', K(aKeyType), V(commonMasks.numType));
262 263
263 checkType('mapPassedToClosure', K(typesTask.dynamicType), 264 checkType('mapPassedToClosure', K(commonMasks.dynamicType),
264 V(typesTask.dynamicType)); 265 V(commonMasks.dynamicType));
265 checkType('mapReturnedFromClosure', K(typesTask.dynamicType), 266 checkType('mapReturnedFromClosure', K(commonMasks.dynamicType),
266 V(typesTask.dynamicType)); 267 V(commonMasks.dynamicType));
267 checkType('mapUsedWithNonOkSelector', K(typesTask.dynamicType), 268 checkType('mapUsedWithNonOkSelector', K(commonMasks.dynamicType),
268 V(typesTask.dynamicType)); 269 V(commonMasks.dynamicType));
269 checkType('mapPassedAsOptionalParameter', K(aKeyType), 270 checkType('mapPassedAsOptionalParameter', K(aKeyType),
270 V(typesTask.numType)); 271 V(commonMasks.numType));
271 checkType('mapPassedAsNamedParameter', K(aKeyType), 272 checkType('mapPassedAsNamedParameter', K(aKeyType),
272 V(typesTask.numType)); 273 V(commonMasks.numType));
273 checkType('mapStoredInList', K(aKeyType), 274 checkType('mapStoredInList', K(aKeyType),
274 V(typesTask.uint31Type)); 275 V(commonMasks.uint31Type));
275 checkType('mapStoredInListButEscapes', K(typesTask.dynamicType), 276 checkType('mapStoredInListButEscapes', K(commonMasks.dynamicType),
276 V(typesTask.dynamicType)); 277 V(commonMasks.dynamicType));
277 checkType('mapStoredInMap', K(aKeyType), V(typesTask.uint31Type)); 278 checkType('mapStoredInMap', K(aKeyType), V(commonMasks.uint31Type));
278 checkType('mapStoredInMapButEscapes', K(typesTask.dynamicType), 279 checkType('mapStoredInMapButEscapes', K(commonMasks.dynamicType),
279 V(typesTask.dynamicType)); 280 V(commonMasks.dynamicType));
280 281
281 checkType('mapUnset', K(emptyType), V(emptyType)); 282 checkType('mapUnset', K(emptyType), V(emptyType));
282 checkType('mapOnlySetWithConstraint', K(aKeyType), V(emptyType)); 283 checkType('mapOnlySetWithConstraint', K(aKeyType), V(emptyType));
283 })); 284 }));
284 } 285 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/map_tracer_keys_test.dart ('k') | tests/compiler/dart2js/memory_compiler.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698