Phase

dotty.tools.dotc.core.Phases.Phase
abstract class Phase

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class GenBCode
class GenSJSIR
object SomePhase
class CapturedVars
class Constructors
class Inlining
class LambdaLift
class LazyVals
class Memoize
class PostInlining
class ResolveSuper
class SelectStatic
class Pre
class ElimByName
class ElimRepeated
class PostTyper
class Setup
class Flatten
class Getters
class Mixin
class MoveStatics
class Recheck
class TestRecheck
class TreeChecker
class ElimOpaque
class Erasure
class PreRecheck
object NoPhase
class ReadTasty
class Parser
class ExtractAPI
class Checker
class EmptyPhase
class PickleQuotes
class Splicing
class Staging
class MiniPhase
trait PluginPhase
class ArrayApply
class BetaReduce
class CheckStatic
class CheckUnused
class PostInlining
class PostTyper
class CookComments
class DropBreaks
class EtaReduce
class ExpandSAMs
class ExplicitSelf
class InlineVals
class LetOverApply
class PureStats
class SeqLiterals
class TailRec
class RefChecks
class MegaPhase
class Pickler
class SetRootTree
class TyperPhase
class Parser
class ReplPhase
Show all

Members list

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

Attributes

def run(using Context): Unit

Attributes

Concrete methods

final def <=(that: Phase): Boolean

If set, implicit search is enabled

If set, implicit search is enabled

Attributes

final def cancellable(body: Context ?=> Unit)(using Context): Boolean

Do not run if compile progress has been cancelled

Do not run if compile progress has been cancelled

Attributes

Can this transform change the base types of a type?

Can this transform change the base types of a type?

Attributes

Can this transform create or delete non-private members?

Can this transform create or delete non-private members?

Attributes

Can this transform change the parents of a class?

Can this transform change the parents of a class?

Attributes

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

def end: PhaseId
final def erasedTypes: Boolean

True for all phases except NoPhase

True for all phases except NoPhase

Attributes

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.

Attributes

Output should be checkable by TreeChecker

Output should be checkable by TreeChecker

Attributes

def isEnabled(using Context): Boolean

This property is queried when phases are first assembled. If it is false, the phase will be dropped from the set of phases to traverse.

This property is queried when phases are first assembled. If it is false, the phase will be dropped from the set of phases to traverse.

Attributes

def isRunnable(using Context): Boolean

This property is queried before a phase is run. If it is false, the phase is skipped.

This property is queried before a phase is run. If it is false, the phase is skipped.

Attributes

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

final def iterator: Iterator[Phase]
final def lambdaLifted: Boolean
final def megaPhase(using Context): Phase
final def monitor(doing: String)(body: Context ?=> Unit)(using Context): Boolean

Cancellable region, if not cancelled, run the body in the context of the current compilation unit. Enrich crash messages.

Cancellable region, if not cancelled, run the body in the context of the current compilation unit. Enrich crash messages.

Attributes

final def next: Phase
def period: Period
final def prev: Phase

A hook that allows to transform the usual context passed to the function that prints a compilation unit after a phase

A hook that allows to transform the usual context passed to the function that prints a compilation unit after a phase

Attributes

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.

Attributes

def runOn(units: List[CompilationUnit])(using runCtx: Context): List[CompilationUnit]

Attributes

inline def runSubPhase[T](id: SubPhase)(inline body: (SubPhase, Context) ?=> T)(using Context): T

List of names of phases that should precede this phase

List of names of phases that should precede this phase

Attributes

final def sameMembersStartId: Int
final def sameParentsStartId: Int
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

def skipIfJava(using Context): Boolean

skip the phase for a Java compilation unit, may depend on -Yjava-tasty

skip the phase for a Java compilation unit, may depend on -Yjava-tasty

Attributes

def start: Int

for purposes of progress tracking, overridden in TyperPhase

for purposes of progress tracking, overridden in TyperPhase

Attributes

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
Any
final def traversals: Int