Skip to content

Commit 61fe323

Browse files
johnniwintherCommit Queue
authored andcommitted
[cfe] Rename InvalidTypeDeclarationBuilder
This renames InvalidTypeDeclarationBuilder to InvalidBuilder to better reflects its actual general purpose use. Also, suppressMessage fields and parameters are renamed to errorHasBeenReported to better show the motivation for the value. Change-Id: I4189cd430f9d1c02fe183b5a0f34786fc96ea8bf Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/442401 Reviewed-by: Chloe Stefantsova <[email protected]> Commit-Queue: Johnni Winther <[email protected]>
1 parent 83e9bd7 commit 61fe323

24 files changed

+144
-142
lines changed

pkg/front_end/lib/src/base/scope.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,8 @@ NamedBuilder computeAmbiguousDeclarationForImport(
339339

340340
// TODO(ahe): Can I move this to Scope or Prefix?
341341
if (declaration == other) return declaration;
342-
if (declaration is InvalidTypeDeclarationBuilder) return declaration;
343-
if (other is InvalidTypeDeclarationBuilder) return other;
342+
if (declaration is InvalidBuilder) return declaration;
343+
if (other is InvalidBuilder) return other;
344344
NamedBuilder? preferred;
345345
Uri uri = computeLibraryUri(declaration);
346346
Uri otherUri = computeLibraryUri(other);
@@ -369,14 +369,14 @@ NamedBuilder computeAmbiguousDeclarationForImport(
369369
// instead of including URIs in this message.
370370
firstUri,
371371
secondUri);
372-
// We report the error lazily (setting suppressMessage to false) because the
373-
// spec 18.1 states that 'It is not an error if N is introduced by two or
372+
// We report the error lazily (setting errorHasBeenReported to false) because
373+
// the spec 18.1 states that 'It is not an error if N is introduced by two or
374374
// more imports but never referred to.'
375-
return new InvalidTypeDeclarationBuilder(
375+
return new InvalidBuilder(
376376
name,
377377
message.withLocation(
378378
uriOffset.fileUri, uriOffset.fileOffset, name.length),
379-
suppressMessage: false);
379+
errorHasBeenReported: false);
380380
}
381381

382382
// Coverage-ignore(suite): Not run.

pkg/front_end/lib/src/builder/declaration_builders.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ part 'class_builder.dart';
3333
part 'declaration_builder.dart';
3434
part 'extension_builder.dart';
3535
part 'extension_type_declaration_builder.dart';
36-
part 'invalid_type_declaration_builder.dart';
36+
part 'invalid_builder.dart';
3737
part 'type_alias_builder.dart';
3838
part 'type_declaration_builder.dart';
3939
part 'type_parameter_builder.dart';

pkg/front_end/lib/src/builder/invalid_type_declaration_builder.dart renamed to pkg/front_end/lib/src/builder/invalid_builder.dart

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,14 @@
44

55
part of 'declaration_builders.dart';
66

7-
// TODO(johnniwinther): Make this a [ProblemBuilder].
8-
class InvalidTypeDeclarationBuilder extends TypeDeclarationBuilderImpl
7+
/// [InvalidBuilder] encapsulates an erroneous state as [Builder].
8+
///
9+
/// If [errorHasBeenReported] is `true`, the message has already been reported.
10+
/// Otherwise the [message] must be reported upon use.
11+
///
12+
/// This builder implements both [TypeDeclarationBuilder] and [MemberBuilder]
13+
/// so that it can be used both in types and in member lookups.
14+
class InvalidBuilder extends TypeDeclarationBuilderImpl
915
with ErroneousMemberBuilderMixin
1016
implements TypeDeclarationBuilder {
1117
@override
@@ -15,10 +21,10 @@ class InvalidTypeDeclarationBuilder extends TypeDeclarationBuilderImpl
1521

1622
final List<LocatedMessage>? context;
1723

18-
final bool suppressMessage;
24+
final bool errorHasBeenReported;
1925

20-
InvalidTypeDeclarationBuilder(this.name, this.message,
21-
{this.context, this.suppressMessage = true});
26+
InvalidBuilder(this.name, this.message,
27+
{this.context, this.errorHasBeenReported = true});
2228

2329
@override
2430
int get typeParametersCount => 0;
@@ -59,7 +65,7 @@ class InvalidTypeDeclarationBuilder extends TypeDeclarationBuilderImpl
5965
Uri fileUri,
6066
int charOffset,
6167
{required bool hasExplicitTypeArguments}) {
62-
if (!suppressMessage) {
68+
if (!errorHasBeenReported) {
6369
library.addProblem(message.messageObject, message.charOffset,
6470
message.length, message.uri,
6571
context: context);

pkg/front_end/lib/src/builder/named_type_builder.dart

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ abstract class NamedTypeBuilderImpl extends NamedTypeBuilder {
296296
}
297297

298298
void _check(ProblemReporting problemReporting) {
299-
if (_declaration is InvalidTypeDeclarationBuilder) {
299+
if (_declaration is InvalidBuilder) {
300300
return;
301301
}
302302
if (typeArguments != null) {
@@ -393,11 +393,9 @@ abstract class NamedTypeBuilderImpl extends NamedTypeBuilder {
393393
}
394394

395395
@override
396-
InvalidTypeDeclarationBuilder buildInvalidTypeDeclarationBuilder(
397-
LocatedMessage message,
396+
InvalidBuilder buildInvalidTypeDeclarationBuilder(LocatedMessage message,
398397
{List<LocatedMessage>? context}) {
399-
return new InvalidTypeDeclarationBuilder(typeName.fullName, message,
400-
context: context);
398+
return new InvalidBuilder(typeName.fullName, message, context: context);
401399
}
402400

403401
Supertype? _handleInvalidSupertype(LibraryBuilder library) {
@@ -649,8 +647,8 @@ abstract class NamedTypeBuilderImpl extends NamedTypeBuilder {
649647
<DartType>[type.typeArgument]);
650648
}
651649
return _handleInvalidAliasedSupertype(library, aliasBuilder, type);
652-
case InvalidTypeDeclarationBuilder():
653-
if (!declaration.suppressMessage) {
650+
case InvalidBuilder():
651+
if (!declaration.errorHasBeenReported) {
654652
// Coverage-ignore-block(suite): Not run.
655653
library.addProblem(
656654
declaration.message.messageObject,
@@ -686,8 +684,8 @@ abstract class NamedTypeBuilderImpl extends NamedTypeBuilder {
686684
}
687685
return _handleInvalidAliasedSupertype(
688686
libraryBuilder, aliasBuilder, type);
689-
case InvalidTypeDeclarationBuilder():
690-
if (!declaration.suppressMessage) {
687+
case InvalidBuilder():
688+
if (!declaration.errorHasBeenReported) {
691689
// Coverage-ignore-block(suite): Not run.
692690
libraryBuilder.addProblem(
693691
declaration.message.messageObject,
@@ -840,7 +838,7 @@ abstract class NamedTypeBuilderImpl extends NamedTypeBuilder {
840838
}
841839
case StructuralParameterBuilder():
842840
case ExtensionBuilder():
843-
case InvalidTypeDeclarationBuilder():
841+
case InvalidBuilder():
844842
case BuiltinTypeDeclarationBuilder():
845843
}
846844
return VarianceCalculationValue.calculatedUnrelated;
@@ -949,7 +947,7 @@ abstract class NamedTypeBuilderImpl extends NamedTypeBuilder {
949947
// Handled above.
950948
throw new UnsupportedError("Unexpected StructuralVariableBuilder");
951949
// Coverage-ignore(suite): Not run.
952-
case InvalidTypeDeclarationBuilder():
950+
case InvalidBuilder():
953951
// Don't substitute.
954952
break;
955953
// Coverage-ignore(suite): Not run.
@@ -1093,7 +1091,7 @@ abstract class NamedTypeBuilderImpl extends NamedTypeBuilder {
10931091
case NominalParameterBuilder():
10941092
case StructuralParameterBuilder():
10951093
case ExtensionBuilder():
1096-
case InvalidTypeDeclarationBuilder():
1094+
case InvalidBuilder():
10971095
case BuiltinTypeDeclarationBuilder():
10981096
}
10991097
} else {
@@ -1165,8 +1163,7 @@ class _ExplicitNamedTypeBuilder extends NamedTypeBuilderImpl {
11651163
super._(
11661164
typeName: new PredefinedTypeName(name),
11671165
nullabilityBuilder: nullabilityBuilder,
1168-
declaration: new InvalidTypeDeclarationBuilder(name, message,
1169-
context: context),
1166+
declaration: new InvalidBuilder(name, message, context: context),
11701167
fileUri: message.uri,
11711168
charOffset: message.charOffset,
11721169
instanceTypeParameterAccess:

pkg/front_end/lib/src/builder/type_alias_builder.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ abstract class TypeAliasBuilderImpl extends TypeDeclarationBuilderImpl
199199
case NominalParameterBuilder():
200200
case StructuralParameterBuilder():
201201
case BuiltinTypeDeclarationBuilder():
202-
case InvalidTypeDeclarationBuilder():
202+
case InvalidBuilder():
203203
case null:
204204
_unaliasedRhsType = type;
205205
case TypeAliasBuilder():
@@ -275,7 +275,7 @@ abstract class TypeAliasBuilderImpl extends TypeDeclarationBuilderImpl
275275
}
276276
case ExtensionBuilder():
277277
case BuiltinTypeDeclarationBuilder():
278-
case InvalidTypeDeclarationBuilder():
278+
case InvalidBuilder():
279279
// These types won't change after substitution, so we just return them.
280280
return unaliasedRhsType;
281281
case null:

pkg/front_end/lib/src/builder/type_builder.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -533,8 +533,7 @@ abstract class NamedTypeBuilder extends TypeBuilder {
533533

534534
NamedTypeBuilder withTypeArguments(List<TypeBuilder> arguments);
535535

536-
InvalidTypeDeclarationBuilder buildInvalidTypeDeclarationBuilder(
537-
LocatedMessage message,
536+
InvalidBuilder buildInvalidTypeDeclarationBuilder(LocatedMessage message,
538537
{List<LocatedMessage>? context});
539538
}
540539

pkg/front_end/lib/src/builder/type_parameter_builder.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ void _sortAllTypeParametersTopologicallyFromRoot(TypeBuilder root,
369369
// TODO(johnniwinther):: Handle this case.
370370
case ExtensionBuilder():
371371
case BuiltinTypeDeclarationBuilder():
372-
case InvalidTypeDeclarationBuilder():
372+
case InvalidBuilder():
373373
case null:
374374
}
375375
case FunctionTypeBuilder(

pkg/front_end/lib/src/dill/dill_library_builder.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -413,8 +413,7 @@ class DillLibraryBuilder extends LibraryBuilderImpl {
413413
if (!suppressFinalizationErrors) {
414414
addProblem(message, -1, noLength, null);
415415
}
416-
declaration =
417-
new InvalidTypeDeclarationBuilder(name, message.withoutLocation());
416+
declaration = new InvalidBuilder(name, message.withoutLocation());
418417
}
419418
_exportNameSpace.addLocalMember(name, declaration, setter: false);
420419
});

pkg/front_end/lib/src/kernel/body_builder.dart

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2964,7 +2964,7 @@ class BodyBuilder extends StackListenerImpl
29642964
Expression? rhs,
29652965
LocatedMessage? message,
29662966
int? length,
2967-
bool suppressMessage = false}) {
2967+
bool errorHasBeenReported = false}) {
29682968
// TODO(johnniwinther): Use [arguments] and [rhs] to create an unresolved
29692969
// access expression to include in the invalid expression.
29702970
if (length == null) {
@@ -3037,7 +3037,7 @@ class BodyBuilder extends StackListenerImpl
30373037
}
30383038
return buildProblem(
30393039
message.messageObject, message.charOffset, message.length,
3040-
context: context, suppressMessage: suppressMessage);
3040+
context: context, errorHasBeenReported: errorHasBeenReported);
30413041
}
30423042

30433043
Message warnUnresolvedMember(Name name, int charOffset,
@@ -3278,7 +3278,7 @@ class BodyBuilder extends StackListenerImpl
32783278
if (getable != null) {
32793279
if (getable is ProblemBuilder) {
32803280
return getable;
3281-
} else if (getable is InvalidTypeDeclarationBuilder) {
3281+
} else if (getable is InvalidBuilder) {
32823282
return new TypeUseGenerator(
32833283
this,
32843284
nameToken,
@@ -3430,7 +3430,7 @@ class BodyBuilder extends StackListenerImpl
34303430
} else {
34313431
if (setable is ProblemBuilder) {
34323432
return setable;
3433-
} else if (setable is InvalidTypeDeclarationBuilder) {
3433+
} else if (setable is InvalidBuilder) {
34343434
// Coverage-ignore-block(suite): Not run.
34353435
return new TypeUseGenerator(
34363436
this,
@@ -4087,7 +4087,7 @@ class BodyBuilder extends StackListenerImpl
40874087
if (generator is! Generator) {
40884088
push(buildProblem(
40894089
cfe.messageNotAnLvalue, offsetForToken(token), lengthForToken(token),
4090-
suppressMessage: generator is InvalidExpression));
4090+
errorHasBeenReported: generator is InvalidExpression));
40914091
} else {
40924092
push(new DelayedAssignment(
40934093
this, token, generator, value, token.stringValue!));
@@ -4461,7 +4461,7 @@ class BodyBuilder extends StackListenerImpl
44614461
if (variableOrExpression is ParserRecovery) {
44624462
problemInLoopOrSwitch ??= buildProblemStatement(
44634463
cfe.messageSyntheticToken, variableOrExpression.charOffset,
4464-
suppressMessage: true);
4464+
errorHasBeenReported: true);
44654465
}
44664466
exitLoopOrSwitch(result);
44674467
}
@@ -6713,7 +6713,7 @@ class BodyBuilder extends StackListenerImpl
67136713
arguments: arguments,
67146714
message: message,
67156715
kind: UnresolvedKind.Constructor);
6716-
case InvalidTypeDeclarationBuilder():
6716+
case InvalidBuilder():
67176717
// Coverage-ignore(suite): Not run.
67186718
LocatedMessage message = typeDeclarationBuilder.message;
67196719
// Coverage-ignore(suite): Not run.
@@ -6755,7 +6755,7 @@ class BodyBuilder extends StackListenerImpl
67556755
.withArguments(numberOfTypeParameters),
67566756
nameToken.charOffset,
67576757
nameToken.length,
6758-
suppressMessage: true));
6758+
errorHasBeenReported: true));
67596759
}
67606760
List<DartType> dartTypeArguments = [];
67616761
for (TypeBuilder typeBuilder in unaliasedTypeArgumentBuilders) {
@@ -6772,7 +6772,7 @@ class BodyBuilder extends StackListenerImpl
67726772
// Coverage-ignore(suite): Not run.
67736773
case ExtensionBuilder():
67746774
// Coverage-ignore(suite): Not run.
6775-
case InvalidTypeDeclarationBuilder():
6775+
case InvalidBuilder():
67766776
// Coverage-ignore(suite): Not run.
67776777
case BuiltinTypeDeclarationBuilder():
67786778
case null:
@@ -6826,7 +6826,7 @@ class BodyBuilder extends StackListenerImpl
68266826
.withArguments(numberOfTypeParameters),
68276827
nameToken.charOffset,
68286828
nameToken.length,
6829-
suppressMessage: true));
6829+
errorHasBeenReported: true));
68306830
}
68316831
List<DartType> dartTypeArguments = [];
68326832
for (TypeBuilder typeBuilder in unaliasedTypeArgumentBuilders) {
@@ -6868,7 +6868,7 @@ class BodyBuilder extends StackListenerImpl
68686868
case NominalParameterBuilder():
68696869
case StructuralParameterBuilder():
68706870
case ExtensionBuilder():
6871-
case InvalidTypeDeclarationBuilder():
6871+
case InvalidBuilder():
68726872
// Coverage-ignore(suite): Not run.
68736873
case BuiltinTypeDeclarationBuilder():
68746874
case null:
@@ -6961,7 +6961,7 @@ class BodyBuilder extends StackListenerImpl
69616961
} else {
69626962
errorName ??= debugName(typeDeclarationBuilder.name, name);
69636963
}
6964-
case InvalidTypeDeclarationBuilder():
6964+
case InvalidBuilder():
69656965
LocatedMessage message = typeDeclarationBuilder.message;
69666966
return evaluateArgumentsBefore(
69676967
arguments,
@@ -7543,7 +7543,7 @@ class BodyBuilder extends StackListenerImpl
75437543
buildProblem(cfe.messageNamedFunctionExpression,
75447544
declaration.fileOffset, noLength,
75457545
// Error has already been reported by the parser.
7546-
suppressMessage: true))
7546+
errorHasBeenReported: true))
75477547
..fileOffset = declaration.fileOffset);
75487548
} else {
75497549
push(statement);
@@ -9110,9 +9110,9 @@ class BodyBuilder extends StackListenerImpl
91109110
@override
91119111
InvalidExpression buildProblem(Message message, int charOffset, int length,
91129112
{List<LocatedMessage>? context,
9113-
bool suppressMessage = false,
9113+
bool errorHasBeenReported = false,
91149114
Expression? expression}) {
9115-
if (!suppressMessage) {
9115+
if (!errorHasBeenReported) {
91169116
addProblem(message, charOffset, length,
91179117
wasHandled: true, context: context);
91189118
}
@@ -9130,7 +9130,8 @@ class BodyBuilder extends StackListenerImpl
91309130
if (severity == Severity.error) {
91319131
return wrapInLocatedProblem(
91329132
expression, message.withLocation(uri, fileOffset, length),
9133-
context: context, suppressMessage: expression is InvalidExpression);
9133+
context: context,
9134+
errorHasBeenReported: expression is InvalidExpression);
91349135
} else {
91359136
// Coverage-ignore-block(suite): Not run.
91369137
if (expression is! InvalidExpression) {
@@ -9142,7 +9143,7 @@ class BodyBuilder extends StackListenerImpl
91429143

91439144
@override
91449145
Expression wrapInLocatedProblem(Expression expression, LocatedMessage message,
9145-
{List<LocatedMessage>? context, bool suppressMessage = false}) {
9146+
{List<LocatedMessage>? context, bool errorHasBeenReported = false}) {
91469147
// TODO(askesc): Produce explicit error expression wrapping the original.
91479148
// See [issue 29717](https://github.com/dart-lang/sdk/issues/29717)
91489149
int offset = expression.fileOffset;
@@ -9153,7 +9154,7 @@ class BodyBuilder extends StackListenerImpl
91539154
message.messageObject, message.charOffset, message.length,
91549155
context: context,
91559156
expression: expression,
9156-
suppressMessage: suppressMessage);
9157+
errorHasBeenReported: errorHasBeenReported);
91579158
}
91589159

91599160
Expression buildAbstractClassInstantiationError(
@@ -9166,10 +9167,10 @@ class BodyBuilder extends StackListenerImpl
91669167
Statement buildProblemStatement(Message message, int charOffset,
91679168
{List<LocatedMessage>? context,
91689169
int? length,
9169-
bool suppressMessage = false}) {
9170+
bool errorHasBeenReported = false}) {
91709171
length ??= noLength;
91719172
return new ExpressionStatement(buildProblem(message, charOffset, length,
9172-
context: context, suppressMessage: suppressMessage));
9173+
context: context, errorHasBeenReported: errorHasBeenReported));
91739174
}
91749175

91759176
Statement wrapInProblemStatement(Statement statement, Message message) {
@@ -9486,10 +9487,8 @@ class BodyBuilder extends StackListenerImpl
94869487
LocatedMessage message = cfe.messageTypeVariableInConstantContext
94879488
.withLocation(builder.fileUri!, builder.charOffset!,
94889489
typeParameter.name!.length);
9489-
builder.bind(
9490-
libraryBuilder,
9491-
new InvalidTypeDeclarationBuilder(
9492-
typeParameter.name!, message));
9490+
builder.bind(libraryBuilder,
9491+
new InvalidBuilder(typeParameter.name!, message));
94939492
addProblem(
94949493
message.messageObject, message.charOffset, message.length);
94959494
}

0 commit comments

Comments
 (0)