unison/unison-src/transcripts/fix2663.md

24 lines
410 B
Markdown
Raw Permalink Normal View History

Tests a variable capture problem.
After pattern compilation, the match would end up:
T p1 p3 p3
and z would end up referring to the first p3 rather than the second.
```ucm:hide
scratch/main> builtins.merge
```
```unison
structural type Trip = T Nat Nat Nat
bad : Nat -> (Nat, Nat)
bad x = match Some (Some x) with
Some (Some x) -> match T 3 4 5 with
T _ _ z -> (x, z)
_ -> (0,0)
> bad 2
```