Skip to content

Commit f17cf33

Browse files
johnniwintherCommit Queue
authored andcommitted
[kernel] Move Pattern nodes to package:kernel
These AST nodes were so far internal to the CFE, but since we need to move the pattern lowering to the constant evaluator we need to support them in the AST defined in package:kernel. TEST=existing Change-Id: Ie6c5f0f8ad75a866c5d965fdf506bc869ffaf654 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288241 Reviewed-by: Chloe Stefantsova <[email protected]> Commit-Queue: Johnni Winther <[email protected]> Reviewed-by: Alexander Markov <[email protected]> Reviewed-by: Joshua Litt <[email protected]>
1 parent 1695064 commit f17cf33

35 files changed

+8473
-3817
lines changed

pkg/_js_interop_checks/lib/js_interop_checks.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import 'package:_js_interop_checks/src/transformations/export_checker.dart';
3535
// Used for importing CFE utility functions for constructor tear-offs.
3636
import 'package:front_end/src/api_prototype/lowering_predicates.dart';
3737
import 'package:kernel/core_types.dart';
38-
import 'package:kernel/kernel.dart';
38+
import 'package:kernel/kernel.dart' hide Pattern;
3939
import 'package:kernel/target/targets.dart';
4040

4141
import 'src/js_interop.dart';

pkg/dart2wasm/lib/code_generator.dart

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3293,6 +3293,27 @@ class CodeGenerator extends ExpressionVisitor1<w.ValueType, w.ValueType>
32933293

32943294
void _emitString(String str) => wrap(StringLiteral(str),
32953295
translator.translateType(translator.coreTypes.stringNonNullableRawType));
3296+
3297+
@override
3298+
void visitPatternSwitchStatement(PatternSwitchStatement node) {
3299+
// This node is internal to the front end and removed by the constant
3300+
// evaluator.
3301+
throw new UnsupportedError("CodeGenerator.visitPatternSwitchStatement");
3302+
}
3303+
3304+
@override
3305+
void visitPatternVariableDeclaration(PatternVariableDeclaration node) {
3306+
// This node is internal to the front end and removed by the constant
3307+
// evaluator.
3308+
throw new UnsupportedError("CodeGenerator.visitPatternVariableDeclaration");
3309+
}
3310+
3311+
@override
3312+
void visitIfCaseStatement(IfCaseStatement node) {
3313+
// This node is internal to the front end and removed by the constant
3314+
// evaluator.
3315+
throw new UnsupportedError("CodeGenerator.visitIfCaseStatement");
3316+
}
32963317
}
32973318

32983319
class TryBlockFinalizer {

pkg/dev_compiler/lib/src/kernel/compiler.dart

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7385,6 +7385,42 @@ class ProgramCompiler extends ComputeOnceConstantVisitor<js_ast.Expression>
73857385
];
73867386
return header;
73877387
}
7388+
7389+
@override
7390+
js_ast.Statement visitIfCaseStatement(IfCaseStatement node) {
7391+
// This node is internal to the front end and removed by the constant
7392+
// evaluator.
7393+
throw UnsupportedError('ProgramCompiler.visitIfCaseStatement');
7394+
}
7395+
7396+
@override
7397+
js_ast.Expression visitPatternAssignment(PatternAssignment node) {
7398+
// This node is internal to the front end and removed by the constant
7399+
// evaluator.
7400+
throw UnsupportedError('ProgramCompiler.visitPatternAssignment');
7401+
}
7402+
7403+
@override
7404+
js_ast.Statement visitPatternSwitchStatement(PatternSwitchStatement node) {
7405+
// This node is internal to the front end and removed by the constant
7406+
// evaluator.
7407+
throw UnsupportedError('ProgramCompiler.visitPatternSwitchStatement');
7408+
}
7409+
7410+
@override
7411+
js_ast.Statement visitPatternVariableDeclaration(
7412+
PatternVariableDeclaration node) {
7413+
// This node is internal to the front end and removed by the constant
7414+
// evaluator.
7415+
throw UnsupportedError('ProgramCompiler.visitPatternVariableDeclaration');
7416+
}
7417+
7418+
@override
7419+
js_ast.Expression visitSwitchExpression(SwitchExpression node) {
7420+
// This node is internal to the front end and removed by the constant
7421+
// evaluator.
7422+
throw UnsupportedError('ProgramCompiler.visitSwitchExpression');
7423+
}
73887424
}
73897425

73907426
bool _isInlineJSFunction(Statement? body) {

pkg/dev_compiler/lib/src/kernel/kernel_helpers.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import 'dart:collection';
66
import 'package:collection/collection.dart';
77
import 'package:kernel/core_types.dart';
8-
import 'package:kernel/kernel.dart';
8+
import 'package:kernel/kernel.dart' hide Pattern;
99

1010
Constructor? unnamedConstructor(Class c) =>
1111
c.constructors.firstWhereOrNull((c) => c.name.text == '');

pkg/dev_compiler/lib/src/kernel/target.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import 'package:_js_interop_checks/src/transformations/export_creator.dart';
1111
import 'package:_js_interop_checks/src/transformations/js_util_optimizer.dart';
1212
import 'package:kernel/class_hierarchy.dart';
1313
import 'package:kernel/core_types.dart';
14-
import 'package:kernel/kernel.dart';
14+
import 'package:kernel/kernel.dart' hide Pattern;
1515
import 'package:kernel/reference_from_index.dart';
1616
import 'package:kernel/target/changed_structure_notifier.dart';
1717
import 'package:kernel/target/targets.dart';

0 commit comments

Comments
 (0)