Dotty Documentation


class PruneErasedDefs
extends MiniPhase with SymTransformer

This phase makes all erased term members of classes private so that they cannot conflict with non-erased members. This is needed so that subsequent phases like ResolveSuper that inspect class members work correctly. The phase also replaces all expressions that appear in an erased context by default values. This is necessary so that subsequent checking phases such as IsInstanceOfChecker don't give false negatives.

[-] Constructors

PruneErasedDefs ( )

[-] Members

[+] override def changesMembers : Boolean

Can this transform create or delete non-private 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:

$ ./bin/dotc -Xprint:<phaseNameHere> sourceFile.scala
[+] override def runsAfterGroupsOf : Set [ String ]

List of names of phases that should have finished their processing of all compilation units before this phase starts

[+] override def transformApply ( tree: Apply ) ( implicit ctx: Context ) : Tree
[+] override def transformDefDef ( tree: DefDef ) ( implicit ctx: Context ) : Tree
[+] override def transformSym ( sym: SymDenotation ) ( implicit ctx: Context ) : SymDenotation
[+] override def transformValDef ( tree: ValDef ) ( implicit ctx: Context ) : Tree