Skip to content

Commit 94b080e

Browse files
johnniwintherCommit Queue
authored andcommitted
[cfe] Prepare for getters as PropertyBuilder
Various refactorings that prepare for getters no longer being encoded as SourceProcedureBuilder but instead as PropertyBuilder. Change-Id: I7cff229be083e801b5c543c15f021b76fd046c7f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/399100 Reviewed-by: Chloe Stefantsova <[email protected]> Commit-Queue: Johnni Winther <[email protected]>
1 parent 5c313c7 commit 94b080e

File tree

10 files changed

+300
-242
lines changed

10 files changed

+300
-242
lines changed

pkg/front_end/lib/src/kernel/hierarchy/members_builder.dart

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,14 @@ class ClassMembersBuilder implements ClassHierarchyMembers {
8080
TypeBuilder declaredFieldType, Iterable<ClassMember> overriddenMembers,
8181
{required String name,
8282
required Uri fileUri,
83-
required int fileOffset,
83+
required int nameOffset,
8484
required int nameLength,
8585
required bool isAssignable}) {
8686
ClassMembersNodeBuilder.inferFieldType(hierarchyBuilder, this,
8787
enclosingClassBuilder, declaredFieldType, overriddenMembers,
8888
name: name,
8989
fileUri: fileUri,
90-
fileOffset: fileOffset,
90+
nameOffset: nameOffset,
9191
nameLength: nameLength,
9292
isAssignable: isAssignable);
9393
}
@@ -96,13 +96,13 @@ class ClassMembersBuilder implements ClassHierarchyMembers {
9696
TypeBuilder declaredTypeBuilder, Iterable<ClassMember> overriddenMembers,
9797
{required String name,
9898
required Uri fileUri,
99-
required int fileOffset,
99+
required int nameOffset,
100100
required int nameLength}) {
101101
ClassMembersNodeBuilder.inferGetterType(hierarchyBuilder, this,
102102
enclosingClassBuilder, declaredTypeBuilder, overriddenMembers,
103103
name: name,
104104
fileUri: fileUri,
105-
fileOffset: fileOffset,
105+
nameOffset: nameOffset,
106106
nameLength: nameLength);
107107
}
108108

@@ -112,13 +112,13 @@ class ClassMembersBuilder implements ClassHierarchyMembers {
112112
Iterable<ClassMember> overriddenMembers,
113113
{required String name,
114114
required Uri fileUri,
115-
required int fileOffset,
115+
required int nameOffset,
116116
required int nameLength}) {
117117
ClassMembersNodeBuilder.inferSetterType(hierarchyBuilder, this,
118118
enclosingClassBuilder, formals, overriddenMembers,
119119
name: name,
120120
fileUri: fileUri,
121-
fileOffset: fileOffset,
121+
nameOffset: nameOffset,
122122
nameLength: nameLength);
123123
}
124124

@@ -130,7 +130,7 @@ class ClassMembersBuilder implements ClassHierarchyMembers {
130130
Iterable<ClassMember> overriddenMembers,
131131
{required String name,
132132
required Uri fileUri,
133-
required int fileOffset,
133+
required int nameOffset,
134134
required int nameLength}) {
135135
ClassMembersNodeBuilder.inferMethodType(
136136
hierarchyBuilder,
@@ -142,7 +142,7 @@ class ClassMembersBuilder implements ClassHierarchyMembers {
142142
overriddenMembers,
143143
name: name,
144144
fileUri: fileUri,
145-
fileOffset: fileOffset,
145+
nameOffset: nameOffset,
146146
nameLength: nameLength);
147147
}
148148

pkg/front_end/lib/src/kernel/hierarchy/members_node.dart

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ class ClassMembersNodeBuilder extends MembersNodeBuilder {
164164
Iterable<ClassMember> overriddenMembers,
165165
{required String name,
166166
required Uri fileUri,
167-
required int fileOffset,
167+
required int nameOffset,
168168
required int nameLength}) {
169169
if (declaredReturnType is InferableTypeBuilder ||
170170
formals != null &&
@@ -255,14 +255,14 @@ class ClassMembersNodeBuilder extends MembersNodeBuilder {
255255
reportCantInferTypes(classBuilder.libraryBuilder, overriddenMembers,
256256
name: name,
257257
fileUri: fileUri,
258-
fileOffset: fileOffset,
258+
nameOffset: nameOffset,
259259
nameLength: nameLength);
260260
} else if (cantInferReturnType) {
261261
reportCantInferReturnType(
262262
classBuilder.libraryBuilder, overriddenMembers,
263263
name: name,
264264
fileUri: fileUri,
265-
fileOffset: fileOffset,
265+
nameOffset: nameOffset,
266266
nameLength: nameLength);
267267
} else if (cantInferParameterTypes != null) {
268268
reportCantInferParameterType(classBuilder.libraryBuilder,
@@ -328,7 +328,7 @@ class ClassMembersNodeBuilder extends MembersNodeBuilder {
328328
Iterable<ClassMember> overriddenMembers,
329329
{required String name,
330330
required Uri fileUri,
331-
required int fileOffset,
331+
required int nameOffset,
332332
required int nameLength}) {
333333
if (declaredTypeBuilder is InferableTypeBuilder) {
334334
DartType? inferredType;
@@ -356,7 +356,7 @@ class ClassMembersNodeBuilder extends MembersNodeBuilder {
356356
reportCantInferReturnType(classBuilder.libraryBuilder, members,
357357
name: name,
358358
fileUri: fileUri,
359-
fileOffset: fileOffset,
359+
nameOffset: nameOffset,
360360
nameLength: nameLength);
361361
} else {
362362
inferredType = combinedMemberSignatureType;
@@ -395,7 +395,7 @@ class ClassMembersNodeBuilder extends MembersNodeBuilder {
395395
Iterable<ClassMember> overriddenMembers,
396396
{required String name,
397397
required Uri fileUri,
398-
required int fileOffset,
398+
required int nameOffset,
399399
required int nameLength}) {
400400
if (formals == null) {
401401
// Erroneous case.
@@ -429,7 +429,7 @@ class ClassMembersNodeBuilder extends MembersNodeBuilder {
429429
reportCantInferReturnType(classBuilder.libraryBuilder, members,
430430
name: name,
431431
fileUri: fileUri,
432-
fileOffset: fileOffset,
432+
nameOffset: nameOffset,
433433
nameLength: name.length);
434434
} else {
435435
inferredType = combinedMemberSignatureType;
@@ -468,7 +468,7 @@ class ClassMembersNodeBuilder extends MembersNodeBuilder {
468468
Iterable<ClassMember> overriddenMembers,
469469
{required String name,
470470
required Uri fileUri,
471-
required int fileOffset,
471+
required int nameOffset,
472472
required int nameLength,
473473
required bool isAssignable}) {
474474
if (declaredFieldType is InferableTypeBuilder) {
@@ -536,7 +536,7 @@ class ClassMembersNodeBuilder extends MembersNodeBuilder {
536536
reportCantInferFieldType(classBuilder.libraryBuilder, overriddenMembers,
537537
name: name,
538538
fileUri: fileUri,
539-
fileOffset: fileOffset,
539+
nameOffset: nameOffset,
540540
nameLength: nameLength);
541541
} else {
542542
inferredType = combinedMemberSignatureType;
@@ -2837,7 +2837,7 @@ void reportCantInferTypes(
28372837
ProblemReporting problemReporting, Iterable<ClassMember> overriddenMembers,
28382838
{required String name,
28392839
required Uri fileUri,
2840-
required int fileOffset,
2840+
required int nameOffset,
28412841
required int nameLength}) {
28422842
List<LocatedMessage> context = overriddenMembers
28432843
.map((ClassMember overriddenMember) {
@@ -2851,7 +2851,7 @@ void reportCantInferTypes(
28512851
.toList();
28522852
problemReporting.addProblem(
28532853
templateCantInferTypesDueToNoCombinedSignature.withArguments(name),
2854-
fileOffset,
2854+
nameOffset,
28552855
nameLength,
28562856
fileUri,
28572857
wasHandled: true,
@@ -2862,7 +2862,7 @@ void reportCantInferReturnType(
28622862
ProblemReporting problemReporting, Iterable<ClassMember> overriddenMembers,
28632863
{required String name,
28642864
required Uri fileUri,
2865-
required int fileOffset,
2865+
required int nameOffset,
28662866
required int nameLength}) {
28672867
List<LocatedMessage> context = overriddenMembers
28682868
.map((ClassMember overriddenMember) {
@@ -2876,7 +2876,7 @@ void reportCantInferReturnType(
28762876
.toList();
28772877
problemReporting.addProblem(
28782878
templateCantInferReturnTypeDueToNoCombinedSignature.withArguments(name),
2879-
fileOffset,
2879+
nameOffset,
28802880
nameLength,
28812881
fileUri,
28822882
wasHandled: true,
@@ -2887,7 +2887,7 @@ void reportCantInferFieldType(
28872887
ProblemReporting problemReporting, Iterable<ClassMember> overriddenMembers,
28882888
{required String name,
28892889
required Uri fileUri,
2890-
required int fileOffset,
2890+
required int nameOffset,
28912891
required int nameLength}) {
28922892
List<LocatedMessage> context = overriddenMembers
28932893
.map((ClassMember overriddenMember) {
@@ -2901,7 +2901,7 @@ void reportCantInferFieldType(
29012901
.toList();
29022902
problemReporting.addProblem(
29032903
templateCantInferTypeDueToNoCombinedSignature.withArguments(name),
2904-
fileOffset,
2904+
nameOffset,
29052905
nameLength,
29062906
fileUri,
29072907
wasHandled: true,

pkg/front_end/lib/src/source/source_constructor_builder.dart

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,8 @@ abstract class AbstractSourceConstructorBuilder
362362
@override
363363
void checkTypes(SourceLibraryBuilder library, NameSpace nameSpace,
364364
TypeEnvironment typeEnvironment) {
365-
library.checkTypesInConstructorBuilder(this, formals, typeEnvironment);
365+
library.checkInitializersInFormals(formals, typeEnvironment,
366+
isAbstract: isAbstract, isExternal: isExternal);
366367
}
367368

368369
@override
@@ -948,13 +949,19 @@ class DeclaredSourceConstructorBuilder
948949
@override
949950
void applyAugmentation(Builder augmentation) {
950951
if (augmentation is DeclaredSourceConstructorBuilder) {
951-
if (checkAugmentation(augmentation)) {
952+
if (checkAugmentation(
953+
augmentationLibraryBuilder: augmentation.libraryBuilder,
954+
origin: this,
955+
augmentation: augmentation)) {
952956
augmentation.actualOrigin = this;
953957
(_augmentations ??= []).add(augmentation);
954958
}
955959
} else {
956960
// Coverage-ignore-block(suite): Not run.
957-
reportAugmentationMismatch(augmentation);
961+
reportAugmentationMismatch(
962+
originLibraryBuilder: libraryBuilder,
963+
origin: this,
964+
augmentation: augmentation);
958965
}
959966
}
960967

pkg/front_end/lib/src/source/source_factory_builder.dart

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -295,13 +295,19 @@ class SourceFactoryBuilder extends SourceFunctionBuilderImpl {
295295
@override
296296
void applyAugmentation(Builder augmentation) {
297297
if (augmentation is SourceFactoryBuilder) {
298-
if (checkAugmentation(augmentation)) {
298+
if (checkAugmentation(
299+
augmentationLibraryBuilder: augmentation.libraryBuilder,
300+
origin: this,
301+
augmentation: augmentation)) {
299302
augmentation.actualOrigin = this;
300303
(_augmentations ??= []).add(augmentation);
301304
}
302305
} else {
303306
// Coverage-ignore-block(suite): Not run.
304-
reportAugmentationMismatch(augmentation);
307+
reportAugmentationMismatch(
308+
originLibraryBuilder: libraryBuilder,
309+
origin: this,
310+
augmentation: augmentation);
305311
}
306312
}
307313

@@ -339,7 +345,8 @@ class SourceFactoryBuilder extends SourceFunctionBuilderImpl {
339345
@override
340346
void checkTypes(SourceLibraryBuilder library, NameSpace nameSpace,
341347
TypeEnvironment typeEnvironment) {
342-
library.checkTypesInFunctionBuilder(this, typeEnvironment);
348+
library.checkInitializersInFormals(formals, typeEnvironment,
349+
isAbstract: isAbstract, isExternal: isExternal);
343350
List<SourceFactoryBuilder>? augmentations = _augmentations;
344351
if (augmentations != null) {
345352
for (SourceFactoryBuilder augmentation in augmentations) {
@@ -676,7 +683,8 @@ class RedirectingFactoryBuilder extends SourceFactoryBuilder {
676683
@override
677684
void checkTypes(SourceLibraryBuilder library, NameSpace nameSpace,
678685
TypeEnvironment typeEnvironment) {
679-
library.checkTypesInRedirectingFactoryBuilder(this, typeEnvironment);
686+
// Default values are not required on redirecting factory constructors so
687+
// we don't call [checkInitializersInFormals].
680688
}
681689

682690
// Computes the function type of a given redirection target. Returns [null] if

pkg/front_end/lib/src/source/source_field_builder.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ class SourceFieldBuilder extends SourceMemberBuilderImpl
398398
type, _overrideDependencies!,
399399
name: fullNameForErrors,
400400
fileUri: fileUri,
401-
fileOffset: nameOffset,
401+
nameOffset: nameOffset,
402402
nameLength: fullNameForErrors.length,
403403
isAssignable: isAssignable);
404404
_overrideDependencies = null;

0 commit comments

Comments
 (0)