aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/VCElideAllocations.scala
Commit message (Collapse)AuthorAgeFilesLines
* Move the inlining of value class methods before ErasureGuillaume Martres2015-07-071-0/+41
VCInline is split into two phases: - VCInlineMethods (before Erasure) replaces value class method calls by calls to extension methods - VCElideAllocations (after Erasure) handles == and optimizing the unboxing of a boxed value class, as VCInline did before. This should not affect anything currently, but in the future we will have phases before Erasure that mangle names (like TypeSpecializer, see #630), being able to put these phases after VCInlineMethods means that VCInlineMethods does not need to know anything about how these phases mangle names, this reduces the coupling between phases. The trade-off is that VCInlineMethods needs to deal with type parameters and multiple parameter lists whereas VCInline didn't.