mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-04 21:53:42 -06:00
Fix empty block generation in using declaration for-of loops and remove obsolete comment
Co-authored-by: weswigham <2932786+weswigham@users.noreply.github.com>
This commit is contained in:
parent
8f3df02544
commit
0b3bf33a8e
@ -292,11 +292,6 @@ export function transformESNext(context: TransformationContext): (x: SourceFile
|
||||
return visitEachChild(node, visitor, context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Collects all variable declarations that shadow a given identifier name in a statement.
|
||||
*/
|
||||
|
||||
|
||||
function visitForOfStatement(node: ForOfStatement) {
|
||||
if (isUsingVariableDeclarationList(node.initializer)) {
|
||||
// given:
|
||||
@ -322,9 +317,17 @@ 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
|
||||
const wrappedStatement = isBlock(node.statement) ?
|
||||
node.statement :
|
||||
factory.createBlock([node.statement], /*multiLine*/ true);
|
||||
// Don't create an extra block if the original statement is empty
|
||||
const isEmptyBlock = isBlock(node.statement) && node.statement.statements.length === 0;
|
||||
const shouldWrapInBlock = !isEmptyBlock;
|
||||
|
||||
const statements: Statement[] = [usingVarStatement];
|
||||
if (shouldWrapInBlock) {
|
||||
const wrappedStatement = isBlock(node.statement) ?
|
||||
node.statement :
|
||||
factory.createBlock([node.statement], /*multiLine*/ true);
|
||||
statements.push(wrappedStatement);
|
||||
}
|
||||
|
||||
return visitNode(
|
||||
factory.updateForOfStatement(
|
||||
@ -334,10 +337,7 @@ export function transformESNext(context: TransformationContext): (x: SourceFile
|
||||
factory.createVariableDeclaration(temp),
|
||||
], NodeFlags.Const),
|
||||
node.expression,
|
||||
factory.createBlock([
|
||||
usingVarStatement,
|
||||
wrappedStatement,
|
||||
], /*multiLine*/ true),
|
||||
factory.createBlock(statements, /*multiLine*/ true),
|
||||
),
|
||||
visitor,
|
||||
isStatement,
|
||||
|
||||
@ -88,8 +88,6 @@ function main() {
|
||||
const env_1 = { stack: [], error: void 0, hasError: false };
|
||||
try {
|
||||
const d1 = __addDisposableResource(env_1, d1_1, true);
|
||||
{
|
||||
}
|
||||
}
|
||||
catch (e_2) {
|
||||
env_1.error = e_2;
|
||||
|
||||
@ -76,8 +76,6 @@ async function main() {
|
||||
const env_1 = { stack: [], error: void 0, hasError: false };
|
||||
try {
|
||||
const d1 = __addDisposableResource(env_1, d1_1, true);
|
||||
{
|
||||
}
|
||||
}
|
||||
catch (e_2) {
|
||||
env_1.error = e_2;
|
||||
|
||||
@ -64,8 +64,6 @@ async function main() {
|
||||
const env_1 = { stack: [], error: void 0, hasError: false };
|
||||
try {
|
||||
const d1 = __addDisposableResource(env_1, d1_1, true);
|
||||
{
|
||||
}
|
||||
}
|
||||
catch (e_1) {
|
||||
env_1.error = e_1;
|
||||
|
||||
@ -128,8 +128,6 @@ function main() {
|
||||
case 3:
|
||||
_j.trys.push([3, 4, 5, 8]);
|
||||
d1 = __addDisposableResource(env_1, d1_1, true);
|
||||
{
|
||||
}
|
||||
return [3 /*break*/, 8];
|
||||
case 4:
|
||||
e_1 = _j.sent();
|
||||
|
||||
@ -77,8 +77,6 @@ function main() {
|
||||
const env_1 = { stack: [], error: void 0, hasError: false };
|
||||
try {
|
||||
const d1 = __addDisposableResource(env_1, d1_1, true);
|
||||
{
|
||||
}
|
||||
}
|
||||
catch (e_1) {
|
||||
env_1.error = e_1;
|
||||
|
||||
@ -65,8 +65,6 @@ async function main() {
|
||||
const env_1 = { stack: [], error: void 0, hasError: false };
|
||||
try {
|
||||
const d1 = __addDisposableResource(env_1, d1_1, true);
|
||||
{
|
||||
}
|
||||
}
|
||||
catch (e_1) {
|
||||
env_1.error = e_1;
|
||||
|
||||
@ -65,8 +65,6 @@ async function main() {
|
||||
const env_1 = { stack: [], error: void 0, hasError: false };
|
||||
try {
|
||||
const d1 = __addDisposableResource(env_1, d1_1, true);
|
||||
{
|
||||
}
|
||||
}
|
||||
catch (e_1) {
|
||||
env_1.error = e_1;
|
||||
|
||||
@ -117,8 +117,6 @@ function main() {
|
||||
case 2:
|
||||
_d.trys.push([2, 3, 4, 7]);
|
||||
d1 = __addDisposableResource(env_1, d1_1, true);
|
||||
{
|
||||
}
|
||||
return [3 /*break*/, 7];
|
||||
case 3:
|
||||
e_1 = _d.sent();
|
||||
|
||||
@ -87,8 +87,6 @@ function main() {
|
||||
const env_1 = { stack: [], error: void 0, hasError: false };
|
||||
try {
|
||||
const d1 = __addDisposableResource(env_1, d1_1, false);
|
||||
{
|
||||
}
|
||||
}
|
||||
catch (e_2) {
|
||||
env_1.error = e_2;
|
||||
|
||||
@ -77,8 +77,6 @@ async function main() {
|
||||
const env_1 = { stack: [], error: void 0, hasError: false };
|
||||
try {
|
||||
const d1 = __addDisposableResource(env_1, d1_1, false);
|
||||
{
|
||||
}
|
||||
}
|
||||
catch (e_2) {
|
||||
env_1.error = e_2;
|
||||
|
||||
@ -65,8 +65,6 @@ async function main() {
|
||||
const env_1 = { stack: [], error: void 0, hasError: false };
|
||||
try {
|
||||
const d1 = __addDisposableResource(env_1, d1_1, false);
|
||||
{
|
||||
}
|
||||
}
|
||||
catch (e_1) {
|
||||
env_1.error = e_1;
|
||||
|
||||
@ -123,8 +123,6 @@ function main() {
|
||||
env_1 = { stack: [], error: void 0, hasError: false };
|
||||
try {
|
||||
d1 = __addDisposableResource(env_1, d1_1, false);
|
||||
{
|
||||
}
|
||||
}
|
||||
catch (e_2) {
|
||||
env_1.error = e_2;
|
||||
|
||||
@ -62,8 +62,6 @@ for (const d1_1 of [{ [Symbol.dispose]() { } }, null, undefined]) {
|
||||
const env_1 = { stack: [], error: void 0, hasError: false };
|
||||
try {
|
||||
const d1 = __addDisposableResource(env_1, d1_1, false);
|
||||
{
|
||||
}
|
||||
}
|
||||
catch (e_1) {
|
||||
env_1.error = e_1;
|
||||
|
||||
@ -62,8 +62,6 @@ for (const d1_1 of [{ [Symbol.dispose]() { } }, null, undefined]) {
|
||||
const env_1 = { stack: [], error: void 0, hasError: false };
|
||||
try {
|
||||
const d1 = __addDisposableResource(env_1, d1_1, false);
|
||||
{
|
||||
}
|
||||
}
|
||||
catch (e_1) {
|
||||
env_1.error = e_1;
|
||||
|
||||
@ -62,8 +62,6 @@ for (const d1_1 of [{ [Symbol.dispose]() { } }, null, undefined]) {
|
||||
const env_1 = { stack: [], error: void 0, hasError: false };
|
||||
try {
|
||||
const d1 = __addDisposableResource(env_1, d1_1, false);
|
||||
{
|
||||
}
|
||||
}
|
||||
catch (e_1) {
|
||||
env_1.error = e_1;
|
||||
|
||||
@ -64,8 +64,6 @@ for (var _i = 0, _b = [(_a = {}, _a[Symbol.dispose] = function () { }, _a), null
|
||||
var env_1 = { stack: [], error: void 0, hasError: false };
|
||||
try {
|
||||
var d1 = __addDisposableResource(env_1, d1_1, false);
|
||||
{
|
||||
}
|
||||
}
|
||||
catch (e_1) {
|
||||
env_1.error = e_1;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user