From 548b5e27b9b0f6bb6c4ee350b027ebb40f5f80aa Mon Sep 17 00:00:00 2001 From: Chloe Stefantsova Date: Thu, 5 Mar 2026 05:23:21 -0800 Subject: [PATCH] [dart2bytecode] Use more of new variable getters in dart2bytecode More of the Kernel AST node getters with return types reflecting the new variable model are used in this CL, pushing further the migration of dart2bytecode to the new variable model. This is a follow-up to https://dart-review.googlesource.com/c/sdk/+/485481 Part of https://github.com/dart-lang/sdk/issues/61572 Change-Id: I39e1ae53673b46a7fcc425fda24d43fb27e2f855 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/485740 Reviewed-by: Alexander Markov Commit-Queue: Chloe Stefantsova --- pkg/dart2bytecode/lib/bytecode_generator.dart | 8 ++++---- pkg/dart2bytecode/lib/local_vars.dart | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pkg/dart2bytecode/lib/bytecode_generator.dart b/pkg/dart2bytecode/lib/bytecode_generator.dart index ffadab8c5bb..66592527479 100644 --- a/pkg/dart2bytecode/lib/bytecode_generator.dart +++ b/pkg/dart2bytecode/lib/bytecode_generator.dart @@ -3739,7 +3739,7 @@ class BytecodeGenerator extends RecursiveVisitor { @override void visitVariableSet(VariableSet node) { - final v = node.variable; + final v = node.expressionVariable; _genPushContextIfCaptured(v); _generateNode(node.value); @@ -3781,7 +3781,7 @@ class BytecodeGenerator extends RecursiveVisitor { asm.emitJump(done); asm.bind(error); - asm.emitPushConstant(cp.addName(v.name!)); + asm.emitPushConstant(cp.addName(v.cosmeticName!)); _genDirectCall( throwLocalAlreadyInitialized, objectTable.getArgDescHandle(1), 1); asm.emitDrop1(); @@ -4282,14 +4282,14 @@ class BytecodeGenerator extends RecursiveVisitor { _enterScope(catchClause); - final exceptionVar = catchClause.exception; + final exceptionVar = catchClause.exceptionCatchVariable; if (exceptionVar != null) { _genPushContextIfCaptured(exceptionVar); asm.emitPush(exception); _genStoreVar(exceptionVar); } - final stackTraceVar = catchClause.stackTrace; + final stackTraceVar = catchClause.stackTraceCatchVariable; if (stackTraceVar != null) { tryBlock.needsStackTrace = true; _genPushContextIfCaptured(stackTraceVar); diff --git a/pkg/dart2bytecode/lib/local_vars.dart b/pkg/dart2bytecode/lib/local_vars.dart index dac84ce4935..82eaf404142 100644 --- a/pkg/dart2bytecode/lib/local_vars.dart +++ b/pkg/dart2bytecode/lib/local_vars.dart @@ -544,7 +544,7 @@ class _ScopeBuilder extends RecursiveVisitor { @override void visitVariableSet(VariableSet node) { - _useVariable(node.variable); + _useVariable(node.expressionVariable); node.visitChildren(this); } @@ -625,7 +625,7 @@ class _ScopeBuilder extends RecursiveVisitor { node.iterable.accept(this); ++_loopDepth; _enterScope(node); - node.variable.accept(this); + node.expressionVariable.accept(this); node.body.accept(this); _leaveScope(); --_loopDepth; @@ -1087,7 +1087,7 @@ class _Allocator extends RecursiveVisitor { node.iterable.accept(this); _enterScope(node); - node.variable.accept(this); + node.expressionVariable.accept(this); node.body.accept(this); _leaveScope(); @@ -1196,8 +1196,8 @@ class _Allocator extends RecursiveVisitor { @override void visitVariableSet(VariableSet node) { - final bool needsTemp = - node.parent is! ExpressionStatement && locals.isCaptured(node.variable); + final bool needsTemp = node.parent is! ExpressionStatement && + locals.isCaptured(node.expressionVariable); _visit(node, temps: needsTemp ? 1 : 0); }