| 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);
|
|
|