Phase

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

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.

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 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).

final def iterator: Iterator[Phase]
final def monitor(doing: String)(body: => Unit)(using Context): Unit
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