MegaPhase

object MegaPhase

A MegaPhase combines a number of mini-phases which are all executed in a single tree traversal.

This is an evolution of the previous "TreeTransformers.scala", which was written by @DarkDimius and is described in his thesis.

Companion:
class
class Object
trait Matchable
class Any

Type members

Classlikes

abstract class MiniPhase extends Phase

The base class of tree transforms. For each kind of tree K, there are two methods which can be overridden:

The base class of tree transforms. For each kind of tree K, there are two methods which can be overridden:

prepareForK: return a new Context which gets passed to the node and its children transformK // transform node of type K

There are also prepare/transform hooks for

  • Stats: to prepare/transform a statement sequence in a block, template, or package def,
  • Unit : to prepare/transform a whole compilation unit
  • Other: to prepape/transform a tree that does not have a specific prepare/transform method pair.