Packages

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

Self Type
AsyncPhase
Source
AsyncPhase.scala
Known Subclasses
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
  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
    AsyncPhaseSubComponent
  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
    TransformSubComponent
  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
    AsyncPhaseTransform
  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
    AsyncPhaseSubComponent
  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