MacroTransform

abstract
class MacroTransform extends Phase

A base class for transforms. A transform contains a compiler phase which applies a tree transformer.

class Phase
class Object
trait Matchable
class Any

Type members

Classlikes

class Transformer extends TreeMap

Value members

Abstract methods

protected

Concrete methods

override
def run(using Context): Unit
Definition Classes
protected

The phase in which the transformation should be run. By default this is the phase given by the this macro transformer, but it could be overridden to be the phase following that one.

The phase in which the transformation should be run. By default this is the phase given by the this macro transformer, but it could be overridden to be the phase following that one.

Inherited methods

final
def <=(that: Phase): Boolean
Inherited from
Phase

If set, implicit search is enabled

If set, implicit search is enabled

Inherited from
Phase

Can this transform change the base types of a type?

Can this transform change the base types of a type?

Inherited from
Phase

Can this transform create or delete non-private members?

Can this transform create or delete non-private members?

Inherited from
Phase

Can this transform change the parents of a class?

Can this transform change the parents of a class?

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.

Inherited from
Phase
Inherited from
Phase
Inherited from
Phase
final
Inherited from
Phase
Inherited from
Phase
final
Inherited from
Phase
final
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.

Inherited from
Phase
Inherited from
Phase

Output should be checkable by TreeChecker

Output should be checkable by TreeChecker

Inherited from
Phase
Inherited from
Phase
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).

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

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
Inherited from
Phase
final
def prev: Phase
Inherited from
Phase
final
Inherited from
Phase

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

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

Inherited from
Phase
Inherited from
Phase

List of names of phases that should precede this phase

List of names of phases that should precede this phase

Inherited from
Phase
Inherited from
Phase
Inherited from
Phase
Inherited from
Phase
def start: Int
Inherited from
Phase
override
Definition Classes
Phase -> Any
Inherited from
Phase