class TailRec
extends MiniPhaseTransform with DenotTransformer with FullParameterization

A Tail Rec Transformer

Constructors

TailRec ( )

Members

[+] class TailRecElimination
[+] final val labelFlags : FlagSet
[+] final val labelPrefix : "tailLabel"
[+] private val methodsWithInnerAnnots : HashSet [ Symbol ]

Symbols of methods that have @tailrec annotatios inside

Symbols of methods that have @tailrec annotatios inside

[+] private def mkLabel ( method: Symbol , abstractOverClass: Boolean ) ( implicit c: Context ) : TermSymbol
[+] 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:

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
[+] protected override def rewiredTarget ( target: Symbol , derived: Symbol ) ( implicit ctx: Context ) : Symbol

If references to original target from fully parameterized method derived should be rewired to some fully parameterized method, that method symbol, other...

If references to original target from fully parameterized method derived should be rewired to some fully parameterized method, that method symbol, otherwise NoSymbol.

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

The transformation method

The transformation method

[+] override def transformDefDef ( tree: DefDef ) ( implicit ctx: Context , info: TransformerInfo ) : Tree
[+] override def transformTyped ( tree: Typed ) ( implicit ctx: Context , info: TransformerInfo ) : Tree
[+] override def transformUnit ( tree: Tree ) ( implicit ctx: Context , info: TransformerInfo ) : Tree
[+] override def treeTransformPhase : Phase