[cfe][Contexts] Flatten variables hierarchy

This removes the LegacyVariableDeclaration and VariableInitializationBase classes to create a simpler hierarchy. This is done preparation for splitting variables from statements.

TEST=existing

Change-Id: If29c9eee1e3d8bed819ce53ed178c3efa3bffaea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/501961
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
This commit is contained in:
Johnni Winther
2026-05-11 00:38:41 -07:00
committed by dart-scoped@luci-project-accounts.iam.gserviceaccount.com
parent 4736248967
commit c2787e1cf4
21 changed files with 171 additions and 312 deletions
@@ -4860,10 +4860,7 @@ class BytecodeGenerator extends RecursiveVisitor {
finallyBlocks.remove(node);
}
bool _skipVariableInitialization(
VariableInitializationBase v,
bool isCaptured,
) {
bool _skipVariableInitialization(VariableDeclaration v, bool isCaptured) {
// We can skip variable initialization if the variable is supposed to be
// initialized to null and it's captured. This is because all the slots in
// the capture context are implicitly initialized to null.
@@ -4886,11 +4883,11 @@ class BytecodeGenerator extends RecursiveVisitor {
}
@override
void visitVariableInitialization(VariableInitializationBase node) {
void visitVariableInitialization(VariableInitialization node) {
_handleVariableInitialization(node);
}
void _handleVariableInitialization(VariableInitializationBase node) {
void _handleVariableInitialization(VariableDeclaration node) {
if (!node.isConst) {
final bool isCaptured = locals.isCaptured(node.variable);
final initializer = node.initializer;
+4 -4
View File
@@ -553,11 +553,11 @@ class _ScopeBuilder extends RecursiveVisitor {
}
@override
void visitVariableInitialization(VariableInitializationBase node) {
void visitVariableInitialization(VariableInitialization node) {
_handleVariableInitialization(node);
}
void _handleVariableInitialization(VariableInitializationBase node) {
void _handleVariableInitialization(VariableDeclaration node) {
_declareVariable(node.variable);
node.visitChildren(this);
}
@@ -1097,11 +1097,11 @@ class _Allocator extends RecursiveVisitor {
}
@override
void visitVariableInitialization(VariableInitializationBase node) {
void visitVariableInitialization(VariableInitialization node) {
_handleVariableInitialization(node);
}
void _handleVariableInitialization(VariableInitializationBase node) {
void _handleVariableInitialization(VariableDeclaration node) {
_allocateVariable(node.variable);
node.visitChildren(this);
}