Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The culprit of this seems to be a weird interaction of the following:
Transformer[A, B]
that really is aTransformer.Identity[A, B >: A]
(note the type bounds) underneath,I also managed to create a reproduction for this issue which probably points to a bug in the metaprogramming facilities of Scala 3 (that I'll make sure to report):
If we were to take our original example:
and call
ReproTransformer.derived[A, A.B]
we'd end up with the issue as in #26.However if we were to alter the
INTERESTING
block from the example above to just this (note how I only got rid of the pattern match that shouldn't change the semantics):then
ReproTransformer.derived[A, A.B]
compiles fine.The issue is resolved by special-casing quote matches on
Tranformer.Identity
inProductTransformerMacros
until this weird interaction is gone (?)