class PrimitiveForwarders
extends MiniPhaseTransform with IdentityDenotTransformer

This phase adds forwarder where mixedin generic and primitive typed methods have a missmatch. In particular for every method that is declared both as generic with a primitive type and with a primitive type <mods> def f[Ts](ps1)...(psN): U in trait Mand def fTs...(psN): V = ...in implemented in N where U is a primitive and V a polymorphic type (or vice versa) needs:

def fTs...(psN): U = super[N].fTs...(psN)

IMPORTANT: When\If Valhalla happens, we'll need to move mixin before erasure and than this code will need to be rewritten as it will instead change super-class.

Constructors

PrimitiveForwarders ( )

Members

[+] override def phaseName : String

A name given to the Phase that can be used to debug the compiler. For instance, it is possible to print trees after a given phase using:

A name given to the Phase that can be used to debug the compiler. For instance, it is possible to print trees after a given phase using:

$ ./bin/dotc -Xprint:<phaseNameHere> sourceFile.scala
[+] override def runsAfter : Set [ Class [ Nothing <: Phase ] ]

List of names of phases that should precede this phase

List of names of phases that should precede this phase

[+] override def transformTemplate ( impl: Template ) ( implicit ctx: Context , info: TransformerInfo ) : Tree