Skip to content

Simplify enum derivation in Scala 3#453

Merged
lihaoyi merged 12 commits intomainfrom
enums3
Mar 11, 2023
Merged

Simplify enum derivation in Scala 3#453
lihaoyi merged 12 commits intomainfrom
enums3

Conversation

@lihaoyi
Copy link
Copy Markdown
Member

@lihaoyi lihaoyi commented Mar 10, 2023

This PR allows a simple derives call to work on Scala 3 enums.

We add a new macroRWAll macro, that derives now forwards to. This can be called once on each sealed trait or enum and will automatically generate the macroR calls on all the sub-classes. We then add a pair of superTypeReader/superTypeWriter forwarders to allow sub-classes to make use of super-class readers and writers automatically without any input from the user.

Note that this approach does not work in Scala 2; while macroRWAll can be defined, superTypeReader/superTypeWriter seem to cause diverging implicit expansions. So for now I leave the Scala 2 experience unchanged

@lihaoyi lihaoyi merged commit 26cd155 into main Mar 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant