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
MegaPhase.type

Members list

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 prepare/transform a tree that does not have a specific prepare/transform method pair.

Attributes

Supertypes
class Phase
class Object
trait Matchable
class Any
Known subtypes
trait PluginPhase
class ArrayApply
class BetaReduce
class CapturedVars
class CheckStatic
class CheckUnused
class PostInlining
class PostTyper
class Constructors
class CookComments
class DropBreaks
class ElimByName
class ElimOpaque
class ElimRepeated
class EtaReduce
class ExpandSAMs
class ExplicitSelf
class Flatten
class Getters
class InlineVals
class LambdaLift
class LazyVals
class LetOverApply
class Memoize
class Mixin
class MoveStatics
class PureStats
class ResolveSuper
class SelectStatic
class SeqLiterals
class TailRec
class RefChecks
Show all