unison/unison-src/transcripts/sum-type-update-conflicts.md
Greg Pfeil 75c228f4e1
Use CommonMark-compatible info strings everywhere
The bulk of this updates transcripts to put spaces around the language
name in code blocks. E.g.,
```` markdown
```ucm:hide
````
becomes
```` markdown
``` ucm :hide
````

This corresponds to
https://share.unison-lang.org/@unison/website/contributions/11, which
updates the docs in the same way.

This is effectively a fix for #5214, but that issue also has good recommendations for future changes to info strings, so
I don’t know that it should be closed.
2024-10-08 14:23:34 -06:00

747 B

Regression test for updates which conflict with an existing data constructor

https://github.com/unisonweb/unison/issues/2786

scratch/main> builtins.merge lib.builtins

First we add a sum-type to the codebase.

structural type X = x
scratch/main> add

Now we update the type, changing the name of the constructors, but, we simultaneously add a new top-level term with the same name as the old constructor.

structural type X = y | z

X.x : Text
X.x = "some text that's not in the codebase"

dependsOnX = Text.size X.x

This update should succeed since the conflicted constructor is removed in the same update that the new term is being added.

scratch/main> update.old