roc/crates/compiler/test_mono
Ayaz Hafiz a3de22c88a
Do not fixup recursion pointers in non-recursive lambda sets
If a lambda set is non-recursive, but contains naked recursion pointers,
we should not fill those naked pointers in with the slot of the lambda
set during interning. Such naked pointers must belong to an encompassing
lambda set that is in fact recursive, and will be filled in later.

For example, `LambdaSet([Foo, LambdaSet(Bar, [<rec>])] as <rec>)` should
not have the inner lambda set's capture be filled in with itself.

Also, during reification of recursion pointers, we do not need to
traverse re-inserted lambda sets again, since they were just fixed-up.

Closes #5026
2023-02-13 17:14:04 -06:00
..
generated Do not fixup recursion pointers in non-recursive lambda sets 2023-02-13 17:14:04 -06:00
src Do not fixup recursion pointers in non-recursive lambda sets 2023-02-13 17:14:04 -06:00
Cargo.toml Provide roc_cache_dir everywhere 2022-11-20 19:53:48 -05:00