roc/crates/compiler/test_gen
Ayaz Hafiz e1afd964c7
Correct when fixpoint-fixed type variables can be reunified
With fixpoint-fixing, we don't want to re-unify type variables that were
just fixed, because doing so may change their shapes in ways that we
explicitly just set them up not to be changed (as fixpoint-fixing
clobbers type variable contents).

However, this restriction need only apply when we re-unify two type
variables that were both involved in the same fixpoint-fixing cycle. If
we have a type variable T that was involved in fixpoint-fixing, and we
unify it with U that wasn't, we know that the $U \notin \bar{T}$, where
$\bar{T}$ is the recursive closure of T. In these cases, we do want to
permit the usual in-band unification of $T \sim U$.
2022-11-21 15:57:36 -06:00
..
benches make the mmapped buffer configurable 2022-07-26 23:36:25 +02:00
src Correct when fixpoint-fixed type variables can be reunified 2022-11-21 15:57:36 -06:00
.gitignore moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
build.rs Closes #4423, link build command refactoring 2022-10-31 21:32:38 +01:00
Cargo.toml more workspace dependencies 2022-11-13 16:10:02 +01:00
README.md Add language to all fenced code blocks 2022-09-09 01:12:31 -06:00

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