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

Unified Diff: pkg/front_end/lib/src/fasta/source/source_loader.dart

Issue 2830313002: Split up TypeInferrer class. (Closed)
Patch Set: Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
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();
}

Powered by Google App Engine
This is Rietveld 408576698