Convert ShadowBreakStatement to BreakJudgment and ContinueJudgment.
R=brianwilkerson@google.com, paulberry@google.com
Change-Id: I1367c3e809c8008f972e6d246a3acdd6e03f24bc
Reviewed-on: https://dart-review.googlesource.com/61041
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/front_end/lib/src/fasta/kernel/fangorn.dart b/pkg/front_end/lib/src/fasta/kernel/fangorn.dart
index 11456c9..56c1354 100644
--- a/pkg/front_end/lib/src/fasta/kernel/fangorn.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/fangorn.dart
@@ -73,7 +73,8 @@
AwaitJudgment,
ShadowBlock,
BoolJudgment,
- ShadowBreakStatement,
+ BreakJudgment,
+ ContinueJudgment,
CheckLibraryIsLoadedJudgment,
ConditionalJudgment,
ShadowDoStatement,
@@ -339,7 +340,7 @@
@override
Statement breakStatement(Token breakKeyword, Object label, Token semicolon) {
- return new ShadowBreakStatement(null)..fileOffset = breakKeyword.charOffset;
+ return new BreakJudgment(null)..fileOffset = breakKeyword.charOffset;
}
@override
@@ -367,8 +368,7 @@
@override
Statement continueStatement(
Token continueKeyword, Object label, Token semicolon) {
- return new ShadowBreakStatement(null)
- ..fileOffset = continueKeyword.charOffset;
+ return new ContinueJudgment(null)..fileOffset = continueKeyword.charOffset;
}
@override
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
index bb5d8f8..8f9a272 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
@@ -66,7 +66,7 @@
show
AssertInitializerJudgment,
AssertStatementJudgment,
- ShadowBreakStatement,
+ BreakJudgment,
ShadowCascadeExpression,
ShadowComplexAssignment,
ShadowConstructorInvocation,
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
index c30762c..109dcf8 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
@@ -272,10 +272,21 @@
}
}
-/// Concrete shadow object representing a break or continue statement in kernel
-/// form.
-class ShadowBreakStatement extends BreakStatement implements StatementJudgment {
- ShadowBreakStatement(LabeledStatement target) : super(target);
+/// Concrete shadow object representing a break statement in kernel form.
+class BreakJudgment extends BreakStatement implements StatementJudgment {
+ BreakJudgment(LabeledStatement target) : super(target);
+
+ @override
+ void infer<Expression, Statement, Initializer, Type>(
+ ShadowTypeInferrer inferrer,
+ Factory<Expression, Statement, Initializer, Type> factory) {
+ // No inference needs to be done.
+ }
+}
+
+/// Concrete shadow object representing a continue statement in kernel form.
+class ContinueJudgment extends BreakStatement implements StatementJudgment {
+ ContinueJudgment(LabeledStatement target) : super(target);
@override
void infer<Expression, Statement, Initializer, Type>(