Dotty Documentation


class ResolveSuper

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)

where S is the superclass of M in the linearization of C.

This is the first part of what was the mixin phase. It is complemented by Mixin, which runs after erasure.

[-] Constructors

ResolveSuper ( )

[-] 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 runsAfter : Set [ String ]

List of names of phases that should precede this phase

[+] override def transformDefDef ( ddef: DefDef ) ( implicit ctx: Context ) : Tree
[+] override def transformTemplate ( impl: Template ) ( implicit ctx: Context ) : Template