Dotty Documentation


class Erasure
extends Phase with DenotTransformer

[-] Constructors

Erasure ( )

[-] Members

[+] private val eraser : Typer
[+] def assertErased ( tree: Tree ) ( implicit ctx: Context ) : Unit

Assert that tree type and its widened underlying type are erased. Also assert that term refs have fixed symbols (so we are sure they need not be reloaded using member; this would likely fail as signatures may change after erasure).

[+] def assertErased ( tp: Type , tree: Tree ) ( implicit ctx: Context ) : Unit
[+] def assertErased$default$2 : Thicket
[+] override def changesMembers : Boolean

Can this transform create or delete non-private members?

[+] override def changesParents : Boolean

Can this transform change the parents of a class?

[+] override def checkPostCondition ( tree: Tree ) ( implicit ctx: Context ) : Unit

Check what the phase achieves, to be called at any point after it is finished.

[+] 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
[+] def run ( implicit ctx: Context ) : Unit
[+] override def runsAfter : Set [ String ]

List of names of phases that should precede this phase

[+] def transform ( ref: SingleDenotation ) ( implicit ctx: Context ) : SingleDenotation

The transformation method