Skip to content

Commit

Permalink
[cfe] Remove external dependency of SourceMemberBuilder.build
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
johnniwinther authored and Commit Bot committed Jun 27, 2022
1 parent b153d46 commit 7f85661
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 34 deletions.
Expand Up @@ -200,17 +200,16 @@ class DeclaredSourceConstructorBuilder extends SourceFunctionBuilderImpl

@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);
}
}

bool _hasBeenBuilt = false;

@override
Constructor build() {
void _build() {
if (!_hasBeenBuilt) {
buildFunction();
_constructor.function.fileOffset = charOpenParenOffset;
Expand Down Expand Up @@ -248,7 +247,6 @@ class DeclaredSourceConstructorBuilder extends SourceFunctionBuilderImpl
.registerConstructorToBeInferred(_constructor, this);
}
}
return _constructor;
}

@override
Expand Down
14 changes: 6 additions & 8 deletions pkg/front_end/lib/src/fasta/source/source_enum_builder.dart
Expand Up @@ -561,7 +561,6 @@ class SourceEnumBuilder extends SourceClassBuilder {

@override
Class build(LibraryBuilder coreLibrary) {
cls.isEnum = true;
intType.resolveIn(coreLibrary.scope, charOffset, fileUri, libraryBuilder);
stringType.resolveIn(
coreLibrary.scope, charOffset, fileUri, libraryBuilder);
Expand All @@ -572,22 +571,21 @@ class SourceEnumBuilder extends SourceClassBuilder {

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!) {
if (enumConstantInfo != null) {
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
Expand All @@ -597,7 +595,8 @@ class SourceEnumBuilder extends SourceClassBuilder {
// 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(
Expand Down Expand Up @@ -625,7 +624,7 @@ class SourceEnumBuilder extends SourceClassBuilder {
}
}

return super.build(coreLibrary);
return cls;
}

DartType buildElement(SourceFieldBuilder fieldBuilder, CoreTypes coreTypes) {
Expand Down Expand Up @@ -778,7 +777,6 @@ class SourceEnumBuilder extends SourceClassBuilder {
Builder declaration = firstMemberNamed(enumConstantInfo.name)!;
if (declaration.isField) {
SourceFieldBuilder fieldBuilder = declaration as SourceFieldBuilder;
fieldBuilder.build();
values.add(new StaticGet(fieldBuilder.field));
}
}
Expand Down
15 changes: 6 additions & 9 deletions pkg/front_end/lib/src/fasta/source/source_factory_builder.dart
Expand Up @@ -133,15 +133,14 @@ class SourceFactoryBuilder extends SourceFunctionBuilderImpl {

@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 =
Expand All @@ -160,7 +159,6 @@ class SourceFactoryBuilder extends SourceFunctionBuilderImpl {
enclosingClass: classBuilder!.cls,
libraryBuilder: libraryBuilder);
}
return _procedureInternal;
}

bool _hasBuiltOutlines = false;
Expand Down Expand Up @@ -341,15 +339,15 @@ class RedirectingFactoryBuilder extends SourceFactoryBuilder {

@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 =
Expand All @@ -374,7 +372,6 @@ class RedirectingFactoryBuilder extends SourceFactoryBuilder {
implementationConstructor: _procedureInternal,
libraryBuilder: libraryBuilder);
}
return _procedureInternal;
}

@override
Expand Down
4 changes: 2 additions & 2 deletions pkg/front_end/lib/src/fasta/source/source_field_builder.dart
Expand Up @@ -375,12 +375,12 @@ class SourceFieldBuilder extends SourceMemberBuilderImpl

@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);
}
Expand Down
Expand Up @@ -474,8 +474,6 @@ abstract class SourceFunctionBuilderImpl extends SourceMemberBuilderImpl
}
}

Member build();

@override
void becomeNative(SourceLoader loader) {
MemberBuilder constructor = loader.getNativeAnnotation();
Expand Down
14 changes: 6 additions & 8 deletions pkg/front_end/lib/src/fasta/source/source_procedure_builder.dart
Expand Up @@ -232,20 +232,20 @@ class SourceProcedureBuilder extends SourceFunctionBuilderImpl

@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(
Expand All @@ -259,8 +259,7 @@ class SourceProcedureBuilder extends SourceFunctionBuilderImpl
}
}

@override
Procedure build() {
void _build() {
buildFunction();
_procedure.function.fileOffset = charOpenParenOffset;
_procedure.function.fileEndOffset = _procedure.fileEndOffset;
Expand All @@ -281,7 +280,6 @@ class SourceProcedureBuilder extends SourceFunctionBuilderImpl
_buildExtensionTearOff(libraryBuilder, parent as ExtensionBuilder);
updatePrivateMemberName(extensionTearOff!, libraryBuilder);
}
return _procedure;
}

/// Creates a top level function that creates a tear off of an extension
Expand Down

0 comments on commit 7f85661

Please sign in to comment.