Skip to content

Commit e5ee38f

Browse files
committed
chore(transformer): enable class-properties plugin (#7750)
Done!
1 parent 0592a8b commit e5ee38f

File tree

11 files changed

+13456
-2878
lines changed

11 files changed

+13456
-2878
lines changed

crates/oxc_transformer/src/options/env.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,7 @@ impl EnvOptions {
8484
es2021: ES2021Options { logical_assignment_operators: true },
8585
es2022: ES2022Options {
8686
class_static_block: true,
87-
class_properties: if include_unfinished_plugins {
88-
Some(ClassPropertiesOptions::default())
89-
} else {
90-
None
91-
},
87+
class_properties: Some(ClassPropertiesOptions::default()),
9288
},
9389
}
9490
}
@@ -140,9 +136,7 @@ impl EnvOptions {
140136
}
141137
}
142138
engine_targets.insert(Engine::Es, es_target.unwrap_or(ESTarget::default()).version());
143-
let mut env_options = EnvOptions::from(engine_targets);
144-
env_options.es2022.class_properties = None;
145-
Ok(env_options)
139+
Ok(EnvOptions::from(engine_targets))
146140
}
147141
}
148142

crates/oxc_transformer/src/options/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,7 @@ impl From<ESTarget> for TransformOptions {
124124
use crate::options::es_target::ESVersion;
125125
let mut engine_targets = EngineTargets::default();
126126
engine_targets.insert(Engine::Es, target.version());
127-
let mut env = EnvOptions::from(engine_targets);
128-
env.es2022.class_properties = None;
127+
let env = EnvOptions::from(engine_targets);
129128
Self { env, ..Self::default() }
130129
}
131130
}

crates/oxc_transformer/tests/integrations/es_target.rs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ fn es_target() {
2121
("es2020", "a ||= b"),
2222
("es2019", "1n ** 2n"), // test target error
2323
("es2021", "class foo { static {} }"),
24-
("es2021", "class Foo { #a; }"), // Plugin not ready
24+
("es2021", "class Foo { #a; }"),
2525
];
2626

2727
// Test no transformation for esnext.
@@ -54,13 +54,6 @@ fn es_target() {
5454
}
5555
}
5656

57-
#[test]
58-
fn no_class_properties() {
59-
let code = "class Foo { #a; }";
60-
let options = TransformOptions::from(ESTarget::from_str("es2015").unwrap());
61-
assert_eq!(test(code, &options), Ok(codegen(code, SourceType::mjs())));
62-
}
63-
6457
#[test]
6558
fn target_list_pass() {
6659
// https://vite.dev/config/build-options.html#build-target

crates/oxc_transformer/tests/integrations/snapshots/es_target.snap

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
---
22
source: crates/oxc_transformer/tests/integrations/es_target.rs
3-
assertion_line: 50
4-
snapshot_kind: text
53
---
64
########## 0 es5
75
() => {}
@@ -80,13 +78,16 @@ a || (a = b);
8078
########## 10 es2021
8179
class foo { static {} }
8280
----------
83-
class foo {
84-
static #_ = (() => {})();
85-
}
81+
class foo {}
82+
(() => {})();
8683

8784
########## 11 es2021
8885
class Foo { #a; }
8986
----------
87+
import _classPrivateFieldInitSpec from '@babel/runtime/helpers/classPrivateFieldInitSpec';
88+
var _a = new WeakMap();
9089
class Foo {
91-
#a;
90+
constructor() {
91+
_classPrivateFieldInitSpec(this, _a, void 0);
92+
}
9293
}

napi/transform/test/transform.test.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,16 @@ describe('target', () => {
101101
const ret = transform('test.js', code, { target: 'es2015' });
102102
expect(ret.errors.length).toBe(0);
103103
expect(ret.code).toBeDefined();
104-
expect(ret.code).toEqual(code);
104+
expect(ret.code).toMatchInlineSnapshot(`
105+
"import _classPrivateFieldInitSpec from "@babel/runtime/helpers/classPrivateFieldInitSpec";
106+
var _a = new WeakMap();
107+
class Foo {
108+
constructor() {
109+
_classPrivateFieldInitSpec(this, _a, void 0);
110+
}
111+
}
112+
"
113+
`);
105114
});
106115
});
107116

tasks/coverage/snapshots/semantic_babel.snap

Lines changed: 56 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ commit: 54a8389f
22

33
semantic_babel Summary:
44
AST Parsed : 2218/2218 (100.00%)
5-
Positive Passed: 1889/2218 (85.17%)
5+
Positive Passed: 1885/2218 (84.99%)
66
tasks/coverage/babel/packages/babel-parser/test/fixtures/annex-b/enabled/3.3-function-in-if-body/input.js
77
semantic error: Symbol scope ID mismatch for "f":
88
after transform: SymbolId(0): ScopeId(4294967294)
@@ -26,12 +26,42 @@ semantic error: A 'return' statement can only be used within a function body.
2626
tasks/coverage/babel/packages/babel-parser/test/fixtures/core/uncategorised/328/input.js
2727
semantic error: A 'return' statement can only be used within a function body.
2828

29+
tasks/coverage/babel/packages/babel-parser/test/fixtures/es2022/class-private-methods/async/input.js
30+
semantic error: Scope flags mismatch:
31+
after transform: ScopeId(2): ScopeFlags(StrictMode | Function)
32+
rebuilt : ScopeId(4): ScopeFlags(Function)
33+
34+
tasks/coverage/babel/packages/babel-parser/test/fixtures/es2022/class-private-methods/async-generator/input.js
35+
semantic error: Scope flags mismatch:
36+
after transform: ScopeId(2): ScopeFlags(StrictMode | Function)
37+
rebuilt : ScopeId(4): ScopeFlags(Function)
38+
Scope flags mismatch:
39+
after transform: ScopeId(3): ScopeFlags(StrictMode)
40+
rebuilt : ScopeId(5): ScopeFlags(0x0)
41+
Scope flags mismatch:
42+
after transform: ScopeId(4): ScopeFlags(StrictMode)
43+
rebuilt : ScopeId(6): ScopeFlags(0x0)
44+
Scope flags mismatch:
45+
after transform: ScopeId(5): ScopeFlags(StrictMode)
46+
rebuilt : ScopeId(7): ScopeFlags(0x0)
47+
2948
tasks/coverage/babel/packages/babel-parser/test/fixtures/es2022/class-private-properties/await-in-private-property-in-params-of-async-arrow/input.js
3049
semantic error: Expected a semicolon or an implicit semicolon after a statement, but found none
3150

3251
tasks/coverage/babel/packages/babel-parser/test/fixtures/es2022/class-properties/arguments-in-key/input.js
3352
semantic error: 'arguments' is not allowed in class field initializer
3453

54+
tasks/coverage/babel/packages/babel-parser/test/fixtures/es2022/class-properties/await-identifier-in-computed-property-inside-params-of-function-inside-params-of-async-function/input.js
55+
semantic error: Bindings mismatch:
56+
after transform: ScopeId(0): ["_asyncToGenerator", "_defineProperty"]
57+
rebuilt : ScopeId(0): ["_asyncToGenerator", "_await", "_defineProperty"]
58+
Bindings mismatch:
59+
after transform: ScopeId(2): ["_await", "f", "x"]
60+
rebuilt : ScopeId(2): ["f", "x"]
61+
Symbol scope ID mismatch for "_await":
62+
after transform: SymbolId(3): ScopeId(2)
63+
rebuilt : SymbolId(2): ScopeId(0)
64+
3565
tasks/coverage/babel/packages/babel-parser/test/fixtures/es2022/class-properties/await-in-property-in-params-of-async-arrow/input.js
3666
semantic error: Expected a semicolon or an implicit semicolon after a statement, but found none
3767

@@ -80,8 +110,8 @@ rebuilt : ScopeId(1): []
80110

81111
tasks/coverage/babel/packages/babel-parser/test/fixtures/estree/class-private-property/typescript/input.js
82112
semantic error: Unresolved references mismatch:
83-
after transform: ["Array", "foo"]
84-
rebuilt : ["foo"]
113+
after transform: ["Array", "WeakMap", "foo", "require"]
114+
rebuilt : ["WeakMap", "foo", "require"]
85115

86116
tasks/coverage/babel/packages/babel-parser/test/fixtures/estree/typescript/enum/input.js
87117
semantic error: Bindings mismatch:
@@ -119,16 +149,16 @@ rebuilt : []
119149

120150
tasks/coverage/babel/packages/babel-parser/test/fixtures/estree/typescript/loc-index-property/input.js
121151
semantic error: Bindings mismatch:
122-
after transform: ScopeId(0): ["AssertsFoo", "Foo"]
123-
rebuilt : ScopeId(0): ["AssertsFoo"]
152+
after transform: ScopeId(0): ["AssertsFoo", "Foo", "_defineProperty"]
153+
rebuilt : ScopeId(0): ["AssertsFoo", "_defineProperty"]
124154
Scope children mismatch:
125155
after transform: ScopeId(0): [ScopeId(1), ScopeId(2)]
126156
rebuilt : ScopeId(0): [ScopeId(1)]
127157

128158
tasks/coverage/babel/packages/babel-parser/test/fixtures/estree/typescript/loc-index-property-babel-7/input.js
129159
semantic error: Bindings mismatch:
130-
after transform: ScopeId(0): ["AssertsFoo", "Foo"]
131-
rebuilt : ScopeId(0): ["AssertsFoo"]
160+
after transform: ScopeId(0): ["AssertsFoo", "Foo", "_defineProperty"]
161+
rebuilt : ScopeId(0): ["AssertsFoo", "_defineProperty"]
132162
Scope children mismatch:
133163
after transform: ScopeId(0): [ScopeId(1), ScopeId(2)]
134164
rebuilt : ScopeId(0): [ScopeId(1)]
@@ -188,7 +218,7 @@ rebuilt : []
188218
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/assert-predicate/asserts-this-with-predicate/input.ts
189219
semantic error: Symbol reference IDs mismatch for "Foo":
190220
after transform: SymbolId(0): [ReferenceId(0), ReferenceId(1)]
191-
rebuilt : SymbolId(0): []
221+
rebuilt : SymbolId(1): []
192222

193223
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/assert-predicate/asserts-var/input.ts
194224
semantic error: Scope children mismatch:
@@ -207,19 +237,19 @@ rebuilt : []
207237

208238
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/assign/TSTypeParameterInstantiation/input.ts
209239
semantic error: Symbol reference IDs mismatch for "AbstractClass":
210-
after transform: SymbolId(0): [ReferenceId(0), ReferenceId(1), ReferenceId(3)]
211-
rebuilt : SymbolId(0): [ReferenceId(0)]
240+
after transform: SymbolId(0): [ReferenceId(0), ReferenceId(1), ReferenceId(3), ReferenceId(9)]
241+
rebuilt : SymbolId(1): [ReferenceId(1), ReferenceId(2)]
212242
Symbol reference IDs mismatch for "ConcreteClass":
213243
after transform: SymbolId(2): [ReferenceId(4), ReferenceId(6)]
214-
rebuilt : SymbolId(1): [ReferenceId(1)]
244+
rebuilt : SymbolId(2): [ReferenceId(3)]
215245

216246
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/assign/TSTypeParameterInstantiation-babel-7/input.ts
217247
semantic error: Symbol reference IDs mismatch for "AbstractClass":
218-
after transform: SymbolId(0): [ReferenceId(0), ReferenceId(1), ReferenceId(3)]
219-
rebuilt : SymbolId(0): [ReferenceId(0)]
248+
after transform: SymbolId(0): [ReferenceId(0), ReferenceId(1), ReferenceId(3), ReferenceId(9)]
249+
rebuilt : SymbolId(1): [ReferenceId(1), ReferenceId(2)]
220250
Symbol reference IDs mismatch for "ConcreteClass":
221251
after transform: SymbolId(2): [ReferenceId(4), ReferenceId(6)]
222-
rebuilt : SymbolId(1): [ReferenceId(1)]
252+
rebuilt : SymbolId(2): [ReferenceId(3)]
223253

224254
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/cast/as/input.ts
225255
semantic error: Unresolved references mismatch:
@@ -266,8 +296,8 @@ rebuilt : ScopeId(5): []
266296

267297
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/class/async-named-properties/input.ts
268298
semantic error: Scope children mismatch:
269-
after transform: ScopeId(1): [ScopeId(2)]
270-
rebuilt : ScopeId(1): []
299+
after transform: ScopeId(1): [ScopeId(2), ScopeId(3)]
300+
rebuilt : ScopeId(1): [ScopeId(2)]
271301

272302
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/class/async-optional-method/input.js
273303
semantic error: Scope children mismatch:
@@ -400,8 +430,11 @@ semantic error: A required parameter cannot follow an optional parameter.
400430

401431
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/class/private-method-overload/input.ts
402432
semantic error: Scope children mismatch:
403-
after transform: ScopeId(1): [ScopeId(2), ScopeId(3), ScopeId(4)]
433+
after transform: ScopeId(1): [ScopeId(2), ScopeId(3), ScopeId(5)]
404434
rebuilt : ScopeId(1): [ScopeId(2)]
435+
Symbol flags mismatch for "_f":
436+
after transform: SymbolId(4): SymbolFlags(FunctionScopedVariable)
437+
rebuilt : SymbolId(3): SymbolFlags(BlockScopedVariable | Function)
405438

406439
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/class/properties/input.ts
407440
semantic error: Identifier `x` has already been declared
@@ -413,6 +446,11 @@ Identifier `x` has already been declared
413446
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/class/static/input.ts
414447
semantic error: Function implementation is missing or not immediately following the declaration.
415448

449+
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/class/static-asi/input.ts
450+
semantic error: Symbol flags mismatch for "_method":
451+
after transform: SymbolId(2): SymbolFlags(FunctionScopedVariable)
452+
rebuilt : SymbolId(3): SymbolFlags(BlockScopedVariable | Function)
453+
416454
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/const/initializer-ambient-context/input.ts
417455
semantic error: Bindings mismatch:
418456
after transform: ScopeId(0): ["N"]
@@ -1876,7 +1914,7 @@ rebuilt : ["f"]
18761914
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/type-arguments/instantiation-expression-asi/input.ts
18771915
semantic error: Scope children mismatch:
18781916
after transform: ScopeId(0): [ScopeId(1), ScopeId(2), ScopeId(3), ScopeId(4), ScopeId(5), ScopeId(6), ScopeId(7)]
1879-
rebuilt : ScopeId(0): [ScopeId(1), ScopeId(2), ScopeId(3), ScopeId(4), ScopeId(5), ScopeId(6)]
1917+
rebuilt : ScopeId(0): [ScopeId(1), ScopeId(2), ScopeId(3), ScopeId(4), ScopeId(6), ScopeId(8)]
18801918
Unresolved references mismatch:
18811919
after transform: ["f", "true"]
18821920
rebuilt : ["f"]

tasks/coverage/snapshots/semantic_misc.snap

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,23 +38,23 @@ rebuilt : []
3838

3939
tasks/coverage/misc/pass/oxc-3948-1.ts
4040
semantic error: Bindings mismatch:
41-
after transform: ScopeId(0): ["BrowserWorkingCopyBackupTracker", "CancellationToken", "DisposableStore", "EditorPart", "EditorService", "IEditorGroupsService", "IEditorService", "IFilesConfigurationService", "IInstantiationService", "ILifecycleService", "ILogService", "IUntitledTextResourceEditorInput", "IWorkingCopyBackup", "IWorkingCopyBackupService", "IWorkingCopyEditorHandler", "IWorkingCopyEditorService", "IWorkingCopyService", "InMemoryTestWorkingCopyBackupService", "LifecyclePhase", "Schemas", "TestServiceAccessor", "TestWorkingCopy", "URI", "UntitledTextEditorInput", "VSBuffer", "_asyncToGenerator", "assert", "bufferToReadable", "createEditorPart", "ensureNoDisposablesAreLeakedInTestSuite", "isWindows", "registerTestResourceEditor", "timeout", "toResource", "toTypedWorkingCopyId", "toUntypedWorkingCopyId", "workbenchInstantiationService", "workbenchTeardown"]
42-
rebuilt : ScopeId(0): ["BrowserWorkingCopyBackupTracker", "DisposableStore", "EditorService", "IEditorGroupsService", "IEditorService", "IFilesConfigurationService", "ILifecycleService", "ILogService", "IWorkingCopyBackupService", "IWorkingCopyEditorService", "IWorkingCopyService", "InMemoryTestWorkingCopyBackupService", "LifecyclePhase", "Schemas", "TestServiceAccessor", "TestWorkingCopy", "URI", "UntitledTextEditorInput", "VSBuffer", "_asyncToGenerator", "assert", "bufferToReadable", "createEditorPart", "ensureNoDisposablesAreLeakedInTestSuite", "isWindows", "registerTestResourceEditor", "timeout", "toResource", "toTypedWorkingCopyId", "toUntypedWorkingCopyId", "workbenchInstantiationService", "workbenchTeardown"]
41+
after transform: ScopeId(0): ["BrowserWorkingCopyBackupTracker", "CancellationToken", "DisposableStore", "EditorPart", "EditorService", "IEditorGroupsService", "IEditorService", "IFilesConfigurationService", "IInstantiationService", "ILifecycleService", "ILogService", "IUntitledTextResourceEditorInput", "IWorkingCopyBackup", "IWorkingCopyBackupService", "IWorkingCopyEditorHandler", "IWorkingCopyEditorService", "IWorkingCopyService", "InMemoryTestWorkingCopyBackupService", "LifecyclePhase", "Schemas", "TestServiceAccessor", "TestWorkingCopy", "URI", "UntitledTextEditorInput", "VSBuffer", "_asyncToGenerator", "_defineProperty", "assert", "bufferToReadable", "createEditorPart", "ensureNoDisposablesAreLeakedInTestSuite", "isWindows", "registerTestResourceEditor", "timeout", "toResource", "toTypedWorkingCopyId", "toUntypedWorkingCopyId", "workbenchInstantiationService", "workbenchTeardown"]
42+
rebuilt : ScopeId(0): ["BrowserWorkingCopyBackupTracker", "DisposableStore", "EditorService", "IEditorGroupsService", "IEditorService", "IFilesConfigurationService", "ILifecycleService", "ILogService", "IWorkingCopyBackupService", "IWorkingCopyEditorService", "IWorkingCopyService", "InMemoryTestWorkingCopyBackupService", "LifecyclePhase", "Schemas", "TestServiceAccessor", "TestWorkingCopy", "URI", "UntitledTextEditorInput", "VSBuffer", "_asyncToGenerator", "_defineProperty", "assert", "bufferToReadable", "createEditorPart", "ensureNoDisposablesAreLeakedInTestSuite", "isWindows", "registerTestResourceEditor", "timeout", "toResource", "toTypedWorkingCopyId", "toUntypedWorkingCopyId", "workbenchInstantiationService", "workbenchTeardown"]
4343
Symbol reference IDs mismatch for "URI":
4444
after transform: SymbolId(1): [ReferenceId(109), ReferenceId(117), ReferenceId(156), ReferenceId(158), ReferenceId(160), ReferenceId(162)]
45-
rebuilt : SymbolId(1): [ReferenceId(158), ReferenceId(160), ReferenceId(162), ReferenceId(164)]
45+
rebuilt : SymbolId(1): [ReferenceId(161), ReferenceId(163), ReferenceId(165), ReferenceId(167)]
4646
Symbol reference IDs mismatch for "IEditorService":
4747
after transform: SymbolId(2): [ReferenceId(23), ReferenceId(24), ReferenceId(67), ReferenceId(184)]
48-
rebuilt : SymbolId(2): [ReferenceId(17), ReferenceId(58), ReferenceId(185)]
48+
rebuilt : SymbolId(2): [ReferenceId(17), ReferenceId(60), ReferenceId(188)]
4949
Symbol reference IDs mismatch for "IEditorGroupsService":
5050
after transform: SymbolId(4): [ReferenceId(25), ReferenceId(26), ReferenceId(57), ReferenceId(176)]
51-
rebuilt : SymbolId(3): [ReferenceId(18), ReferenceId(49), ReferenceId(178)]
51+
rebuilt : SymbolId(3): [ReferenceId(18), ReferenceId(51), ReferenceId(181)]
5252
Symbol reference IDs mismatch for "EditorService":
5353
after transform: SymbolId(5): [ReferenceId(61), ReferenceId(64), ReferenceId(178), ReferenceId(181)]
54-
rebuilt : SymbolId(4): [ReferenceId(55), ReferenceId(182)]
54+
rebuilt : SymbolId(4): [ReferenceId(57), ReferenceId(185)]
5555
Symbol reference IDs mismatch for "IWorkingCopyBackupService":
5656
after transform: SymbolId(7): [ReferenceId(11), ReferenceId(12), ReferenceId(51), ReferenceId(170)]
57-
rebuilt : SymbolId(5): [ReferenceId(11), ReferenceId(43), ReferenceId(172)]
57+
rebuilt : SymbolId(5): [ReferenceId(11), ReferenceId(45), ReferenceId(175)]
5858
Symbol reference IDs mismatch for "IFilesConfigurationService":
5959
after transform: SymbolId(10): [ReferenceId(13), ReferenceId(14)]
6060
rebuilt : SymbolId(8): [ReferenceId(12)]
@@ -72,19 +72,19 @@ after transform: SymbolId(17): [ReferenceId(38), ReferenceId(87)]
7272
rebuilt : SymbolId(13): [ReferenceId(31)]
7373
Symbol reference IDs mismatch for "InMemoryTestWorkingCopyBackupService":
7474
after transform: SymbolId(19): [ReferenceId(43), ReferenceId(46), ReferenceId(165)]
75-
rebuilt : SymbolId(15): [ReferenceId(38), ReferenceId(167)]
75+
rebuilt : SymbolId(15): [ReferenceId(40), ReferenceId(170)]
7676
Symbol reference IDs mismatch for "TestServiceAccessor":
7777
after transform: SymbolId(21): [ReferenceId(1), ReferenceId(40), ReferenceId(71), ReferenceId(155), ReferenceId(188)]
78-
rebuilt : SymbolId(17): [ReferenceId(62), ReferenceId(189)]
78+
rebuilt : SymbolId(17): [ReferenceId(64), ReferenceId(192)]
7979
Symbol reference IDs mismatch for "IWorkingCopyEditorService":
8080
after transform: SymbolId(32): [ReferenceId(21), ReferenceId(22)]
8181
rebuilt : SymbolId(26): [ReferenceId(16)]
8282
Symbol reference IDs mismatch for "TestWorkingCopyBackupTracker":
8383
after transform: SymbolId(39): [ReferenceId(42), ReferenceId(74), ReferenceId(154), ReferenceId(215)]
84-
rebuilt : SymbolId(34): [ReferenceId(65), ReferenceId(216)]
84+
rebuilt : SymbolId(35): [ReferenceId(67), ReferenceId(219)]
8585
Unresolved reference IDs mismatch for "Promise":
8686
after transform: [ReferenceId(36), ReferenceId(39), ReferenceId(82), ReferenceId(114), ReferenceId(153), ReferenceId(282)]
87-
rebuilt : [ReferenceId(289)]
87+
rebuilt : [ReferenceId(292)]
8888

8989
tasks/coverage/misc/pass/oxc-4449.ts
9090
semantic error: Bindings mismatch:

0 commit comments

Comments
 (0)