Skip to content

Commit b5821f9

Browse files
johnniwintherCommit Queue
authored andcommitted
[cfe] Support constructor patches through fragments
Change-Id: I71ebf5bf95728e2960415589327b64313cbdf1e8 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/415200 Reviewed-by: Jens Johansen <[email protected]> Commit-Queue: Johnni Winther <[email protected]>
1 parent d66befd commit b5821f9

28 files changed

+413
-447
lines changed

pkg/front_end/lib/src/fragment/constructor/body_builder_context.dart

Lines changed: 29 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -20,52 +20,51 @@ import '../../type_inference/type_inferrer.dart';
2020
import 'declaration.dart';
2121

2222
class ConstructorBodyBuilderContext extends BodyBuilderContext {
23-
final SourceConstructorBuilderImpl _member;
23+
final SourceConstructorBuilderImpl _builder;
2424

25-
final ConstructorDeclaration _constructorDeclaration;
25+
final ConstructorDeclaration _declaration;
2626

27-
final Member _builtMember;
27+
final Member _member;
2828

29-
ConstructorBodyBuilderContext(
30-
this._member, this._constructorDeclaration, this._builtMember)
31-
: super(_member.libraryBuilder, _member.declarationBuilder,
29+
ConstructorBodyBuilderContext(this._builder, this._declaration, this._member)
30+
: super(_builder.libraryBuilder, _builder.declarationBuilder,
3231
isDeclarationInstanceMember: false);
3332

3433
@override
35-
int get memberNameOffset => _member.fileOffset;
34+
int get memberNameOffset => _declaration.fileOffset;
3635

3736
@override
3837
void registerSuperCall() {
39-
_builtMember.transformerFlags |= TransformerFlag.superCalls;
38+
_member.transformerFlags |= TransformerFlag.superCalls;
4039
}
4140

4241
@override
4342
VariableDeclaration getFormalParameter(int index) {
44-
return _constructorDeclaration.getFormalParameter(index);
43+
return _declaration.getFormalParameter(index);
4544
}
4645

4746
@override
4847
VariableDeclaration? getTearOffParameter(int index) {
49-
return _constructorDeclaration.getTearOffParameter(index);
48+
return _declaration.getTearOffParameter(index);
5049
}
5150

5251
@override
53-
TypeBuilder get returnType => _constructorDeclaration.returnType;
52+
TypeBuilder get returnType => _declaration.returnType;
5453

5554
@override
56-
List<FormalParameterBuilder>? get formals => _constructorDeclaration.formals;
55+
List<FormalParameterBuilder>? get formals => _declaration.formals;
5756

5857
@override
5958
FormalParameterBuilder? getFormalParameterByName(Identifier name) {
60-
return _constructorDeclaration.getFormal(name);
59+
return _declaration.getFormal(name);
6160
}
6261

6362
@override
64-
int get memberNameLength => _member.name.length;
63+
int get memberNameLength => _builder.name.length;
6564

6665
@override
6766
FunctionNode get function {
68-
return _constructorDeclaration.function;
67+
return _declaration.function;
6968
}
7069

7170
@override
@@ -74,41 +73,41 @@ class ConstructorBodyBuilderContext extends BodyBuilderContext {
7473
@override
7574
// Coverage-ignore(suite): Not run.
7675
bool get isNativeMethod {
77-
return _member.isNative;
76+
return _builder.isNative;
7877
}
7978

8079
@override
81-
bool get isExternalFunction => _constructorDeclaration.isExternal;
80+
bool get isExternalFunction => _declaration.isExternal;
8281

8382
@override
8483
bool get isSetter => false;
8584

8685
@override
8786
DartType substituteFieldType(DartType fieldType) {
88-
return _member.substituteFieldType(fieldType);
87+
return _builder.substituteFieldType(fieldType);
8988
}
9089

9190
@override
9291
void registerInitializedField(SourcePropertyBuilder builder) {
93-
_member.registerInitializedField(builder);
92+
_builder.registerInitializedField(builder);
9493
}
9594

9695
@override
9796
void prepareInitializers() {
98-
_member.prepareInitializers();
97+
_builder.prepareInitializers();
9998
}
10099

101100
@override
102101
void addInitializer(Initializer initializer, ExpressionGeneratorHelper helper,
103102
{required InitializerInferenceResult? inferenceResult}) {
104-
_member.addInitializer(initializer, helper,
105-
inferenceResult: inferenceResult, parent: _builtMember);
103+
_builder.addInitializer(initializer, helper,
104+
inferenceResult: inferenceResult, parent: _member);
106105
}
107106

108107
@override
109108
InitializerInferenceResult inferInitializer(Initializer initializer,
110109
ExpressionGeneratorHelper helper, TypeInferrer typeInferrer) {
111-
return typeInferrer.inferInitializer(helper, _member, initializer);
110+
return typeInferrer.inferInitializer(helper, _builder, initializer);
112111
}
113112

114113
@override
@@ -121,12 +120,12 @@ class ConstructorBodyBuilderContext extends BodyBuilderContext {
121120

122121
@override
123122
bool get isConstConstructor {
124-
return _constructorDeclaration.isConst;
123+
return _declaration.isConst;
125124
}
126125

127126
@override
128127
bool get isExternalConstructor {
129-
return _constructorDeclaration.isExternal;
128+
return _declaration.isExternal;
130129
}
131130

132131
@override
@@ -136,28 +135,27 @@ class ConstructorBodyBuilderContext extends BodyBuilderContext {
136135

137136
@override
138137
LocalScope computeFormalParameterInitializerScope(LocalScope parent) {
139-
return _constructorDeclaration
140-
.computeFormalParameterInitializerScope(parent);
138+
return _declaration.computeFormalParameterInitializerScope(parent);
141139
}
142140

143141
@override
144142
void registerFunctionBody(Statement body) {
145-
_constructorDeclaration.registerFunctionBody(body);
143+
_declaration.registerFunctionBody(body);
146144
}
147145

148146
@override
149147
void registerNoBodyConstructor() {
150-
_constructorDeclaration.registerNoBodyConstructor();
148+
_declaration.registerNoBodyConstructor();
151149
}
152150

153151
@override
154152
bool isConstructorCyclic(String name) {
155-
return declarationContext.isConstructorCyclic(_member.name, name);
153+
return declarationContext.isConstructorCyclic(_builder.name, name);
156154
}
157155

158156
@override
159157
bool needsImplicitSuperInitializer(CoreTypes coreTypes) {
160-
return _member.isClassMember &&
158+
return _builder.isClassMember &&
161159
!declarationContext.isObjectClass(coreTypes) &&
162160
!isExternalConstructor;
163161
}

0 commit comments

Comments
 (0)