Phase

abstract class Phase
class Object
trait Matchable
class Any
class GenBCode
class GenSJSIR
class Flatten
class Getters
class Mixin
class LazyVals
class LiftTry
class Memoize
class PostTyper
class Erasure
object NoPhase
object SomePhase
class ReadTasty
class Inlining
class Staging
class MiniPhase
class PureStats
class TailRec
class Checker
class RefChecks
class MegaPhase
class Pickler
class FrontEnd

Value members

Abstract methods

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
def run(using Context): Unit

Concrete methods

final def <=(that: Phase): Boolean

If set, implicit search is enabled

If set, implicit search is enabled

Can this transform change the base types of a type?

Can this transform change the base types of a type?

Can this transform create or delete non-private members?

Can this transform create or delete non-private members?

Can this transform change the parents of a class?

Can this transform change the parents of a class?

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.

def end: PhaseId
final def erasedTypes: Boolean
final def flatClasses: Boolean
final def hasNext: Boolean
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.

Output should be checkable by TreeChecker

Output should be checkable by TreeChecker

Is this phase the standard typerphase? True for FrontEnd, but not for other first phases (such as FromTasty). 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 FrontEnd, but not for other first phases (such as FromTasty). The predicate is tested in some places that perform checks and corrections. It's different from ctx.isAfterTyper (and cheaper to test).

final def iterator: Iterator[Phase]
final def next: Phase
final def prev: Phase
final def refChecked: 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.

List of names of phases that should precede this phase

List of names of phases that should precede this phase

def start: Int
override def toString: String
Definition Classes
Any