[cfe] Remove BuilderImpl as superclas of JumpTarget This relation was never used/needed. Change-Id: I3cc976a807278949072491f0969961ca303225b7 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/235084 Reviewed-by: Chloe Stefantsova <cstefantsova@google.com> Commit-Queue: Johnni Winther <johnniwinther@google.com>
diff --git a/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart b/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart index 779de84..a9ec81e 100644 --- a/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart +++ b/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart
@@ -1902,15 +1902,6 @@ } // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE. -const Code<Null> codeContinueLabelNotTarget = messageContinueLabelNotTarget; - -// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE. -const MessageCode messageContinueLabelNotTarget = const MessageCode( - "ContinueLabelNotTarget", - analyzerCodes: <String>["LABEL_UNDEFINED"], - problemMessage: r"""Target of continue must be a label."""); - -// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE. const Code<Null> codeContinueOutsideOfLoop = messageContinueOutsideOfLoop; // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart index 6ac5cec..5d7f537 100644 --- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart +++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -6596,8 +6596,7 @@ SwitchCase current = cases[i] = pop() as SwitchCase; if (labels != null) { for (Label label in labels) { - JumpTarget? target = - switchScope!.lookupLabel(label.name) as JumpTarget?; + JumpTarget? target = switchScope!.lookupLabel(label.name); if (target != null) { target.resolveGotos(forest, current); } @@ -6656,7 +6655,7 @@ if (hasTarget) { identifier = pop() as Identifier; name = identifier.name; - target = scope.lookupLabel(name) as JumpTarget?; + target = scope.lookupLabel(name); } if (target == null && name == null) { push(problemInLoopOrSwitch = buildProblemStatement( @@ -6709,15 +6708,7 @@ if (hasTarget) { identifier = pop() as Identifier; name = identifier.name; - Builder? namedTarget = scope.lookupLabel(identifier.name); - if (namedTarget != null && namedTarget is! JumpTarget) { - Token labelToken = continueKeyword.next!; - push(problemInLoopOrSwitch = buildProblemStatement( - fasta.messageContinueLabelNotTarget, labelToken.charOffset, - length: labelToken.length)); - return; - } - target = namedTarget as JumpTarget?; + target = scope.lookupLabel(identifier.name); if (target == null) { if (switchScope == null) { push(buildProblemStatement( @@ -7527,23 +7518,20 @@ String toString() => "operator($name)"; } -class JumpTarget extends BuilderImpl { +class JumpTarget { final List<Statement> users = <Statement>[]; final JumpTargetKind kind; final int functionNestingLevel; - @override final MemberBuilder parent; - @override final int charOffset; JumpTarget( this.kind, this.functionNestingLevel, this.parent, this.charOffset); - @override Uri get fileUri => parent.fileUri!; bool get isBreakTarget => kind == JumpTargetKind.Break; @@ -7603,11 +7591,10 @@ users.clear(); } - @override String get fullNameForErrors => "<jump-target>"; } -class LabelTarget extends BuilderImpl implements JumpTarget { +class LabelTarget implements JumpTarget { @override final MemberBuilder parent;
diff --git a/pkg/front_end/lib/src/fasta/scope.dart b/pkg/front_end/lib/src/fasta/scope.dart index c431fd6..300080b 100644 --- a/pkg/front_end/lib/src/fasta/scope.dart +++ b/pkg/front_end/lib/src/fasta/scope.dart
@@ -469,7 +469,7 @@ return forwardDeclaredLabels; } - Builder? lookupLabel(String name) { + JumpTarget? lookupLabel(String name) { return labels?[name] ?? _parent?.lookupLabel(name); }
diff --git a/pkg/front_end/messages.yaml b/pkg/front_end/messages.yaml index 1c92e8b..8f83875 100644 --- a/pkg/front_end/messages.yaml +++ b/pkg/front_end/messages.yaml
@@ -1153,10 +1153,6 @@ } } -ContinueLabelNotTarget: - problemMessage: "Target of continue must be a label." - analyzerCode: LABEL_UNDEFINED - ContinueWithoutLabelInCase: index: 64 problemMessage: "A continue statement in a switch statement must have a label as a target."