Skip to content

Commit

Permalink
Version 3.7.0-20.0.dev
Browse files Browse the repository at this point in the history
Merge ac2a58a into dev
  • Loading branch information
Dart CI committed Oct 14, 2024
2 parents fd09ba7 + ac2a58a commit 78fe567
Show file tree
Hide file tree
Showing 29 changed files with 224 additions and 162 deletions.
4 changes: 0 additions & 4 deletions pkg/front_end/lib/src/base/scope.dart
Original file line number Diff line number Diff line change
Expand Up @@ -640,10 +640,6 @@ mixin ErroneousMemberBuilderMixin implements SourceMemberBuilder {
// Coverage-ignore(suite): Not run.
MemberDataForTesting? get dataForTesting => null;

@override
// Coverage-ignore(suite): Not run.
Member get member => throw new UnsupportedError('$runtimeType.member');

@override
// Coverage-ignore(suite): Not run.
Name get memberName => throw new UnsupportedError('$runtimeType.memberName');
Expand Down
11 changes: 4 additions & 7 deletions pkg/front_end/lib/src/builder/member_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,27 +22,24 @@ abstract class MemberBuilder implements Builder {
/// The declared name of this member;
Name get memberName;

/// The [Member] built by this builder;
Member get member;

/// The [Member] to use when reading from this member builder.
///
/// For a field, a getter or a regular method this is the [member] itself.
/// For a field, a getter or a regular method this is the member itself.
/// For an instance extension method this is special tear-off function. For
/// a constructor, an operator, a factory or a setter this is `null`.
Member? get readTarget;

/// The [Member] to use when write to this member builder.
///
/// For an assignable field or a setter this is the [member] itself. For
/// For an assignable field or a setter this is the member itself. For
/// a constructor, a non-assignable field, a getter, an operator or a regular
/// method this is `null`.
Member? get writeTarget;

/// The [Member] to use when invoking this member builder.
///
/// For a constructor, a field, a regular method, a getter, an operator or
/// a factory this is the [member] itself. For a setter this is `null`.
/// a factory this is the member itself. For a setter this is `null`.
Member? get invokeTarget;

/// The members from this builder that are accessible in exports through
Expand Down Expand Up @@ -222,7 +219,7 @@ abstract class BuilderClassMember implements ClassMember {
}

@override
bool get isAbstract => memberBuilder.member.isAbstract;
bool get isAbstract => memberBuilder.isAbstract;

@override
bool get isSynthesized => false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ class DillExtensionFieldBuilder extends DillExtensionMemberBuilder {
Member? get writeTarget => isAssignable ? field : null;

@override
// Coverage-ignore(suite): Not run.
Member get invokeTarget => field;

@override
Expand Down Expand Up @@ -124,6 +123,7 @@ class DillExtensionOperatorBuilder extends DillExtensionMemberBuilder {
super(procedure, descriptor, parent);

@override
// Coverage-ignore(suite): Not run.
Member get member => procedure;

@override
Expand Down Expand Up @@ -158,7 +158,6 @@ class DillExtensionStaticMethodBuilder extends DillExtensionMemberBuilder {
Member? get writeTarget => null;

@override
// Coverage-ignore(suite): Not run.
Member get invokeTarget => procedure;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,6 @@ class DillExtensionTypeFieldBuilder extends DillExtensionTypeMemberBuilder {
Member? get writeTarget => isAssignable ? field : null;

@override
// Coverage-ignore(suite): Not run.
Member get invokeTarget => field;

@override
Expand Down Expand Up @@ -198,7 +197,6 @@ class DillExtensionTypeStaticMethodBuilder
Member? get writeTarget => null;

@override
// Coverage-ignore(suite): Not run.
Member get invokeTarget => procedure;
}

Expand Down Expand Up @@ -251,6 +249,7 @@ class DillExtensionTypeConstructorBuilder extends DillExtensionTypeMemberBuilder
FunctionNode get function => constructor.function;

@override
// Coverage-ignore(suite): Not run.
Procedure get member => constructor;

@override
Expand Down
5 changes: 4 additions & 1 deletion pkg/front_end/lib/src/dill/dill_library_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -471,7 +471,10 @@ class DillLibraryBuilder extends LibraryBuilderImpl {
(declaration is ClassBuilder && node == declaration.cls) ||
(declaration is TypeAliasBuilder &&
reference == declaration.reference) ||
(declaration is MemberBuilder && node == declaration.member) ||
(declaration is MemberBuilder &&
(node == declaration.readTarget ||
node == declaration.invokeTarget ||
node == declaration.writeTarget)) ||
(declaration is ExtensionBuilder &&
reference == declaration.reference) ||
(declaration is ExtensionTypeDeclarationBuilder &&
Expand Down
7 changes: 0 additions & 7 deletions pkg/front_end/lib/src/dill/dill_member_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ abstract class DillMemberBuilder extends MemberBuilderImpl {
DillMemberBuilder(Member member, Builder parent)
: super(parent, member.fileUri, member.fileOffset);

@override
Member get member;

@override
Expand Down Expand Up @@ -127,7 +126,6 @@ class DillFieldBuilder extends DillMemberBuilder implements FieldBuilder {
Member? get writeTarget => isAssignable ? field : null;

@override
// Coverage-ignore(suite): Not run.
Member? get invokeTarget => field;

@override
Expand Down Expand Up @@ -186,7 +184,6 @@ class DillGetterBuilder extends DillProcedureBuilder {
Member? get writeTarget => null;

@override
// Coverage-ignore(suite): Not run.
Member get invokeTarget => procedure;
}

Expand All @@ -199,14 +196,12 @@ class DillSetterBuilder extends DillProcedureBuilder {
Member get member => procedure;

@override
// Coverage-ignore(suite): Not run.
Member? get readTarget => null;

@override
Member get writeTarget => procedure;

@override
// Coverage-ignore(suite): Not run.
Member? get invokeTarget => null;
}

Expand All @@ -222,11 +217,9 @@ class DillMethodBuilder extends DillProcedureBuilder {
Member get readTarget => procedure;

@override
// Coverage-ignore(suite): Not run.
Member? get writeTarget => null;

@override
// Coverage-ignore(suite): Not run.
Member get invokeTarget => procedure;
}

Expand Down
19 changes: 12 additions & 7 deletions pkg/front_end/lib/src/kernel/body_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3313,7 +3313,12 @@ class BodyBuilder extends StackListenerImpl
assert(declaration.isStatic || declaration.isTopLevel);
MemberBuilder memberBuilder = declaration as MemberBuilder;
return new StaticAccessGenerator(
this, nameToken, name, memberBuilder.member, null);
this,
nameToken,
name,
memberBuilder.readTarget,
memberBuilder.invokeTarget,
memberBuilder.writeTarget);
} else if (declaration is PrefixBuilder) {
assert(prefix == null);
// Wildcard import prefixes are non-binding and cannot be used.
Expand Down Expand Up @@ -6515,9 +6520,9 @@ class BodyBuilder extends StackListenerImpl
typeDeclarationBuilder.name,
nameToken.charOffset));
}
target = constructorBuilder.member;
target = constructorBuilder.invokeTarget;
} else {
target = constructorBuilder.member;
target = constructorBuilder.invokeTarget;
}
if (target is Constructor ||
(target is Procedure &&
Expand Down Expand Up @@ -6760,9 +6765,9 @@ class BodyBuilder extends StackListenerImpl
typeDeclarationBuilder.name,
nameToken.charOffset));
}
target = constructorBuilder.member;
target = constructorBuilder.invokeTarget;
} else {
target = constructorBuilder.member;
target = constructorBuilder.invokeTarget;
}
if (typeDeclarationBuilder.isEnum &&
!(libraryFeatures.enhancedEnums.isEnabled &&
Expand Down Expand Up @@ -6796,7 +6801,7 @@ class BodyBuilder extends StackListenerImpl
message = constructorBuilder.message
.withLocation(uri, charOffset, noLength);
} else {
target = constructorBuilder.member;
target = constructorBuilder.invokeTarget;
}
if (target != null) {
return buildStaticInvocation(target, arguments,
Expand Down Expand Up @@ -9089,7 +9094,7 @@ class BodyBuilder extends StackListenerImpl
MemberBuilder constructor =
libraryBuilder.loader.getDuplicatedFieldInitializerError();
Expression invocation = buildStaticInvocation(
constructor.member,
constructor.invokeTarget!,
forest.createArguments(assignmentOffset, <Expression>[
forest.createStringLiteral(assignmentOffset, name)
]),
Expand Down
54 changes: 42 additions & 12 deletions pkg/front_end/lib/src/kernel/body_builder_context.dart
Original file line number Diff line number Diff line change
Expand Up @@ -624,6 +624,8 @@ mixin _MemberBodyBuilderContext<T extends SourceMemberBuilder>
implements BodyBuilderContext {
T get _member;

Member get _builtMember;

@override
AugmentSuperTarget? get augmentSuperTarget {
if (_member.isAugmentation) {
Expand All @@ -633,20 +635,23 @@ mixin _MemberBodyBuilderContext<T extends SourceMemberBuilder>
}

@override
void registerSuperCall() {
_member.member.transformerFlags |= TransformerFlag.superCalls;
}
int get memberCharOffset => _member.charOffset;

@override
int get memberCharOffset => _member.charOffset;
void registerSuperCall() {
_builtMember.transformerFlags |= TransformerFlag.superCalls;
}
}

class FieldBodyBuilderContext extends BodyBuilderContext
with _MemberBodyBuilderContext<SourceFieldBuilder> {
@override
SourceFieldBuilder _member;

FieldBodyBuilderContext(this._member,
@override
final Member _builtMember;

FieldBodyBuilderContext(this._member, this._builtMember,
{required bool inOutlineBuildingPhase,
required bool inMetadata,
required bool inConstFields})
Expand Down Expand Up @@ -780,7 +785,10 @@ class ProcedureBodyBuilderContext extends BodyBuilderContext
@override
final SourceProcedureBuilder _member;

ProcedureBodyBuilderContext(this._member,
@override
final Member _builtMember;

ProcedureBodyBuilderContext(this._member, this._builtMember,
{required bool inOutlineBuildingPhase,
required bool inMetadata,
required bool inConstFields})
Expand All @@ -799,6 +807,8 @@ mixin _ConstructorBodyBuilderContextMixin<T extends ConstructorDeclaration>
implements BodyBuilderContext {
T get _member;

TreeNode get _initializerParent;

@override
DartType substituteFieldType(DartType fieldType) {
return _member.substituteFieldType(fieldType);
Expand All @@ -818,7 +828,7 @@ mixin _ConstructorBodyBuilderContextMixin<T extends ConstructorDeclaration>
void addInitializer(Initializer initializer, ExpressionGeneratorHelper helper,
{required InitializerInferenceResult? inferenceResult}) {
_member.addInitializer(initializer, helper,
inferenceResult: inferenceResult);
inferenceResult: inferenceResult, parent: _initializerParent);
}

@override
Expand Down Expand Up @@ -859,7 +869,10 @@ class ConstructorBodyBuilderContext extends BodyBuilderContext
@override
final DeclaredSourceConstructorBuilder _member;

ConstructorBodyBuilderContext(this._member,
@override
final Member _builtMember;

ConstructorBodyBuilderContext(this._member, this._builtMember,
{required bool inOutlineBuildingPhase,
required bool inMetadata,
required bool inConstFields})
Expand All @@ -883,6 +896,9 @@ class ConstructorBodyBuilderContext extends BodyBuilderContext
@override
// Coverage-ignore(suite): Not run.
bool get hasFormalParameters => true;

@override
TreeNode get _initializerParent => _member.invokeTarget;
}

class ExtensionTypeConstructorBodyBuilderContext extends BodyBuilderContext
Expand All @@ -893,8 +909,10 @@ class ExtensionTypeConstructorBodyBuilderContext extends BodyBuilderContext
_MemberBodyBuilderContext<SourceExtensionTypeConstructorBuilder> {
@override
final SourceExtensionTypeConstructorBuilder _member;
@override
final Member _builtMember;

ExtensionTypeConstructorBodyBuilderContext(this._member,
ExtensionTypeConstructorBodyBuilderContext(this._member, this._builtMember,
{required bool inOutlineBuildingPhase,
required bool inMetadata,
required bool inConstFields})
Expand All @@ -912,6 +930,9 @@ class ExtensionTypeConstructorBodyBuilderContext extends BodyBuilderContext
@override
// Coverage-ignore(suite): Not run.
bool get hasFormalParameters => true;

@override
TreeNode get _initializerParent => _member.invokeTarget;
}

class FactoryBodyBuilderContext extends BodyBuilderContext
Expand All @@ -921,7 +942,10 @@ class FactoryBodyBuilderContext extends BodyBuilderContext
@override
final SourceFactoryBuilder _member;

FactoryBodyBuilderContext(this._member,
@override
final Member _builtMember;

FactoryBodyBuilderContext(this._member, this._builtMember,
{required bool inOutlineBuildingPhase,
required bool inMetadata,
required bool inConstFields})
Expand Down Expand Up @@ -953,7 +977,10 @@ class RedirectingFactoryBodyBuilderContext extends BodyBuilderContext
@override
final RedirectingFactoryBuilder _member;

RedirectingFactoryBodyBuilderContext(this._member,
@override
final Member _builtMember;

RedirectingFactoryBodyBuilderContext(this._member, this._builtMember,
{required bool inOutlineBuildingPhase,
required bool inMetadata,
required bool inConstFields})
Expand Down Expand Up @@ -1016,8 +1043,11 @@ class ExpressionCompilerProcedureBodyBuildContext extends BodyBuilderContext
@override
final SourceProcedureBuilder _member;

@override
final Member _builtMember;

ExpressionCompilerProcedureBodyBuildContext(
DietListener listener, this._member,
DietListener listener, this._member, this._builtMember,
{required bool isDeclarationInstanceMember,
required bool inOutlineBuildingPhase,
required bool inMetadata,
Expand Down
Loading

0 comments on commit 78fe567

Please sign in to comment.