mirror of
https://github.com/unisonweb/unison.git
synced 2024-10-10 17:07:24 +03:00
992 B
992 B
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
.
foo _ =
id x = x
void x = ()
bar = let
void (Debug.watch "hello" "hello")
result = 5
void (Debug.watch "goodbye" "goodbye")
result
baz = id bar
baz
> !foo
Loading changes detected in scratch.u.
I found and typechecked these definitions in scratch.u. If you
do an `add` or `update`, here's how your codebase would
change:
⍟ These new definitions are ok to `add`:
foo : ∀ _. _ -> Nat
Now evaluating any watch expressions (lines starting with
`>`)... Ctrl+C cancels.
12 | > !foo
⧩
5
.> add
⍟ I've added these definitions:
foo : ∀ _. _ -> Nat