Inline traits for specialization in Scala 3 (v2) #20254
Draft
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.
An alternative implementation of #17329. This implementation uses a two-step approach to inlining the definitions. The basic design is discussed in section
5.3.2
of https://infoscience.epfl.ch/record/303591?ln=en.The idea is to inline a trait
into
The
TraitInlining
transform will generate the definition that are inA
but not inB
. Thesuper[A].f(x1, ...)
will be treated as an inline call in theInlining
phase.