This phase implements super accessors in classes that need them.
For every trait M directly implemented by the class (see SymUtils.mixin), in reverse linearization order, add the following definitions to C:
For every superAccessor
<mods> def super$f[Ts](ps1)...(psN): U in M:
<mods> def super$f[Ts](ps1)...(psN): U = super[S].f[Ts](ps1)...(psN)
S is the superclass of
M in the linearization of
This is the first part of what was the mixin phase. It is complemented by Mixin, which runs after erasure.
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 precede this phase