MegaPhase

dotty.tools.dotc.transform.MegaPhase
See theMegaPhase companion object
class MegaPhase(val miniPhases: Array[MiniPhase]) extends Phase

Attributes

Companion
object
Graph
Supertypes
class Phase
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

def goAlternative(tree: Alternative, start: Int)(using Context): Tree
def goApply(tree: Apply, start: Int)(using Context): Tree
def goAssign(tree: Assign, start: Int)(using Context): Tree
def goBind(tree: Bind, start: Int)(using Context): Tree
def goBlock(tree: Block, start: Int)(using Context): Tree
def goCaseDef(tree: CaseDef, start: Int)(using Context): Tree
def goClosure(tree: Closure, start: Int)(using Context): Tree
def goDefDef(tree: DefDef, start: Int)(using Context): Tree
def goIdent(tree: Ident, start: Int)(using Context): Tree
def goIf(tree: If, start: Int)(using Context): Tree
def goInlined(tree: Inlined, start: Int)(using Context): Tree
def goLabeled(tree: Labeled, start: Int)(using Context): Tree
def goLiteral(tree: Literal, start: Int)(using Context): Tree
def goMatch(tree: Match, start: Int)(using Context): Tree
def goNew(tree: New, start: Int)(using Context): Tree
def goOther(tree: Tree, start: Int)(using Context): Tree
def goPackageDef(tree: PackageDef, start: Int)(using Context): Tree
def goReturn(tree: Return, start: Int)(using Context): Tree
def goSelect(tree: Select, start: Int)(using Context): Tree
def goSeqLiteral(tree: SeqLiteral, start: Int)(using Context): Tree
def goStats(trees: List[Tree], start: Int)(using Context): List[Tree]
def goSuper(tree: Super, start: Int)(using Context): Tree
def goTemplate(tree: Template, start: Int)(using Context): Tree
def goThis(tree: This, start: Int)(using Context): Tree
def goTry(tree: Try, start: Int)(using Context): Tree
def goTypeApply(tree: TypeApply, start: Int)(using Context): Tree
def goTypeDef(tree: TypeDef, start: Int)(using Context): Tree
def goTypeTree(tree: TypeTree, start: Int)(using Context): Tree
def goTyped(tree: Typed, start: Int)(using Context): Tree
def goUnApply(tree: UnApply, start: Int)(using Context): Tree
def goUnit(tree: Tree, start: Int)(using Context): Tree
def goValDef(tree: ValDef, start: Int)(using Context): Tree
def goWhileDo(tree: WhileDo, start: Int)(using Context): Tree
def prepAlternative(tree: Alternative, start: Int)(using Context): Context
def prepApply(tree: Apply, start: Int)(using Context): Context
def prepAssign(tree: Assign, start: Int)(using Context): Context
def prepBind(tree: Bind, start: Int)(using Context): Context
def prepBlock(tree: Block, start: Int)(using Context): Context
def prepCaseDef(tree: CaseDef, start: Int)(using Context): Context
def prepClosure(tree: Closure, start: Int)(using Context): Context
def prepDefDef(tree: DefDef, start: Int)(using Context): Context
def prepIdent(tree: Ident, start: Int)(using Context): Context
def prepIf(tree: If, start: Int)(using Context): Context
def prepInlined(tree: Inlined, start: Int)(using Context): Context
def prepLabeled(tree: Labeled, start: Int)(using Context): Context
def prepLiteral(tree: Literal, start: Int)(using Context): Context
def prepMatch(tree: Match, start: Int)(using Context): Context
def prepNew(tree: New, start: Int)(using Context): Context
def prepOther(tree: Tree, start: Int)(using Context): Context
def prepPackageDef(tree: PackageDef, start: Int)(using Context): Context
def prepReturn(tree: Return, start: Int)(using Context): Context
def prepSelect(tree: Select, start: Int)(using Context): Context
def prepSeqLiteral(tree: SeqLiteral, start: Int)(using Context): Context
def prepStats(trees: List[Tree], start: Int)(using Context): Context
def prepSuper(tree: Super, start: Int)(using Context): Context
def prepTemplate(tree: Template, start: Int)(using Context): Context
def prepThis(tree: This, start: Int)(using Context): Context
def prepTry(tree: Try, start: Int)(using Context): Context
def prepTypeApply(tree: TypeApply, start: Int)(using Context): Context
def prepTypeDef(tree: TypeDef, start: Int)(using Context): Context
def prepTypeTree(tree: TypeTree, start: Int)(using Context): Context
def prepTyped(tree: Typed, start: Int)(using Context): Context
def prepUnApply(tree: UnApply, start: Int)(using Context): Context
def prepUnit(tree: Tree, start: Int)(using Context): Context
def prepValDef(tree: ValDef, start: Int)(using Context): Context
def prepWhileDo(tree: WhileDo, start: Int)(using Context): Context
final override def relaxedTyping: Boolean

If set, allow missing or superfluous arguments in applications and type applications.

If set, allow missing or superfluous arguments in applications and type applications.

Attributes

Definition Classes
override def run(using Context): Unit

Attributes

Definition Classes
def transformBlock(tree: Block, start: Int)(using Context): Tree
def transformNode(tree: Tree, start: Int)(using Context): Tree

Transform node using all phases in this group that have idxInGroup >= start

Transform node using all phases in this group that have idxInGroup >= start

Attributes

def transformSpecificTree[T <: Tree](tree: T, start: Int)(using Context): T
def transformSpecificTrees[T <: Tree](trees: List[T], start: Int)(using Context): List[T]
def transformStats(trees: List[Tree], exprOwner: Symbol, start: Int)(using Context): List[Tree]
def transformTree(tree: Tree, start: Int)(using Context): Tree

Transform full tree using all phases in this group that have idxInGroup >= start

Transform full tree using all phases in this group that have idxInGroup >= start

Attributes

def transformTrees(trees: List[Tree], start: Int)(using Context): List[Tree]
def transformUnit(tree: Tree)(using Context): Tree

Inherited methods

final def <=(that: Phase): Boolean

Attributes

Inherited from:
Phase

If set, implicit search is enabled

If set, implicit search is enabled

Attributes

Inherited from:
Phase

Can this transform change the base types of a type?

Can this transform change the base types of a type?

Attributes

Inherited from:
Phase

Can this transform create or delete non-private members?

Can this transform create or delete non-private members?

Attributes

Inherited from:
Phase

Can this transform change the parents of a class?

Can this transform change the parents of a class?

Attributes

Inherited from:
Phase
def checkPostCondition(tree: Tree)(using Context): Unit

Check what the phase achieves, to be called at any point after it is finished.

Check what the phase achieves, to be called at any point after it is finished.

Attributes

Inherited from:
Phase

Attributes

Inherited from:
Phase
def end: PhaseId

Attributes

Inherited from:
Phase
final def erasedTypes: Boolean

Attributes

Inherited from:
Phase

Attributes

Inherited from:
Phase
final def flatClasses: Boolean

Attributes

Inherited from:
Phase
final def hasNext: Boolean

Attributes

Inherited from:
Phase
def id: Int

The sequence position of this phase in the given context where 0 is reserved for NoPhase and the first real phase is at position 1. -1 if the phase is not installed in the context.

The sequence position of this phase in the given context where 0 is reserved for NoPhase and the first real phase is at position 1. -1 if the phase is not installed in the context.

Attributes

Inherited from:
Phase

Attributes

Inherited from:
Phase

Output should be checkable by TreeChecker

Output should be checkable by TreeChecker

Attributes

Inherited from:
Phase
def isEnabled(using Context): Boolean

Attributes

Inherited from:
Phase
def isRunnable(using Context): Boolean

Attributes

Inherited from:
Phase

Is this phase the standard typerphase? True for TyperPhase, but not for other first phases (such as FromTasty or Parser). The predicate is tested in some places that perform checks and corrections. It's different from ctx.isAfterTyper (and cheaper to test).

Is this phase the standard typerphase? True for TyperPhase, but not for other first phases (such as FromTasty or Parser). The predicate is tested in some places that perform checks and corrections. It's different from ctx.isAfterTyper (and cheaper to test).

Attributes

Inherited from:
Phase
final def iterator: Iterator[Phase]

Attributes

Inherited from:
Phase
final def lambdaLifted: Boolean

Attributes

Inherited from:
Phase
final def monitor(doing: String)(body: => Unit)(using Context): Unit

Attributes

Inherited from:
Phase
final def next: Phase

Attributes

Inherited from:
Phase

Attributes

Inherited from:
Phase
def period: Period

Attributes

Inherited from:
Phase
final def prev: Phase

Attributes

Inherited from:
Phase
final def prevMega(using Context): Phase

Attributes

Inherited from:
Phase
final def refChecked: Boolean

Attributes

Inherited from:
Phase

Attributes

Inherited from:
Phase

List of names of phases that should precede this phase

List of names of phases that should precede this phase

Attributes

Inherited from:
Phase

Attributes

Inherited from:
Phase
final def sameMembersStartId: Int

Attributes

Inherited from:
Phase
final def sameParentsStartId: Int

Attributes

Inherited from:
Phase
def show(tree: Tree)(using Context): String

Convert a compilation unit's tree to a string; can be overridden

Convert a compilation unit's tree to a string; can be overridden

Attributes

Inherited from:
Phase
def start: Int

Attributes

Inherited from:
Phase
override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns

a string representation of the object.

Definition Classes
Phase -> Any
Inherited from:
Phase

Concrete fields

override val 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/scalac -Xprint:<phaseNameHere> sourceFile.scala

Attributes