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

Unified Diff: pkg/front_end/lib/src/fasta/kernel/kernel_field_builder.dart

Issue 2850683004: Get astBuilder and typeInferenceEngine from SourceLoader. (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/kernel/kernel_field_builder.dart
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_field_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_field_builder.dart
index bf5c7a973abdc604894ab3d5965f47561ef4e162..b1a05b998cf02b5eca3861e0849fa3f76e4b882e 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_field_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_field_builder.dart
@@ -4,8 +4,6 @@
library fasta.kernel_field_builder;
-import 'package:front_end/src/fasta/builder/ast_factory.dart' show AstFactory;
-
import 'package:front_end/src/fasta/kernel/body_builder.dart' show BodyBuilder;
import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart'
@@ -18,37 +16,22 @@ import 'package:front_end/src/fasta/scanner/token.dart' show Token;
import 'package:front_end/src/fasta/builder/class_builder.dart'
show ClassBuilder;
-import 'package:front_end/src/fasta/type_inference/type_inference_engine.dart'
- show TypeInferenceEngine;
+import 'package:front_end/src/fasta/source/source_library_builder.dart'
+ show SourceLibraryBuilder;
import 'package:kernel/ast.dart' show Expression, Field, Name;
import 'kernel_builder.dart'
- show
- Builder,
- FieldBuilder,
- KernelTypeBuilder,
- LibraryBuilder,
- MetadataBuilder;
+ show Builder, FieldBuilder, KernelTypeBuilder, MetadataBuilder;
class KernelFieldBuilder extends FieldBuilder<Expression> {
- final AstFactory astFactory;
- final TypeInferenceEngine typeInferenceEngine;
final Field field;
final List<MetadataBuilder> metadata;
final KernelTypeBuilder type;
final Token initializerToken;
- KernelFieldBuilder(
- this.astFactory,
- this.typeInferenceEngine,
- this.metadata,
- this.type,
- String name,
- int modifiers,
- Builder compilationUnit,
- int charOffset,
- this.initializerToken)
+ KernelFieldBuilder(this.metadata, this.type, String name, int modifiers,
+ Builder compilationUnit, int charOffset, this.initializerToken)
: field = new KernelField(null, fileUri: compilationUnit?.relativeFileUri)
..fileOffset = charOffset,
super(name, modifiers, compilationUnit, charOffset);
@@ -57,7 +40,7 @@ class KernelFieldBuilder extends FieldBuilder<Expression> {
field.initializer = value..parent = field;
}
- Field build(LibraryBuilder library) {
+ Field build(SourceLibraryBuilder library) {
field.name ??= new Name(name, library.target);
if (type != null) {
field.type = type.build(library);
@@ -70,7 +53,7 @@ class KernelFieldBuilder extends FieldBuilder<Expression> {
..hasImplicitSetter = isInstanceMember && !isConst && !isFinal
..isStatic = !isInstanceMember;
if (initializerToken != null) {
- typeInferenceEngine.recordField(field);
+ library.loader.typeInferenceEngine.recordField(field);
}
return field;
}
@@ -78,13 +61,15 @@ class KernelFieldBuilder extends FieldBuilder<Expression> {
Field get target => field;
@override
- void prepareInitializerInference(TypeInferenceEngine typeInferenceEngine,
- LibraryBuilder library, ClassBuilder currentClass) {
+ void prepareInitializerInference(
+ SourceLibraryBuilder library, ClassBuilder currentClass) {
if (initializerToken != null) {
var memberScope =
currentClass == null ? library.scope : currentClass.scope;
// TODO(paulberry): Is it correct to pass library.uri into BodyBuilder, or
// should it be the part URI?
+ var typeInferenceEngine = library.loader.typeInferenceEngine;
+ var astFactory = library.loader.astFactory;
var typeInferrer = typeInferenceEngine.createTopLevelTypeInferrer(field);
var bodyBuilder = new BodyBuilder(
library,

Powered by Google App Engine
This is Rietveld 408576698