| OLD | NEW |
| 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 library concrete_types_inferrer; | 5 library concrete_types_inferrer; |
| 6 | 6 |
| 7 import 'dart:collection' show Queue, IterableBase; | 7 import 'dart:collection' show |
| 8 Queue, |
| 9 IterableBase; |
| 10 |
| 8 import '../native/native.dart' as native; | 11 import '../native/native.dart' as native; |
| 9 import '../closure.dart' show BoxFieldElement; | 12 import '../closure.dart' show |
| 10 import '../dart2jslib.dart' hide Selector, TypedSelector; | 13 BoxFieldElement; |
| 11 import '../dart_types.dart' show DartType, TypeKind; | 14 import '../compiler.dart' show |
| 15 Compiler; |
| 16 import '../dart_types.dart' show |
| 17 DartType, |
| 18 TypeKind; |
| 19 import '../diagnostics/spannable.dart' show |
| 20 Spannable; |
| 12 import '../elements/elements.dart'; | 21 import '../elements/elements.dart'; |
| 13 import '../tree/tree.dart'; | 22 import '../tree/tree.dart'; |
| 23 import '../types/types.dart' show |
| 24 FlatTypeMask, |
| 25 TypeMask, |
| 26 TypesInferrer, |
| 27 UnionTypeMask; |
| 14 import '../universe/universe.dart'; | 28 import '../universe/universe.dart'; |
| 15 import '../util/util.dart'; | 29 import '../world.dart' show |
| 16 import '../world.dart' show ClassWorld; | 30 ClassWorld; |
| 17 | 31 |
| 18 import 'inferrer_visitor.dart'; | 32 import 'inferrer_visitor.dart'; |
| 19 import '../types/types.dart' show TypeMask, FlatTypeMask, UnionTypeMask, | |
| 20 TypesInferrer; | |
| 21 import 'simple_types_inferrer.dart'; | 33 import 'simple_types_inferrer.dart'; |
| 22 | 34 |
| 23 /** | 35 /** |
| 24 * A singleton concrete type. More precisely, a [BaseType] is one of the | 36 * A singleton concrete type. More precisely, a [BaseType] is one of the |
| 25 * following: | 37 * following: |
| 26 * | 38 * |
| 27 * - a non-asbtract class like [:int:] or [:Uri:] (but not [:List:]) | 39 * - a non-asbtract class like [:int:] or [:Uri:] (but not [:List:]) |
| 28 * - the null base type | 40 * - the null base type |
| 29 * - the unknown base type | 41 * - the unknown base type |
| 30 */ | 42 */ |
| (...skipping 2341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2372 ConcreteType handleLocalGet(Send node, LocalElement local) { | 2384 ConcreteType handleLocalGet(Send node, LocalElement local) { |
| 2373 if (inferrer.testMode) { | 2385 if (inferrer.testMode) { |
| 2374 ConcreteType type = locals.use(local); | 2386 ConcreteType type = locals.use(local); |
| 2375 if (type != null) { | 2387 if (type != null) { |
| 2376 inferrer.augmentInferredType(node, type); | 2388 inferrer.augmentInferredType(node, type); |
| 2377 } | 2389 } |
| 2378 } | 2390 } |
| 2379 return super.handleLocalGet(node, local); | 2391 return super.handleLocalGet(node, local); |
| 2380 } | 2392 } |
| 2381 } | 2393 } |
| OLD | NEW |