MegaPhase

dotty.tools.dotc.transform.MegaPhase$
See theMegaPhase companion class
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.

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Concise view

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.

Attributes

Graph
Supertypes
class Phase
class Object
trait Matchable
class Any
Known subtypes
class EtaReduce
class Flatten
class Getters
class LazyVals
class LiftTry
class Memoize
class Mixin
class PureStats
class TailRec
class RefChecks