Fix empty statement handling in using declaration for-of loops

Co-authored-by: weswigham <2932786+weswigham@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2025-06-25 21:09:09 +00:00
parent 0b3bf33a8e
commit 957cf79304

View File

@ -317,8 +317,11 @@ export function transformESNext(context: TransformationContext): (x: SourceFile
const usingVarStatement = factory.createVariableStatement(/*modifiers*/ undefined, usingVarList);
// Wrap the original loop body in an additional block scope to handle shadowing
// Don't create an extra block if the original statement is empty
const isEmptyBlock = isBlock(node.statement) && node.statement.statements.length === 0;
// Don't create an extra block if the original statement is empty or contains only empty statements
const isEmptyBlock = isBlock(node.statement) && (
node.statement.statements.length === 0 ||
node.statement.statements.every(stmt => stmt.kind === SyntaxKind.EmptyStatement)
);
const shouldWrapInBlock = !isEmptyBlock;
const statements: Statement[] = [usingVarStatement];