Skip to content

Commit 1b9aba4

Browse files
authored
Materialize explicitResourceManagement parser plugin (#17346)
* feat: materialize explicitResourceManagement plugin * remove explicitResourceManagement from parser option schema * remove no plugin tests * move parser tests to es2026 * remove explicitResourceManagement parser option usage * add missing options.json * remove explicitResourceManagement from prettier Babel parser config * fix rebase error * add failed typescript test
1 parent 5fc1464 commit 1b9aba4

215 files changed

Lines changed: 30 additions & 92 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

eslint/babel-eslint-parser/test/typescript-estree.test.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,9 @@ function deeplyRemoveProperties(obj, props) {
338338
);
339339
const fixtures = getFixtures(parserTestFixtureRoot);
340340
const FAILURES = new Set([
341+
// Pending release https://github.com/microsoft/TypeScript/pull/61764
342+
"typescript/explicit-resource-management/valid-for-using-declaration-binding-of/input.js",
343+
341344
// ts-eslint/tsc does not support arrow generic in tsx mode
342345
"typescript/arrow-function/async-await-null/input.ts",
343346
"typescript/arrow-function/async-generic-after-await/input.ts",

packages/babel-generator/test/fixtures/await-using-declarations/options.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

packages/babel-generator/test/fixtures/comments/for-await-using-of-comments/options.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

packages/babel-generator/test/fixtures/using-declarations/options.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

packages/babel-parser/data/schema.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,6 @@
218218
"destructuringPrivate",
219219
"doExpressions",
220220
"estree",
221-
"explicitResourceManagement",
222221
"exportDefaultFrom",
223222
"flow",
224223
"flowComments",

packages/babel-parser/src/parser/statement.ts

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,6 @@ export default abstract class StatementParser extends ExpressionParser {
326326
this.chStartsBindingIdentifier(nextCh, next) ||
327327
this.isUnparsedContextual(next, "void")
328328
) {
329-
this.expectPlugin("explicitResourceManagement");
330329
return true;
331330
}
332331
return false;
@@ -341,7 +340,6 @@ export default abstract class StatementParser extends ExpressionParser {
341340
next = this.nextTokenInLineStartSince(next + 5);
342341
const nextCh = this.codePointAtPos(next);
343342
if (this.chStartsBindingIdentifier(nextCh, next)) {
344-
this.expectPlugin("explicitResourceManagement");
345343
return true;
346344
}
347345
}
@@ -566,7 +564,6 @@ export default abstract class StatementParser extends ExpressionParser {
566564
) {
567565
break;
568566
}
569-
this.expectPlugin("explicitResourceManagement");
570567
if (!this.allowsUsing()) {
571568
this.raise(Errors.UnexpectedUsingDeclaration, this.state.startLoc);
572569
} else if (!allowDeclaration) {
@@ -2601,8 +2598,8 @@ export default abstract class StatementParser extends ExpressionParser {
26012598
this.match(tt._const) ||
26022599
this.match(tt._var) ||
26032600
this.isLet() ||
2604-
(this.hasPlugin("explicitResourceManagement") &&
2605-
(this.isUsing() || this.isAwaitUsing()))
2601+
this.isUsing() ||
2602+
this.isAwaitUsing()
26062603
) {
26072604
throw this.raise(Errors.UnsupportedDefaultExport, this.state.startLoc);
26082605
}
@@ -2711,16 +2708,14 @@ export default abstract class StatementParser extends ExpressionParser {
27112708
}
27122709
}
27132710

2714-
if (this.hasPlugin("explicitResourceManagement")) {
2715-
if (this.isUsing()) {
2716-
this.raise(Errors.UsingDeclarationExport, this.state.startLoc);
2717-
return true;
2718-
}
2711+
if (this.isUsing()) {
2712+
this.raise(Errors.UsingDeclarationExport, this.state.startLoc);
2713+
return true;
2714+
}
27192715

2720-
if (this.isAwaitUsing()) {
2721-
this.raise(Errors.UsingDeclarationExport, this.state.startLoc);
2722-
return true;
2723-
}
2716+
if (this.isAwaitUsing()) {
2717+
this.raise(Errors.UsingDeclarationExport, this.state.startLoc);
2718+
return true;
27242719
}
27252720

27262721
return (

packages/babel-parser/src/plugins/typescript/index.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2297,10 +2297,7 @@ export default (superClass: ClassWithMixin<typeof Parser, IJSXParserMixin>) =>
22972297
declare: true,
22982298
});
22992299
case tt._using:
2300-
if (
2301-
this.hasPlugin("explicitResourceManagement") &&
2302-
this.isUsing()
2303-
) {
2300+
if (this.isUsing()) {
23042301
this.raise(
23052302
TSErrors.InvalidModifierOnUsingDeclaration,
23062303
this.state.startLoc,
@@ -2311,10 +2308,7 @@ export default (superClass: ClassWithMixin<typeof Parser, IJSXParserMixin>) =>
23112308
}
23122309
break;
23132310
case tt._await:
2314-
if (
2315-
this.hasPlugin("explicitResourceManagement") &&
2316-
this.isAwaitUsing()
2317-
) {
2311+
if (this.isAwaitUsing()) {
23182312
this.raise(
23192313
TSErrors.InvalidModifierOnAwaitUsingDeclaration,
23202314
this.state.startLoc,

packages/babel-parser/src/typings.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export type Plugin =
1717
| "deprecatedImportAssert"
1818
| "doExpressions"
1919
| IF_BABEL_7<"dynamicImport">
20-
| "explicitResourceManagement"
20+
| IF_BABEL_7<"explicitResourceManagement">
2121
| "exportDefaultFrom"
2222
| IF_BABEL_7<"exportNamespaceFrom">
2323
| "flow"

packages/babel-parser/test/fixtures/experimental/async-explicit-resource-management/invalid-duplicate-using-bindings/input.js renamed to packages/babel-parser/test/fixtures/es2026/async-explicit-resource-management/invalid-duplicate-using-bindings/input.js

File renamed without changes.

packages/babel-parser/test/fixtures/experimental/async-explicit-resource-management/invalid-duplicate-using-bindings/output.json renamed to packages/babel-parser/test/fixtures/es2026/async-explicit-resource-management/invalid-duplicate-using-bindings/output.json

File renamed without changes.

0 commit comments

Comments
 (0)