[cfe] Remove external dependency of SourceMemberBuilder.build
Change-Id: I58d6be2bc6f72a17d8d15a05120a060c857369dd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/249613
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
diff --git a/pkg/front_end/lib/src/fasta/source/source_constructor_builder.dart b/pkg/front_end/lib/src/fasta/source/source_constructor_builder.dart
index 8361256..148e2b6 100644
--- a/pkg/front_end/lib/src/fasta/source/source_constructor_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_constructor_builder.dart
@@ -200,8 +200,8 @@
@override
void buildMembers(void Function(Member, BuiltMemberKind) f) {
- Member member = build();
- f(member, BuiltMemberKind.Constructor);
+ _build();
+ f(_constructor, BuiltMemberKind.Constructor);
if (_constructorTearOff != null) {
f(_constructorTearOff!, BuiltMemberKind.Method);
}
@@ -209,8 +209,7 @@
bool _hasBeenBuilt = false;
- @override
- Constructor build() {
+ void _build() {
if (!_hasBeenBuilt) {
buildFunction();
_constructor.function.fileOffset = charOpenParenOffset;
@@ -248,7 +247,6 @@
.registerConstructorToBeInferred(_constructor, this);
}
}
- return _constructor;
}
@override
diff --git a/pkg/front_end/lib/src/fasta/source/source_enum_builder.dart b/pkg/front_end/lib/src/fasta/source/source_enum_builder.dart
index a88180b..8b8f7b2 100644
--- a/pkg/front_end/lib/src/fasta/source/source_enum_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_enum_builder.dart
@@ -561,7 +561,6 @@
@override
Class build(LibraryBuilder coreLibrary) {
- cls.isEnum = true;
intType.resolveIn(coreLibrary.scope, charOffset, fileUri, libraryBuilder);
stringType.resolveIn(
coreLibrary.scope, charOffset, fileUri, libraryBuilder);
@@ -572,6 +571,9 @@
listType.resolveIn(coreLibrary.scope, charOffset, fileUri, libraryBuilder);
+ Class cls = super.build(coreLibrary);
+ cls.isEnum = true;
+
List<Expression> values = <Expression>[];
if (enumConstantInfos != null) {
for (EnumConstantInfo? enumConstantInfo in enumConstantInfos!) {
@@ -579,15 +581,11 @@
Builder declaration = firstMemberNamed(enumConstantInfo.name)!;
if (declaration.isField) {
SourceFieldBuilder fieldBuilder = declaration as SourceFieldBuilder;
- fieldBuilder.build();
values.add(new StaticGet(fieldBuilder.field));
}
}
}
}
- SourceFieldBuilder valuesBuilder =
- firstMemberNamed("values") as SourceFieldBuilder;
- valuesBuilder.build();
// The super initializer for the synthesized default constructor is
// inserted here if the enum's supertype is _Enum to preserve the legacy
@@ -597,7 +595,8 @@
// building.
if (identical(this.supertypeBuilder, enumType)) {
if (synthesizedDefaultConstructorBuilder != null) {
- Constructor constructor = synthesizedDefaultConstructorBuilder!.build();
+ Constructor constructor =
+ synthesizedDefaultConstructorBuilder!.constructor;
ClassBuilder objectClass = objectType.declaration as ClassBuilder;
ClassBuilder enumClass = enumType.declaration as ClassBuilder;
MemberBuilder? superConstructor = enumClass.findConstructorOrFactory(
@@ -625,7 +624,7 @@
}
}
- return super.build(coreLibrary);
+ return cls;
}
DartType buildElement(SourceFieldBuilder fieldBuilder, CoreTypes coreTypes) {
@@ -778,7 +777,6 @@
Builder declaration = firstMemberNamed(enumConstantInfo.name)!;
if (declaration.isField) {
SourceFieldBuilder fieldBuilder = declaration as SourceFieldBuilder;
- fieldBuilder.build();
values.add(new StaticGet(fieldBuilder.field));
}
}
diff --git a/pkg/front_end/lib/src/fasta/source/source_factory_builder.dart b/pkg/front_end/lib/src/fasta/source/source_factory_builder.dart
index 86e3ca3..ec7ffb5 100644
--- a/pkg/front_end/lib/src/fasta/source/source_factory_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_factory_builder.dart
@@ -133,15 +133,14 @@
@override
void buildMembers(void Function(Member, BuiltMemberKind) f) {
- Member member = build();
- f(member, BuiltMemberKind.Method);
+ _build();
+ f(_procedureInternal, BuiltMemberKind.Method);
if (_factoryTearOff != null) {
f(_factoryTearOff!, BuiltMemberKind.Method);
}
}
- @override
- Procedure build() {
+ void _build() {
buildFunction();
_procedureInternal.function.fileOffset = charOpenParenOffset;
_procedureInternal.function.fileEndOffset =
@@ -160,7 +159,6 @@
enclosingClass: classBuilder!.cls,
libraryBuilder: libraryBuilder);
}
- return _procedureInternal;
}
bool _hasBuiltOutlines = false;
@@ -341,15 +339,15 @@
@override
void buildMembers(void Function(Member, BuiltMemberKind) f) {
- Member member = build();
- f(member, BuiltMemberKind.RedirectingFactory);
+ _build();
+ f(_procedureInternal, BuiltMemberKind.RedirectingFactory);
if (_factoryTearOff != null) {
f(_factoryTearOff!, BuiltMemberKind.Method);
}
}
@override
- Procedure build() {
+ void _build() {
buildFunction();
_procedureInternal.function.fileOffset = charOpenParenOffset;
_procedureInternal.function.fileEndOffset =
@@ -374,7 +372,6 @@
implementationConstructor: _procedureInternal,
libraryBuilder: libraryBuilder);
}
- return _procedureInternal;
}
@override
diff --git a/pkg/front_end/lib/src/fasta/source/source_field_builder.dart b/pkg/front_end/lib/src/fasta/source/source_field_builder.dart
index 00682eb..b05b07b 100644
--- a/pkg/front_end/lib/src/fasta/source/source_field_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_field_builder.dart
@@ -375,12 +375,12 @@
@override
void buildMembers(void Function(Member, BuiltMemberKind) f) {
- build();
+ _build();
_fieldEncoding.registerMembers(libraryBuilder, this, f);
}
/// Builds the core AST structures for this field as needed for the outline.
- void build() {
+ void _build() {
if (type is! InferableTypeBuilder) {
fieldType = type.build(libraryBuilder, TypeUse.fieldType);
}
diff --git a/pkg/front_end/lib/src/fasta/source/source_function_builder.dart b/pkg/front_end/lib/src/fasta/source/source_function_builder.dart
index fe0eb20..d64c8d3 100644
--- a/pkg/front_end/lib/src/fasta/source/source_function_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_function_builder.dart
@@ -474,8 +474,6 @@
}
}
- Member build();
-
@override
void becomeNative(SourceLoader loader) {
MemberBuilder constructor = loader.getNativeAnnotation();
diff --git a/pkg/front_end/lib/src/fasta/source/source_procedure_builder.dart b/pkg/front_end/lib/src/fasta/source/source_procedure_builder.dart
index 2d6873b..9588563 100644
--- a/pkg/front_end/lib/src/fasta/source/source_procedure_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_procedure_builder.dart
@@ -232,20 +232,20 @@
@override
void buildMembers(void Function(Member, BuiltMemberKind) f) {
- Member member = build();
+ _build();
if (isExtensionMethod) {
switch (kind) {
case ProcedureKind.Method:
- f(member, BuiltMemberKind.ExtensionMethod);
+ f(_procedure, BuiltMemberKind.ExtensionMethod);
break;
case ProcedureKind.Getter:
- f(member, BuiltMemberKind.ExtensionGetter);
+ f(_procedure, BuiltMemberKind.ExtensionGetter);
break;
case ProcedureKind.Setter:
- f(member, BuiltMemberKind.ExtensionSetter);
+ f(_procedure, BuiltMemberKind.ExtensionSetter);
break;
case ProcedureKind.Operator:
- f(member, BuiltMemberKind.ExtensionOperator);
+ f(_procedure, BuiltMemberKind.ExtensionOperator);
break;
case ProcedureKind.Factory:
throw new UnsupportedError(
@@ -259,8 +259,7 @@
}
}
- @override
- Procedure build() {
+ void _build() {
buildFunction();
_procedure.function.fileOffset = charOpenParenOffset;
_procedure.function.fileEndOffset = _procedure.fileEndOffset;
@@ -281,7 +280,6 @@
_buildExtensionTearOff(libraryBuilder, parent as ExtensionBuilder);
updatePrivateMemberName(extensionTearOff!, libraryBuilder);
}
- return _procedure;
}
/// Creates a top level function that creates a tear off of an extension