mirror of
https://github.com/oxc-project/oxc.git
synced 2026-09-14 19:36:11 +08:00
d6b6705f8f
Require `=>` when parsing TypeScript function and constructor types, while retaining `:` for function, method, and arrow return annotations. Previously, any token could be consumed as the separator, accepting invalid types such as `type F = (): number` and `type F = new () + number`. This also prevents a valid conditional expression from being silently grouped into the wrong arrows: ```ts const a = true, b = 1, c = 2; const f = a ? (b) : (): any => b ? c : (x = 1): any => x; console.log(typeof f); ``` The transformed program now prints `number`; previously it printed `function`.
Transformation Conformance Test Runner
Execution
This test runner uses the transformation plugin test suite from the Babel repository.
Additional tests are in the tests directory.
The failing test cases are listed in:
To get started, run
cargo run -p oxc_transform_conformance
or watch for changes
just watch 'cargo run -p oxc_transform_conformance'
Options
--filter
To filter for a specific test case, apply the --filter path option, e.g.
cargo run -p oxc_transform_conformance -- --filter react/arrow-functions
--exec
The Babel test suite contains many exec.js files, which need to be executed by a runtime.
These tests are executed with Node.js and Vitest. Apply the --exec flag:
cargo run -p oxc_transform_conformance -- --exec
This is also available as:
just test-transform
The failing test cases are listed in: