Index: pkg/front_end/lib/src/fasta/source/source_loader.dart |
diff --git a/pkg/front_end/lib/src/fasta/source/source_loader.dart b/pkg/front_end/lib/src/fasta/source/source_loader.dart |
index 4211963cb804808d241cdbcbff57105ded46d637..88475b339d798bd1711f6557bb84546d28ea816b 100644 |
--- a/pkg/front_end/lib/src/fasta/source/source_loader.dart |
+++ b/pkg/front_end/lib/src/fasta/source/source_loader.dart |
@@ -16,13 +16,13 @@ import 'package:front_end/src/fasta/kernel/kernel_ast_factory.dart' |
show KernelAstFactory; |
import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart' |
- show KernelTypeInferrer; |
+ show KernelTypeInferenceEngine; |
import 'package:front_end/src/fasta/kernel/kernel_target.dart' |
show KernelTarget; |
-import 'package:front_end/src/fasta/type_inference/type_inferrer.dart' |
- show TypeInferrer; |
+import 'package:front_end/src/fasta/type_inference/type_inference_engine.dart' |
+ show TypeInferenceEngine; |
import 'package:kernel/ast.dart' show Program; |
@@ -66,7 +66,7 @@ class SourceLoader<L> extends Loader<L> { |
final AstFactory astFactory = new KernelAstFactory(); |
- TypeInferrer topLevelTypeInferrer; |
+ TypeInferenceEngine typeInferenceEngine; |
Instrumentation instrumentation; |
@@ -141,8 +141,7 @@ class SourceLoader<L> extends Loader<L> { |
KernelTarget get target => super.target; |
DietListener createDietListener(LibraryBuilder library) { |
- return new DietListener( |
- library, hierarchy, coreTypes, createLocalTypeInferrer()); |
+ return new DietListener(library, hierarchy, coreTypes, typeInferenceEngine); |
} |
void resolveParts() { |
@@ -379,9 +378,9 @@ class SourceLoader<L> extends Loader<L> { |
ticker.logMs("Checked overrides"); |
} |
- void createTopLevelTypeInferrer() { |
- topLevelTypeInferrer = |
- new KernelTypeInferrer(instrumentation, target.strongMode); |
+ void createTypeInferenceEngine() { |
+ typeInferenceEngine = |
+ new KernelTypeInferenceEngine(instrumentation, target.strongMode); |
} |
/// Performs the first phase of top level initializer inference, which |
@@ -389,12 +388,10 @@ class SourceLoader<L> extends Loader<L> { |
/// that might be subject to type inference, and records dependencies between |
/// them. |
void prepareInitializerInference() { |
- topLevelTypeInferrer.coreTypes = coreTypes; |
- topLevelTypeInferrer.classHierarchy = hierarchy; |
+ typeInferenceEngine.prepareTopLevel(coreTypes, hierarchy); |
builders.forEach((Uri uri, LibraryBuilder library) { |
if (library is SourceLibraryBuilder) { |
- library.prepareInitializerInference( |
- topLevelTypeInferrer, library, null); |
+ library.prepareInitializerInference(typeInferenceEngine, library, null); |
} |
}); |
ticker.logMs("Prepared initializer inference"); |
@@ -404,15 +401,9 @@ class SourceLoader<L> extends Loader<L> { |
/// visit fields and top level variables in topologically-sorted order and |
/// assign their types. |
void performInitializerInference() { |
- topLevelTypeInferrer.performInitializerInference(); |
+ typeInferenceEngine.finishTopLevel(); |
ticker.logMs("Performed initializer inference"); |
} |
- /// Creates the type inferrer that should be used inside of method bodies. |
- TypeInferrer createLocalTypeInferrer() { |
- // For kernel, the top level and local type inferrers are the same. |
- return topLevelTypeInferrer; |
- } |
- |
List<Uri> getDependencies() => sourceBytes.keys.toList(); |
} |