🔎 Search Terms
explicit resource management, using, await using, switch, case clause, default clause
🕗 Version & Regression Information
- This changed between versions ______ and _______
- This changed in commit or PR _______
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about _________
- I was unable to test this on prior versions because _______
⏯ Playground Link
https://www.typescriptlang.org/play/?target=99&ts=6.0.0-dev.20251030#code/M4dwlgLgxgFgBACgLIEMIwHQCcUDsAmA9gLYICUZcA3gFBxxQrACmcADAFx31wCuwYXAHM4+AExs4AXmpwA2gGUAnsQBGhADYZ8YYAAdCLALrlqAXzhmA3N3qqszFAGsb3RizgBGLjzgoQKJB8AsKiYp7Ssooq6lo6+obMJpRUFta2cPaOLjRmNDTMAB4GWBDmNEA
💻 Code
switch (Math.random()) {
case 0:
using d20 = { [Symbol.dispose]() {} };
break;
case 1:
await using d21 = { [Symbol.dispose]() {} };
break;
}
export {}
🙁 Actual behavior
No error happens.
🙂 Expected behavior
The error is reported that using / await using cannot be used here.
Additional information about the issue
The spec was updated to disallow this (rbuckton/ecma262#14).
Related PRs in other projects:
Some tests needs to be updated. For example:
|
switch (Math.random()) { |
|
case 0: |
|
using d20 = { [Symbol.dispose]() {} }; |
|
break; |
|
|
|
case 1: |
|
using d21 = { [Symbol.dispose]() {} }; |
|
break; |
|
} |
|
|
|
if (true) |
|
switch (0) { |
|
case 0: |
|
using d22 = { [Symbol.dispose]() {} }; |
|
break; |
|
} |
🔎 Search Terms
explicit resource management, using, await using, switch, case clause, default clause
🕗 Version & Regression Information
⏯ Playground Link
https://www.typescriptlang.org/play/?target=99&ts=6.0.0-dev.20251030#code/M4dwlgLgxgFgBACgLIEMIwHQCcUDsAmA9gLYICUZcA3gFBxxQrACmcADAFx31wCuwYXAHM4+AExs4AXmpwA2gGUAnsQBGhADYZ8YYAAdCLALrlqAXzhmA3N3qqszFAGsb3RizgBGLjzgoQKJB8AsKiYp7Ssooq6lo6+obMJpRUFta2cPaOLjRmNDTMAB4GWBDmNEA
💻 Code
🙁 Actual behavior
No error happens.
🙂 Expected behavior
The error is reported that
using/await usingcannot be used here.Additional information about the issue
The spec was updated to disallow this (rbuckton/ecma262#14).
Related PRs in other projects:
usingdeclarations acornjs/acorn#1374Some tests needs to be updated. For example:
TypeScript/tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarations.1.ts
Lines 98 to 113 in 1654ebf