Compiler Verify
Run all verification steps for compiler changes.
Arguments:
- $ARGUMENTS: Optional test pattern for
yarn snap -p <pattern>
Instructions
-
Detect what changed by running
git diff --name-only HEAD(or vs the base branch). Categorize changes:- TS changes: files in
compiler/packages/ - Rust changes: files in
compiler/crates/ - Both: run all checks
- TS changes: files in
-
If TS changed, run these sequentially (stop on failure):
yarn snap(oryarn snap -p <pattern>if a pattern was provided) — compiler testsyarn test— test full compileryarn workspace babel-plugin-react-compiler lint— lint compiler source
-
If Rust changed, run these sequentially (stop on failure):
bash compiler/scripts/test-babel-ast.sh— Babel AST round-trip testsbash compiler/scripts/test-rust-port.sh— full Rust port test suite (compares Rust vs TS compiler output across all passes; must have 0 failures — do not regress)yarn snap --rust— end-to-end snap tests using the Rust compiler (compares compiled output and logger events against.expect.mdfixtures; useyarn snap --rust -p <pattern>for focused checks)
-
Always run (from the repo root):
yarn prettier-all— format all changed files
-
If implementing a plan doc, check:
- Plan doc has no unaddressed "Remaining Work" items
- Plan doc status is updated to reflect current state
-
Report results: list each step as passed/failed. On failure, stop and show the error with suggested fixes.
Common Mistakes
- Running
yarn snapwithout-pis fine for full verification, but slow. Use-pfor focused checks. - Running prettier from compiler/ — must run from the repo root.
- Forgetting Rust tests — if you touched
.rsfiles, always run the round-trip test andyarn snap --rust.