Dotty Documentation

0.2.0-bin-SNAPSHOT

class ElimErasedValueType
extends MiniPhaseTransform with InfoTransformer

This phase erases ErasedValueType to their underlying type. It also removes the synthetic cast methods u2evt$ and evt2u$ which are no longer needed afterwards. Finally, it checks that we don't introduce "double definitions" of pairs of methods that now have the same signature but were not considered matching before erasure.

[-] Constructors

ElimErasedValueType ( )

[-] Members

[+] private def checkNoClashes ( root: Symbol ) ( implicit ctx: Context ) : Unit

Check that we don't have pairs of methods that override each other after this phase, yet do not have matching types before erasure. The before erasure test is performed after phase elimRepeated, so we do not need to special case pairs of T* / Seq[T] parameters.

[+] def elimEVT ( tp: Type ) ( implicit ctx: Context ) : Type
[+] 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:

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

List of names of phases that should precede this phase

[+] override def transformApply ( tree: Apply ) ( implicit ctx: Context , info: TransformerInfo ) : Tree
[+] override def transformBlock ( tree: Block ) ( implicit ctx: Context , info: TransformerInfo ) : Tree
[+] override def transformIdent ( tree: Ident ) ( implicit ctx: Context , info: TransformerInfo ) : Tree
[+] override def transformIf ( tree: If ) ( implicit ctx: Context , info: TransformerInfo ) : Tree
[+] def transformInfo ( tp: Type , sym: Symbol ) ( implicit ctx: Context ) : Type
[+] override def transformInlined ( tree: Inlined ) ( implicit ctx: Context , info: TransformerInfo ) : Tree
[+] override def transformSelect ( tree: Select ) ( implicit ctx: Context , info: TransformerInfo ) : Tree
[+] override def transformTypeDef ( tree: TypeDef ) ( implicit ctx: Context , info: TransformerInfo ) : Tree
[+] def transformTypeOfTree ( tree: Tree ) ( implicit ctx: Context ) : Tree
[+] override def transformTypeTree ( tree: TypeTree ) ( implicit ctx: Context , info: TransformerInfo ) : Tree