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

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

Issue 2999723002: Add stub versions of KernelInferrerEngine and friends (Closed)
Patch Set: Updated cf. comments Created 3 years, 4 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' show MapTypeMask, TypeMask; 7 import 'package:compiler/src/types/types.dart' show MapTypeMask, TypeMask;
8 8
9 import 'compiler_helper.dart'; 9 import 'compiler_helper.dart';
10 import 'type_mask_test_helper.dart'; 10 import 'type_mask_test_helper.dart';
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 200
201 void main() { 201 void main() {
202 // Test empty literal map 202 // Test empty literal map
203 doTest('{}'); 203 doTest('{}');
204 // Test preset map of <String,uint32> 204 // Test preset map of <String,uint32>
205 doTest('{presetKey : anInt}', "presetKey", "anInt"); 205 doTest('{presetKey : anInt}', "presetKey", "anInt");
206 // Test preset map of <Double,uint32> 206 // Test preset map of <Double,uint32>
207 doTest('{aDouble : anInt}', "aDouble", "anInt"); 207 doTest('{aDouble : anInt}', "aDouble", "anInt");
208 } 208 }
209 209
210 void doTest(String allocation, [String keyElement, String valueElement]) { 210 void doTest(String allocation,
211 [String keyElementName, String valueElementName]) {
211 Uri uri = new Uri(scheme: 'source'); 212 Uri uri = new Uri(scheme: 'source');
212 var compiler = compilerFor(generateTest(allocation), uri, 213 var compiler = compilerFor(generateTest(allocation), uri,
213 expectedErrors: 0, expectedWarnings: 1); 214 expectedErrors: 0, expectedWarnings: 1);
214 asyncTest(() => compiler.run(uri).then((_) { 215 asyncTest(() => compiler.run(uri).then((_) {
215 var keyType, valueType; 216 var keyType, valueType;
216 var typesInferrer = compiler.globalInference.typesInferrerInternal; 217 var typesInferrer = compiler.globalInference.typesInferrerInternal;
217 var closedWorld = typesInferrer.closedWorld; 218 var closedWorld = typesInferrer.closedWorld;
218 var commonMasks = closedWorld.commonMasks; 219 var commonMasks = closedWorld.commonMasks;
219 var emptyType = new TypeMask.nonNullEmpty(); 220 var emptyType = new TypeMask.nonNullEmpty();
220 var aKeyType = 221 MemberElement aKey = findElement(compiler, 'aKey');
221 typesInferrer.getTypeOfMember(findElement(compiler, 'aKey')); 222 var aKeyType = typesInferrer.getTypeOfMember(aKey);
222 if (keyElement != null) { 223 if (keyElementName != null) {
223 keyType = 224 MemberElement keyElement = findElement(compiler, keyElementName);
224 typesInferrer.getTypeOfMember(findElement(compiler, keyElement)); 225 keyType = typesInferrer.getTypeOfMember(keyElement);
225 } 226 }
226 if (valueElement != null) { 227 if (valueElementName != null) {
227 valueType = typesInferrer 228 MemberElement valueElement = findElement(compiler, valueElementName);
228 .getTypeOfMember(findElement(compiler, valueElement)); 229 valueType = typesInferrer.getTypeOfMember(valueElement);
229 } 230 }
230 if (keyType == null) keyType = emptyType; 231 if (keyType == null) keyType = emptyType;
231 if (valueType == null) valueType = emptyType; 232 if (valueType == null) valueType = emptyType;
232 233
233 checkType(String name, keyType, valueType) { 234 checkType(String name, keyType, valueType) {
234 var element = findElement(compiler, name); 235 MemberElement element = findElement(compiler, name);
235 MapTypeMask mask = typesInferrer.getTypeOfMember(element); 236 MapTypeMask mask = typesInferrer.getTypeOfMember(element);
236 Expect.equals(keyType, simplify(mask.keyType, closedWorld), name); 237 Expect.equals(keyType, simplify(mask.keyType, closedWorld), name);
237 Expect.equals(valueType, simplify(mask.valueType, closedWorld), name); 238 Expect.equals(valueType, simplify(mask.valueType, closedWorld), name);
238 } 239 }
239 240
240 K(TypeMask other) => 241 K(TypeMask other) =>
241 simplify(keyType.union(other, closedWorld), closedWorld); 242 simplify(keyType.union(other, closedWorld), closedWorld);
242 V(TypeMask other) => 243 V(TypeMask other) =>
243 simplify(valueType.union(other, closedWorld), closedWorld) 244 simplify(valueType.union(other, closedWorld), closedWorld)
244 .nullable(); 245 .nullable();
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 checkType('mapStoredInListButEscapes', K(commonMasks.dynamicType), 279 checkType('mapStoredInListButEscapes', K(commonMasks.dynamicType),
279 V(commonMasks.dynamicType)); 280 V(commonMasks.dynamicType));
280 checkType('mapStoredInMap', K(aKeyType), V(commonMasks.uint31Type)); 281 checkType('mapStoredInMap', K(aKeyType), V(commonMasks.uint31Type));
281 checkType('mapStoredInMapButEscapes', K(commonMasks.dynamicType), 282 checkType('mapStoredInMapButEscapes', K(commonMasks.dynamicType),
282 V(commonMasks.dynamicType)); 283 V(commonMasks.dynamicType));
283 284
284 checkType('mapUnset', K(emptyType), V(emptyType)); 285 checkType('mapUnset', K(emptyType), V(emptyType));
285 checkType('mapOnlySetWithConstraint', K(aKeyType), V(emptyType)); 286 checkType('mapOnlySetWithConstraint', K(aKeyType), V(emptyType));
286 })); 287 }));
287 } 288 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/map_tracer_keys_test.dart ('k') | tests/compiler/dart2js/simple_inferrer_and_or_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698