OLD | NEW |
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 "package:async_helper/async_helper.dart"; |
7 import 'package:compiler/src/types/types.dart' show ContainerTypeMask, TypeMask; | 7 import 'package:compiler/src/types/types.dart' show ContainerTypeMask, 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 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 Uri uri = new Uri(scheme: 'source'); | 197 Uri uri = new Uri(scheme: 'source'); |
198 var compiler = compilerFor(generateTest(allocation), uri, | 198 var compiler = compilerFor(generateTest(allocation), uri, |
199 expectedErrors: 0, expectedWarnings: 1); | 199 expectedErrors: 0, expectedWarnings: 1); |
200 asyncTest(() => compiler.run(uri).then((_) { | 200 asyncTest(() => compiler.run(uri).then((_) { |
201 var typesInferrer = compiler.globalInference.typesInferrerInternal; | 201 var typesInferrer = compiler.globalInference.typesInferrerInternal; |
202 var closedWorld = typesInferrer.closedWorld; | 202 var closedWorld = typesInferrer.closedWorld; |
203 var commonMasks = closedWorld.commonMasks; | 203 var commonMasks = closedWorld.commonMasks; |
204 | 204 |
205 checkType(String name, type) { | 205 checkType(String name, type) { |
206 var element = findElement(compiler, name); | 206 var element = findElement(compiler, name); |
207 ContainerTypeMask mask = typesInferrer.getTypeOfElement(element); | 207 ContainerTypeMask mask = typesInferrer.getTypeOfMember(element); |
208 if (nullify) type = type.nullable(); | 208 if (nullify) type = type.nullable(); |
209 Expect.equals(type, simplify(mask.elementType, closedWorld), name); | 209 Expect.equals(type, simplify(mask.elementType, closedWorld), name); |
210 } | 210 } |
211 | 211 |
212 checkType('listInField', commonMasks.numType); | 212 checkType('listInField', commonMasks.numType); |
213 checkType('listPassedToMethod', commonMasks.numType); | 213 checkType('listPassedToMethod', commonMasks.numType); |
214 checkType('listReturnedFromMethod', commonMasks.numType); | 214 checkType('listReturnedFromMethod', commonMasks.numType); |
215 checkType('listUsedWithCascade', commonMasks.numType); | 215 checkType('listUsedWithCascade', commonMasks.numType); |
216 checkType('listUsedInClosure', commonMasks.numType); | 216 checkType('listUsedInClosure', commonMasks.numType); |
217 checkType('listPassedToSelector', commonMasks.numType); | 217 checkType('listPassedToSelector', commonMasks.numType); |
(...skipping 16 matching lines...) Expand all Loading... |
234 checkType('listPassedAsNamedParameter', commonMasks.numType); | 234 checkType('listPassedAsNamedParameter', commonMasks.numType); |
235 checkType('listStoredInList', commonMasks.uint31Type); | 235 checkType('listStoredInList', commonMasks.uint31Type); |
236 checkType('listStoredInListButEscapes', commonMasks.dynamicType); | 236 checkType('listStoredInListButEscapes', commonMasks.dynamicType); |
237 | 237 |
238 if (!allocation.contains('filled')) { | 238 if (!allocation.contains('filled')) { |
239 checkType('listUnset', new TypeMask.nonNullEmpty()); | 239 checkType('listUnset', new TypeMask.nonNullEmpty()); |
240 checkType('listOnlySetWithConstraint', new TypeMask.nonNullEmpty()); | 240 checkType('listOnlySetWithConstraint', new TypeMask.nonNullEmpty()); |
241 } | 241 } |
242 })); | 242 })); |
243 } | 243 } |
OLD | NEW |