Scala Compiler2.12.21 < 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

t

scala.tools.nsc.transform.async

# LiveVariables 

###

#### trait LiveVariables extends ExprBuilder

Source
  LiveVariables.scala

Linear Supertypes
ExprBuilder, AsyncAnalysis, TransformUtils, AsyncTransformStates, TypingTransformers, AnyRef, Any
Known Subclasses
async, AsyncPhase
 
Ordering

1. Alphabetic
2. By Inheritance

Inherited

1. LiveVariables
2. ExprBuilder
3. AsyncAnalysis
4. TransformUtils
5. AsyncTransformStates
6. TypingTransformers
7. AnyRef
8. Any

Implicitly

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

1. Hide All
2. Show All

Visibility

1. Public
2. All

### Type Members

1.  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
2.  abstract class TypingTransformer extends Global.Transformer
   Definition Classes
     TypingTransformers
3.  class AsyncTransformState extends AnyRef
   Definition Classes
     AsyncTransformStates
4.  trait AsyncBlock extends AnyRef
   Definition Classes
     ExprBuilder
5.  final class AsyncState extends AnyRef
   Definition Classes
     ExprBuilder
6.  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

### Abstract Value Members

1.  abstract val global: Global
   Definition Classes
     AsyncTransformStates → TypingTransformers

### 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 LiveVariables to any2stringadd[LiveVariables] performed by method any2stringadd in scala.Predef.
   Definition Classes
     any2stringadd
4.  def ->[B](y: B): (LiveVariables, B)
   Implicit
     This member is added by an implicit conversion from LiveVariables to ArrowAssoc[LiveVariables] 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 asInstanceOf[T0]: T0
    Definition Classes
      Any
11.  def assignUnitType(t: Global.Tree): t.type
    Definition Classes
      TransformUtils
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( ... ) @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 ensuring(cond: (LiveVariables) ⇒ Boolean, msg: ⇒ Any): LiveVariables
    Implicit
      This member is added by an implicit conversion from LiveVariables to Ensuring[LiveVariables] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
17.  def ensuring(cond: (LiveVariables) ⇒ Boolean): LiveVariables
    Implicit
      This member is added by an implicit conversion from LiveVariables to Ensuring[LiveVariables] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
18.  def ensuring(cond: Boolean, msg: ⇒ Any): LiveVariables
    Implicit
      This member is added by an implicit conversion from LiveVariables to Ensuring[LiveVariables] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
19.  def ensuring(cond: Boolean): LiveVariables
    Implicit
      This member is added by an implicit conversion from LiveVariables to Ensuring[LiveVariables] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
20.  final def eq(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
21.  def equals(arg0: Any): Boolean
    Definition Classes
      AnyRef → Any
22.  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.

23.  def finalize(): Unit
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws( classOf[java.lang.Throwable] )
24.  final def flattenBlock(tree: Global.Tree)(f: (Global.Tree) ⇒ Unit): Unit
    Definition Classes
      TransformUtils
25.  final def getClass(): Class[_]
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
26.  def hashCode(): Int
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
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 listToBlock(trees: List[Global.Tree]): Global.Block
    Definition Classes
      TransformUtils
38.  def literalBool(b: Boolean): Global.Tree
    Definition Classes
      TransformUtils
39.  def literalBoxedUnit: Global.Tree
    Definition Classes
      TransformUtils
40.  def literalUnit: Global.Tree
    Definition Classes
      TransformUtils
41.  def markContainsAwait(t: Global.Tree): Unit
    Definition Classes
      TransformUtils
42.  final def ne(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
43.  def newRootLocalTyper(unit: Global.CompilationUnit): (analyzer)#Typer
    Attributes
      protected
    Definition Classes
      TypingTransformers
44.  final def notify(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
45.  final def notifyAll(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
46.  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
47.  def statsAndExpr(tree: Global.Tree): (List[Global.Tree], Global.Tree)
    Definition Classes
      TransformUtils
48.  def substituteTrees(t: Global.Tree, from: List[Global.Symbol], to: List[Global.Tree]): Global.Tree
    Definition Classes
      TransformUtils
49.  final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
      AnyRef
50.  def toMultiMap[A, B](abs: Iterable[(A, B)]): LinkedHashMap[A, List[B]]
    Definition Classes
      TransformUtils
51.  def toString(): String
    Definition Classes
      AnyRef → Any
52.  def typedBasePos(tree: Global.Tree): Global.Tree
    Definition Classes
      TransformUtils
53.  def typedCurrentPos(tree: Global.Tree): Global.Tree
    Definition Classes
      TransformUtils
54.  def typedPos(pos: Global.Position)(tree: Global.Tree): Global.Tree
    Definition Classes
      TransformUtils
55.  final def wait(): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws( ... )
56.  final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws( ... )
57.  final def wait(arg0: Long): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws( ... ) @native()
58.  def →[B](y: B): (LiveVariables, B)
    Implicit
      This member is added by an implicit conversion from LiveVariables to ArrowAssoc[LiveVariables] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
      ArrowAssoc
59.  object MatchEnd
    Definition Classes
      TransformUtils
60.  object UnwrapBoxedUnit
    Definition Classes
      TransformUtils
61.  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 LiveVariables to StringFormat[LiveVariables] 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.

### Inherited from ExprBuilder

### Inherited from AsyncAnalysis

### Inherited from TransformUtils

### Inherited from AsyncTransformStates

### Inherited from TypingTransformers

### Inherited from AnyRef

### Inherited from Any

### Inherited by implicit conversion any2stringadd from LiveVariables to any2stringadd[LiveVariables]

### Inherited by implicit conversion StringFormat from LiveVariables to StringFormat[LiveVariables]

### Inherited by implicit conversion Ensuring from LiveVariables to Ensuring[LiveVariables]

### Inherited by implicit conversion ArrowAssoc from LiveVariables to ArrowAssoc[LiveVariables]

### Ungrouped