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.
Can this transform create or delete non-private members?
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
List of names of phases that should have finished their processing of all compilation units before this phase starts