unison/unison-src/transcripts/anf-tests.md

35 lines
578 B
Markdown
Raw Permalink Normal View History

```ucm:hide
scratch/main> builtins.merge
```
This tests a variable related bug in the ANF compiler.
The nested let would get flattened out, resulting in:
bar = result
which would be handled by renaming. However, the _context_ portion of
the rest of the code was not being renamed correctly, so `bar` would
remain in the definition of `baz`.
```unison
foo _ =
id x = x
2022-12-02 08:51:11 +03:00
void x = ()
bar = let
2022-12-02 08:51:11 +03:00
void (Debug.watch "hello" "hello")
result = 5
2022-12-02 08:51:11 +03:00
void (Debug.watch "goodbye" "goodbye")
result
baz = id bar
baz
> !foo
```
```ucm
scratch/main> add
```