Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Unified Diff: pkg/compiler/lib/src/resolution/members.dart

Issue 3009463002: Handle labelled continue statements (Closed)
Patch Set: Updated cf. comments Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/compiler/lib/src/js_model/locals.dart ('k') | pkg/compiler/lib/src/serialization/equivalence.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/resolution/members.dart
diff --git a/pkg/compiler/lib/src/resolution/members.dart b/pkg/compiler/lib/src/resolution/members.dart
index bf0cf5b1677dc2fc3fc8516f891c13a7b076c698..f0740c7e8b750892843b7c369d4a1fff2bd7f247 100644
--- a/pkg/compiler/lib/src/resolution/members.dart
+++ b/pkg/compiler/lib/src/resolution/members.dart
@@ -4414,7 +4414,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
ResolutionResult visitLabeledStatement(LabeledStatement node) {
Statement body = node.statement;
JumpTarget targetElement = getOrDefineTarget(body);
- Map<String, LabelDefinition> labelElements = <String, LabelDefinition>{};
+ Map<String, LabelDefinitionX> labelElements = <String, LabelDefinitionX>{};
for (Label label in node.labels) {
String labelName = label.labelName;
if (labelElements.containsKey(labelName)) continue;
@@ -4424,7 +4424,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
statementScope.enterLabelScope(labelElements);
visit(node.statement);
statementScope.exitLabelScope();
- labelElements.forEach((String labelName, LabelDefinition element) {
+ labelElements.forEach((String labelName, LabelDefinitionX element) {
if (element.isTarget) {
registry.defineLabel(element.label, element);
} else {
@@ -4616,7 +4616,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
node.expression.accept(this);
JumpTarget breakElement = getOrDefineTarget(node);
- Map<String, LabelDefinition> continueLabels = <String, LabelDefinition>{};
+ Map<String, LabelDefinitionX> continueLabels = <String, LabelDefinitionX>{};
Set<SwitchCase> switchCasesWithContinues = new Set<SwitchCase>();
Link<Node> cases = node.cases.nodes;
while (!cases.isEmpty) {
@@ -4630,7 +4630,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
Label label = labelOrCase;
String labelName = label.labelName;
- LabelDefinition existingElement = continueLabels[labelName];
+ LabelDefinitionX existingElement = continueLabels[labelName];
if (existingElement != null) {
// It's an error if the same label occurs twice in the same switch.
reporter.reportError(
@@ -4694,7 +4694,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
});
// Clean-up unused labels.
- continueLabels.forEach((String key, LabelDefinition label) {
+ continueLabels.forEach((String key, LabelDefinitionX label) {
if (!label.isContinueTarget) {
JumpTarget targetElement = label.target;
SwitchCase switchCase = targetElement.statement;
« no previous file with comments | « pkg/compiler/lib/src/js_model/locals.dart ('k') | pkg/compiler/lib/src/serialization/equivalence.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698