Packages

object async extends AsyncPhase

Source
Global.scala
Content Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. async
  2. AsyncPhase
  3. LiveVariables
  4. Lifter
  5. ExprBuilder
  6. AsyncAnalysis
  7. AnfTransform
  8. TransformUtils
  9. AsyncTransformStates
  10. TypingTransformers
  11. Transform
  12. SubComponent
  13. AnyRef
  14. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. final class AnfTransformer extends transform.async.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
  2. 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
  3. final class MatchResultTransformer extends transform.async.AnfTransform.ThicketTransformer
    Definition Classes
    AnfTransform
  4. class Tracing extends AnyRef
    Definition Classes
    AnfTransform
  5. abstract class StdPhase extends GlobalPhase

    A standard phase template

    A standard phase template

    Definition Classes
    SubComponent
  6. class Phase extends StdPhase

    The phase defined by this transform

    The phase defined by this transform

    Definition Classes
    Transform
  7. 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
  8. abstract class TypingTransformer extends Global.Transformer
    Definition Classes
    TypingTransformers
  9. final class AsyncTransformer extends TypingTransformer
    Definition Classes
    AsyncPhase
  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

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. lazy val IllegalStateExceptionClass: Global.Symbol
    Definition Classes
    TransformUtils
  5. lazy val IllegalStateExceptionClass_NEW_String: Global.Symbol
    Definition Classes
    TransformUtils
  6. def adaptToUnit(rhs: List[Global.Tree]): Global.Block
    Definition Classes
    TransformUtils
  7. def addLabelState(label: Global.Symbol): Int
    Definition Classes
    ExprBuilder
  8. final def afterOwnPhase[T](op: => T): T
    Definition Classes
    SubComponent
    Annotations
    @inline()
  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. def assignUnitType(t: Global.Tree): t.type
    Definition Classes
    TransformUtils
  11. final def beforeOwnPhase[T](op: => T): T
    Definition Classes
    SubComponent
    Annotations
    @inline()
  12. 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
  13. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  14. 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
  15. final def deriveTree(tree: Global.Tree, exprType: Global.Type)(deriveExpr: (Global.Tree) => Global.Tree): Global.Tree
    Definition Classes
    TransformUtils
  16. def enabled: Boolean

    Is this component enabled? Default is true.

    Is this component enabled? Default is true.

    Definition Classes
    AsyncPhaseSubComponent
  17. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  19. 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
  20. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  21. final def flattenBlock(tree: Global.Tree)(f: (Global.Tree) => Unit): Unit
    Definition Classes
    TransformUtils
  22. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  23. val global: Global.this.type

    The global environment; overridden by instantiation in Global.

    The global environment; overridden by instantiation in Global.

    Definition Classes
    asyncAsyncTransformStatesTypingTransformersSubComponent
  24. 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
  25. 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
  26. 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
  27. def isAwait(fun: Global.Tree): Boolean
    Definition Classes
    TransformUtils
  28. def isBooleanAnd(sym: Global.Symbol): Boolean
    Definition Classes
    TransformUtils
  29. def isBooleanOr(sym: Global.Symbol): Boolean
    Definition Classes
    TransformUtils
  30. def isCaseLabel(sym: Global.Symbol): Boolean
    Definition Classes
    TransformUtils
  31. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  32. def isLabel(sym: Global.Symbol): Boolean
    Definition Classes
    TransformUtils
  33. def isLiteralUnit(t: Global.Tree): Boolean
    Definition Classes
    TransformUtils
  34. val isMatchEnd: (Global.Tree) => Boolean
    Definition Classes
    TransformUtils
  35. def isMatchEndLabel(sym: Global.Symbol): Boolean
    Definition Classes
    TransformUtils
  36. def isUnitType(tp: Global.Type): Boolean
    Definition Classes
    TransformUtils
  37. 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
  38. def listToBlock(trees: List[Global.Tree]): Global.Block
    Definition Classes
    TransformUtils
  39. def literalBool(b: Boolean): Global.Tree
    Definition Classes
    TransformUtils
  40. def literalBoxedUnit: Global.Tree
    Definition Classes
    TransformUtils
  41. def literalUnit: Global.Tree
    Definition Classes
    TransformUtils
  42. def markContainsAwait(t: Global.Tree): Unit
    Definition Classes
    TransformUtils
  43. 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

    Definition Classes
    AsyncPhase
  44. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  45. def newPhase(prev: nsc.Phase): StdPhase

    Create a new phase which applies transformer

    Create a new phase which applies transformer

    Definition Classes
    TransformSubComponent
  46. def newRootLocalTyper(unit: Global.CompilationUnit): (analyzer)#Typer
    Attributes
    protected
    Definition Classes
    TypingTransformers
  47. def newTransformer(unit: Global.CompilationUnit): Global.Transformer

    The transformer factory

    The transformer factory

    Definition Classes
    AsyncPhaseTransform
  48. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  49. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  50. 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
  51. val phaseName: String

    The name of the phase

    The name of the phase

    Definition Classes
    AsyncPhaseSubComponent
  52. 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
  53. 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
  54. 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
  55. val requires: List[String]

    Names of phases required by this component.

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

    Definition Classes
    SubComponent
  56. val runsAfter: collection.immutable.List[String]

    Names of phases that must run before this phase.

    Names of phases that must run before this phase.

    Definition Classes
    asyncSubComponent
  57. 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
  58. val runsRightAfter: None.type

    Name of the phase that this phase must follow immediately.

    Name of the phase that this phase must follow immediately.

    Definition Classes
    asyncSubComponent
  59. def statsAndExpr(tree: Global.Tree): (List[Global.Tree], Global.Tree)
    Definition Classes
    TransformUtils
  60. def substituteTrees(t: Global.Tree, from: List[Global.Symbol], to: List[Global.Tree]): Global.Tree
    Definition Classes
    TransformUtils
  61. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  62. 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
  63. def toMultiMap[A, B](abs: Iterable[(A, B)]): LinkedHashMap[A, List[B]]
    Definition Classes
    TransformUtils
  64. def toString(): String
    Definition Classes
    AnyRef → Any
  65. val tracing: Tracing
    Attributes
    protected[transform.async]
    Definition Classes
    AsyncPhase → AnfTransform
  66. def typed(tree: Global.Tree): Global.Tree
    Definition Classes
    TransformUtils
  67. def typedPos(pos: Global.Position)(tree: Global.Tree): Global.Tree
    Definition Classes
    TransformUtils
  68. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  69. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  70. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  71. object MatchEnd
    Definition Classes
    TransformUtils
  72. object UnwrapBoxedUnit
    Definition Classes
    TransformUtils
  73. object cleanupContainsAwaitAttachments extends Global.Traverser
    Definition Classes
    TransformUtils

Inherited from AsyncPhase

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

Ungrouped