add "constructor alias" precondition violation example

This commit is contained in:
Travis Staton 2024-03-19 11:02:12 -04:00
parent a08f509aa5
commit 7455187b43
No known key found for this signature in database
GPG Key ID: 431DD911A00DAE49
2 changed files with 71 additions and 0 deletions

View File

@ -425,3 +425,28 @@ proj/main> merge2 /topic
```ucm:hide
.> project.delete proj
```
### Constructor alias
```ucm:hide
.> project.create-empty proj
proj/main> builtins.mergeio
```
```unison
unique type Foo = Bar
```
```ucm
proj/main> add
proj/main> branch topic
proj/topic> alias.term Foo.Bar Foo.Alias
```
```ucm:error
proj/main> merge2 /topic
```
```ucm:hide
.> project.delete proj
```

View File

@ -885,3 +885,49 @@ proj/main> merge2 /topic
Defns in lib
```
### Constructor alias
```unison
unique type Foo = Bar
```
```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`:
type Foo
```
```ucm
proj/main> add
⍟ I've added these definitions:
type Foo
proj/main> branch topic
Done. I've created the topic branch based off of main.
Tip: Use `merge /topic /main` to merge your work back into the
main branch.
proj/topic> alias.term Foo.Bar Foo.Alias
Done.
```
```ucm
proj/main> merge2 /topic
On topic, Foo.Alias and Foo.Bar are aliases. Every type
declaration must have exactly one name for each constructor.
```