Reminder: All AI usage must be disclosed in commit messages, see CONTRIBUTING.md for more details.
cargo build # Build all crates cargo test # Run all tests cargo test -p <crate> # Run tests for a specific crate (e.g., cargo test -p hir-ty) cargo lint # Run clippy on all targets cargo xtask codegen # Run code generation cargo xtask tidy # Run tidy checks UPDATE_EXPECT=1 cargo test # Update test expectations (snapshot tests) RUN_SLOW_TESTS=1 cargo test # Run heavy/slow tests
Cancelled payloadGenerated code is committed to the repo. Grammar and AST are generated from ungrammar. Run cargo test -p xtask after adding inline parser tests (// test test_name comments).
Tests are snapshot-based using expect-test. Test fixtures use a mini-language:
$0 marks cursor position// ^^^^ labels attach to the line above//- minicore: sized, fn includes parts of minicore (minimal core library)//- /path/to/file.rs crate:name deps:dep1,dep2 declares files/cratesstdx::never! and stdx::always! instead of assert! for recoverable invariantsT![fn] macro instead of SyntaxKind::FN_KWcrate → krate, fn → func, struct → strukt, type → ty