Skip to content

Simplify enum derivation in Scala 3 #453

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Mar 11, 2023
Merged

Simplify enum derivation in Scala 3 #453

merged 12 commits into from
Mar 11, 2023

Conversation

lihaoyi
Copy link
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