[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:
committed by
dart-scoped@luci-project-accounts.iam.gserviceaccount.com
parent
4736248967
commit
c2787e1cf4
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user