mirror of
https://github.com/unisonweb/unison.git
synced 2024-09-11 10:35:57 +03:00
This is for consistency with the `cmark` style. Now the blocks we still pretty-print ourselves will match the bulk of them that `cmark` produces.
38 lines
779 B
Markdown
38 lines
779 B
Markdown
This tests an previously erroneous case in the pattern compiler. It was assuming
|
|
that the variables bound in a guard matched the variables bound in the rest of
|
|
the branch exactly, but apparently this needn't be the case.
|
|
|
|
``` unison
|
|
foo t =
|
|
(x, _) = t
|
|
f w = w + x
|
|
|
|
match t with
|
|
(x, y)
|
|
| y < 5 -> f x
|
|
| otherwise -> x + y
|
|
|
|
> foo (10,20)
|
|
```
|
|
|
|
``` ucm
|
|
|
|
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, Nat) -> Nat
|
|
|
|
Now evaluating any watch expressions (lines starting with
|
|
`>`)... Ctrl+C cancels.
|
|
|
|
10 | > foo (10,20)
|
|
⧩
|
|
30
|
|
|
|
```
|