Index: pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart |
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 ff7b30d7c1d1579daf2c1652d5f22d9c91600958..38d199718da6e671691ffe8e5a7050c4857e1b98 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 |
@@ -986,6 +986,19 @@ class KernelIsNotExpression extends Not implements KernelExpression { |
} |
} |
+/// Concrete shadow object representing a labeled statement in kernel form. |
+class KernelLabeledStatement extends LabeledStatement |
+ implements KernelStatement { |
+ KernelLabeledStatement(Statement body) : super(body); |
+ |
+ @override |
+ void _inferStatement(KernelTypeInferrer inferrer) { |
+ inferrer.listener.labeledStatementEnter(this); |
+ inferrer.inferStatement(body); |
+ inferrer.listener.labeledStatementExit(this); |
+ } |
+} |
+ |
/// Concrete shadow object representing a list literal in kernel form. |
class KernelListLiteral extends ListLiteral implements KernelExpression { |
final DartType _declaredTypeArgument; |
@@ -1789,6 +1802,25 @@ class KernelSuperPropertyGet extends SuperPropertyGet |
} |
} |
+/// Concrete shadow object representing a switch statement in kernel form. |
+class KernelSwitchStatement extends SwitchStatement implements KernelStatement { |
+ KernelSwitchStatement(Expression expression, List<SwitchCase> cases) |
+ : super(expression, cases); |
+ |
+ @override |
+ void _inferStatement(KernelTypeInferrer inferrer) { |
+ inferrer.listener.switchStatementEnter(this); |
+ var expressionType = inferrer.inferExpression(expression, null, true); |
+ for (var switchCase in cases) { |
+ for (var caseExpression in switchCase.expressions) { |
+ inferrer.inferExpression(caseExpression, expressionType, false); |
+ } |
+ inferrer.inferStatement(switchCase.body); |
+ } |
+ inferrer.listener.switchStatementExit(this); |
+ } |
+} |
+ |
/// Shadow object for [SymbolLiteral]. |
class KernelSymbolLiteral extends SymbolLiteral implements KernelExpression { |
KernelSymbolLiteral(String value) : super(value); |