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 |