class TailRec
extends MiniPhaseTransform with DenotTransformer with FullParameterization

A Tail Rec Transformer

Constructors

TailRec ( )

Members

class TailRecElimination
final val labelFlags : FlagSet
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 ctx: 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