Scala Compiler2.13.9 < Back


# Packages

-  package root

  The Scala compiler and reflection APIs.

  The Scala compiler and reflection APIs.

  Definition Classes
    root
-  package scala
  Definition Classes
    root
-  package tools
  Definition Classes
    scala
-  package nsc
  Definition Classes
    tools
-  package transform
  Definition Classes
    nsc
-  package async
  Definition Classes
    transform
- AsyncAnalysis
- AsyncNames
- AsyncPhase
- AsyncTransformStates
- ExprBuilder
- Lifter
- LiveVariables
- StateAssigner
- StateSet
- StateTransitionTree

c

scala.tools.nsc.transform.async

# AsyncPhase

###

#### abstract class AsyncPhase extends SubComponent with Transform with TypingTransformers with AnfTransform with Lifter with LiveVariables

Self Type
  AsyncPhase
Source
  AsyncPhase.scala

Linear Supertypes
LiveVariables, Lifter, ExprBuilder, AsyncAnalysis, AnfTransform, TransformUtils, AsyncTransformStates, TypingTransformers, Transform, SubComponent, AnyRef, Any
Known Subclasses
async
Type Hierarchy

Ordering

1. Alphabetic
2. By Inheritance

Inherited

1. AsyncPhase
2. LiveVariables
3. Lifter
4. ExprBuilder
5. AsyncAnalysis
6. AnfTransform
7. TransformUtils
8. AsyncTransformStates
9. TypingTransformers
10. Transform
11. SubComponent
12. AnyRef
13. Any

Implicitly

1. by any2stringadd
2. by StringFormat
3. by Ensuring
4. by ArrowAssoc

1. Hide All
2. Show All

Visibility

1. Public
2. Protected

### Instance Constructors

1.  new AsyncPhase()

### Type Members

1.  abstract class StdPhase extends GlobalPhase

   A standard phase template

   A standard phase template

   Definition Classes
     SubComponent
2.  class Phase extends StdPhase

   The phase defined by this transform

   The phase defined by this transform

   Definition Classes
     Transform
3.  abstract class ThicketTransformer extends TypingTransformer

   A base class for typing transformers that need to perform "thicket expansion".

   A base class for typing transformers that need to perform "thicket expansion". A thicket is the output of a transformation that is flattened into the enclosing block.

   Definition Classes
     TypingTransformers
4.  abstract class TypingTransformer extends Global.AstTransformer
   Definition Classes
     TypingTransformers
5.  final class AnfTransformer extends AnfTransform.TypingTransformer

   Transform `tree` into "A-Normal Form", such that within subtrees that enclose an `await`:

   Transform `tree` into "A-Normal Form", such that within subtrees that enclose an `await`:

   - `if`, `match`, and other control-flow constructs are only used as statements; they cannot be used as expressions;
   - calls to `await` are not allowed in compound expressions;
   - execution order is reified in the tree by extracting temporary vals
   Definition Classes
     AnfTransform
6.  final class AsyncTransformer extends TypingTransformer
7.  trait AsyncTraverser extends Global.Traverser

   Descends into the regions of the tree that are subject to the translation to a state machine by `async`.

   Descends into the regions of the tree that are subject to the translation to a state machine by `async`. When a nested template, function, or by-name argument is encountered, the descent stops, and `nestedClass` etc are invoked.

   Definition Classes
     TransformUtils
8.  final class MatchResultTransformer extends AnfTransform.ThicketTransformer
   Definition Classes
     AnfTransform
9.  class Tracing extends AnyRef
   Definition Classes
     AnfTransform
10.  class AsyncTransformState extends AnyRef
    Definition Classes
      AsyncTransformStates
11.  trait AsyncBlock extends AnyRef
    Definition Classes
      ExprBuilder
12.  final class AsyncState extends AnyRef
    Definition Classes
      ExprBuilder

### Abstract Value Members

1.  abstract val global: Global
   Definition Classes
     AsyncTransformStates → TypingTransformers
2.  abstract val runsAfter: List[String]

   Names of phases that must run before this phase.

   Names of phases that must run before this phase.

   Definition Classes
     SubComponent
3.  abstract val runsRightAfter: Option[String]

   Name of the phase that this phase must follow immediately.

   Name of the phase that this phase must follow immediately.

   Definition Classes
     SubComponent

### Concrete Value Members

1.  final def !=(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
2.  final def ##: Int
   Definition Classes
     AnyRef → Any
3.  def +(other: String): String
   Implicit
     This member is added by an implicit conversion from AsyncPhase toany2stringadd[AsyncPhase] performed by method any2stringadd in scala.Predef.
   Definition Classes
     any2stringadd
4.  def ->[B](y: B): (AsyncPhase, B)
   Implicit
     This member is added by an implicit conversion from AsyncPhase toArrowAssoc[AsyncPhase] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @inline()
5.  final def ==(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
6.  lazy val IllegalStateExceptionClass: Global.Symbol
   Definition Classes
     TransformUtils
7.  lazy val IllegalStateExceptionClass_NEW_String: Global.Symbol
   Definition Classes
     TransformUtils
8.  def adaptToUnit(rhs: List[Global.Tree]): Global.Block
   Definition Classes
     TransformUtils
9.  def addLabelState(label: Global.Symbol): Int
   Definition Classes
     ExprBuilder
10.  final def afterOwnPhase[T](op: => T): T
    Definition Classes
      SubComponent
    Annotations
      @inline()
11.  final def asInstanceOf[T0]: T0
    Definition Classes
      Any
12.  def assignUnitType(t: Global.Tree): t.type
    Definition Classes
      TransformUtils
13.  final def beforeOwnPhase[T](op: => T): T
    Definition Classes
      SubComponent
    Annotations
      @inline()
14.  def buildAsyncBlock(block: Global.Block): AsyncBlock

    Uses `AsyncBlockBuilder` to create an instance of `AsyncBlock`.

    Uses `AsyncBlockBuilder` to create an instance of `AsyncBlock`.

    block

      a `Block` tree in ANF

    returns

      an `AsyncBlock`

    Definition Classes
      ExprBuilder
15.  def clone(): AnyRef
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.CloneNotSupportedException]) @native()
16.  final def containsAwait(t: Global.Tree): Boolean

    Efficiently decorate each subtree within `t` with the result of `t exists isAwait`, and return a function that can be used on derived trees to efficiently test the same condition.

    Efficiently decorate each subtree within `t` with the result of `t exists isAwait`, and return a function that can be used on derived trees to efficiently test the same condition.

    If the derived tree contains synthetic wrapper trees, these will be recursed into in search of a sub tree that was decorated with the cached answer.

    Requires markContainsAwaitTraverser has previously traversed `t`.

    Definition Classes
      TransformUtils
17.  final def deriveTree(tree: Global.Tree, exprType: Global.Type)(deriveExpr: (Global.Tree) => Global.Tree): Global.Tree
    Definition Classes
      TransformUtils
18.  def enabled: Boolean

    Is this component enabled? Default is true.

    Is this component enabled? Default is true.

    Definition Classes
      AsyncPhase → SubComponent
19.  def ensuring(cond: (AsyncPhase) => Boolean, msg: => Any): AsyncPhase
    Implicit
      This member is added by an implicit conversion from AsyncPhase toEnsuring[AsyncPhase] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
20.  def ensuring(cond: (AsyncPhase) => Boolean): AsyncPhase
    Implicit
      This member is added by an implicit conversion from AsyncPhase toEnsuring[AsyncPhase] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
21.  def ensuring(cond: Boolean, msg: => Any): AsyncPhase
    Implicit
      This member is added by an implicit conversion from AsyncPhase toEnsuring[AsyncPhase] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
22.  def ensuring(cond: Boolean): AsyncPhase
    Implicit
      This member is added by an implicit conversion from AsyncPhase toEnsuring[AsyncPhase] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
23.  final def eq(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
24.  def equals(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef → Any
25.  def fieldsToNullOut(asyncStates: List[AsyncState], finalState: AsyncState, liftables: List[Global.Tree]): LinkedHashMap[Int, (LinkedHashSet[Global.Symbol], LinkedHashSet[Global.Symbol])]

    Live variables data-flow analysis.

    Live variables data-flow analysis.

    Find, for each lifted field, the last state where the field is used.

    asyncStates

      the states of an `async` block

    liftables

      the lifted fields

    returns

      a map which indicates fields which are used for the final time in each state.

    Definition Classes
      LiveVariables
26.  def finalize(): Unit
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.Throwable])
27.  final def flattenBlock(tree: Global.Tree)(f: (Global.Tree) => Unit): Unit
    Definition Classes
      TransformUtils
28.  final def getClass(): Class[_ <: AnyRef]
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
29.  def hashCode(): Int

    SubComponents are added to a HashSet and two phases are the same if they have the same name.

    SubComponents are added to a HashSet and two phases are the same if they have the same name.

    Definition Classes
      SubComponent → AnyRef → Any
30.  val initial: Boolean

    True if this phase runs before all other phases.

    True if this phase runs before all other phases. Usually, `parser`.

    Definition Classes
      SubComponent
31.  val internal: Boolean

    True if this phase is not provided by a plug-in.

    True if this phase is not provided by a plug-in.

    Definition Classes
      SubComponent
32.  def isAwait(fun: Global.Tree): Boolean
    Definition Classes
      TransformUtils
33.  def isBooleanAnd(sym: Global.Symbol): Boolean
    Definition Classes
      TransformUtils
34.  def isBooleanOr(sym: Global.Symbol): Boolean
    Definition Classes
      TransformUtils
35.  def isCaseLabel(sym: Global.Symbol): Boolean
    Definition Classes
      TransformUtils
36.  final def isInstanceOf[T0]: Boolean
    Definition Classes
      Any
37.  def isLabel(sym: Global.Symbol): Boolean
    Definition Classes
      TransformUtils
38.  def isLiteralUnit(t: Global.Tree): Boolean
    Definition Classes
      TransformUtils
39.  val isMatchEnd: (Global.Tree) => Boolean
    Definition Classes
      TransformUtils
40.  def isMatchEndLabel(sym: Global.Symbol): Boolean
    Definition Classes
      TransformUtils
41.  def isUnitType(tp: Global.Type): Boolean
    Definition Classes
      TransformUtils
42.  def liftables(asyncStates: List[AsyncState]): List[Global.Tree]

    Identify which DefTrees are used (including transitively) which are declared in some state but used (including transitively) in another state.

    Identify which DefTrees are used (including transitively) which are declared in some state but used (including transitively) in another state.

    These will need to be lifted to class members of the state machine.

    Definition Classes
      Lifter
43.  def listToBlock(trees: List[Global.Tree]): Global.Block
    Definition Classes
      TransformUtils
44.  def literalBool(b: Boolean): Global.Tree
    Definition Classes
      TransformUtils
45.  def literalBoxedUnit: Global.Tree
    Definition Classes
      TransformUtils
46.  def literalUnit: Global.Tree
    Definition Classes
      TransformUtils
47.  def markContainsAwait(t: Global.Tree): Unit
    Definition Classes
      TransformUtils
48.  final def markForAsyncTransform(owner: Global.Symbol, method: Global.DefDef, awaitMethod: Global.Symbol, config: Map[String, AnyRef]): Global.DefDef

    Mark the given method as requiring an async transform.

    Mark the given method as requiring an async transform. Refer to documentation in the public API that forwards to this method in src/reflect/scala/reflect/api/Internals.scala

49.  final def ne(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
50.  def newPhase(prev: nsc.Phase): StdPhase

    Create a new phase which applies transformer

    Create a new phase which applies transformer

    Definition Classes
      Transform → SubComponent
51.  def newRootLocalTyper(unit: Global.CompilationUnit): (analyzer)#Typer
    Attributes
      protected
    Definition Classes
      TypingTransformers
52.  def newTransformer(unit: Global.CompilationUnit): Global.AstTransformer

    The transformer factory

    The transformer factory

    Definition Classes
      AsyncPhase → Transform
53.  final def notify(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
54.  final def notifyAll(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
55.  def ownPhase: nsc.Phase

    The phase corresponding to this subcomponent in the current compiler run.

    The phase corresponding to this subcomponent in the current compiler run.

    Definition Classes
      SubComponent
56.  val phaseName: String

    The name of the phase

    The name of the phase

    Definition Classes
      AsyncPhase → SubComponent
57.  def phaseNewFlags: Long

    New flags defined by the phase which are not valid before

    New flags defined by the phase which are not valid before

    Definition Classes
      SubComponent
58.  def phaseNextFlags: Long

    New flags defined by the phase which are not valid until immediately after it

    New flags defined by the phase which are not valid until immediately after it

    Definition Classes
      SubComponent
59.  def reportUnsupportedAwaits(tree: Global.Tree): Unit

    Analyze the contents of an `async` block in order to: - Report unsupported `await` calls under nested templates, functions, by-name arguments.

    Analyze the contents of an `async` block in order to: - Report unsupported `await` calls under nested templates, functions, by-name arguments.

    Must be called on the original tree, not on the ANF transformed tree.

    Definition Classes
      AsyncAnalysis
60.  val requires: List[String]

    Names of phases required by this component.

    Names of phases required by this component. Default is `Nil`.

    Definition Classes
      SubComponent
61.  val runsBefore: List[String]

    Names of phases that must run after this phase.

    Names of phases that must run after this phase. Default is `Nil`.

    Definition Classes
      SubComponent
62.  def statsAndExpr(tree: Global.Tree): (List[Global.Tree], Global.Tree)
    Definition Classes
      TransformUtils
63.  def substituteTrees(t: Global.Tree, from: List[Global.Symbol], to: List[Global.Tree]): Global.Tree
    Definition Classes
      TransformUtils
64.  final def synchronized[T0](arg0: => T0): T0
    Definition Classes
      AnyRef
65.  val terminal: Boolean

    True if this phase runs after all other phases.

    True if this phase runs after all other phases. Usually, `terminal`.

    Definition Classes
      SubComponent
66.  def toMultiMap[A, B](abs: Iterable[(A, B)]): LinkedHashMap[A, List[B]]
    Definition Classes
      TransformUtils
67.  def toString(): String
    Definition Classes
      AnyRef → Any
68.  val tracing: Tracing
    Attributes
      protected[async]
    Definition Classes
      AsyncPhase → AnfTransform
69.  def typedBasePos(tree: Global.Tree): Global.Tree
    Definition Classes
      TransformUtils
70.  def typedCurrentPos(tree: Global.Tree): Global.Tree
    Definition Classes
      TransformUtils
71.  def typedPos(pos: Global.Position)(tree: Global.Tree): Global.Tree
    Definition Classes
      TransformUtils
72.  final def wait(): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
73.  final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
74.  final def wait(arg0: Long): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException]) @native()
75.  object MatchEnd
    Definition Classes
      TransformUtils
76.  object UnwrapBoxedUnit
    Definition Classes
      TransformUtils
77.  object cleanupContainsAwaitAttachments extends Global.Traverser
    Definition Classes
      TransformUtils

### Deprecated Value Members

1.  def formatted(fmtstr: String): String
   Implicit
     This member is added by an implicit conversion from AsyncPhase toStringFormat[AsyncPhase] performed by method StringFormat in scala.Predef.
   Definition Classes
     StringFormat
   Annotations
     @deprecated @inline()
   Deprecated

     (Since version 2.12.16) Use `formatString.format(value)` instead of `value.formatted(formatString)`, or use the `f""` string interpolator. In Java 15 and later, `formatted` resolves to the new method in String which has reversed parameters.

2.  def →[B](y: B): (AsyncPhase, B)
   Implicit
     This member is added by an implicit conversion from AsyncPhase toArrowAssoc[AsyncPhase] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @deprecated
   Deprecated

     (Since version 2.13.0) Use `->` instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

### Inherited from LiveVariables

### Inherited from Lifter

### Inherited from ExprBuilder

### Inherited from AsyncAnalysis

### Inherited from AnfTransform

### Inherited from TransformUtils

### Inherited from AsyncTransformStates

### Inherited from TypingTransformers

### Inherited from Transform

### Inherited from SubComponent

### Inherited from AnyRef

### Inherited from Any

### Inherited by implicit conversion any2stringadd fromAsyncPhase to any2stringadd[AsyncPhase]

### Inherited by implicit conversion StringFormat fromAsyncPhase to StringFormat[AsyncPhase]

### Inherited by implicit conversion Ensuring fromAsyncPhase to Ensuring[AsyncPhase]

### Inherited by implicit conversion ArrowAssoc fromAsyncPhase to ArrowAssoc[AsyncPhase]

### Ungrouped