mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-28 14:24:45 +00:00
![]() This ensures that we use the correct specialized variable at the call site of a function. In #2725 what happened was that a generalized function was aliased, causing it to undergo generalization again. Then, we lost the variable used to specialize at the call site. Instead, just link to the partial proc being aliased directly. There is an added benefit here, which is that we can avoid the possibly-quadratic replacement of symbols in the generated statement. Closes #2725 |
||
---|---|---|
.. | ||
src | ||
build.rs | ||
Cargo.toml | ||
README.md |
Running our CodeGen tests
Our code generation tests are all in this crate. Feature flags are used to run the tests with a specific backend. For convenience, some aliases are added in .cargo/config
:
[alias]
test-gen-llvm = "test -p test_gen"
test-gen-dev = "test -p test_gen --no-default-features --features gen-dev"
test-gen-wasm = "test -p test_gen --no-default-features --features gen-wasm"
So we can run:
cargo test-gen-llvm
To run the gen tests with the LLVM backend. To filter tests, append a filter like so:
> cargo test-gen-wasm wasm_str::small
Finished test [unoptimized + debuginfo] target(s) in 0.13s
Running src/tests.rs (target/debug/deps/test_gen-b4ad63a9dd50f050)
running 2 tests
test wasm_str::small_str_literal ... ok
test wasm_str::small_str_zeroed_literal ... ok