Trait

inox.ast.Definitions

AbstractSymbols

Related Doc: package Definitions

Permalink

trait AbstractSymbols extends Trees.Printable with TypeOps with SymbolOps with CallGraph with DependencyGraph with Paths

Provides the class and function definitions of a program and lookups on them

Self Type
Trees.Symbols
Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AbstractSymbols
  2. Paths
  3. DependencyGraph
  4. CallGraph
  5. SymbolOps
  6. TypeOps
  7. Printable
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. class Collector extends Trees.TreeTraverser

    Permalink
    Attributes
    protected
    Definition Classes
    CallGraph
  2. class FunctionCollector extends Collector

    Permalink
    Attributes
    protected
    Definition Classes
    CallGraph
  3. case class NoSimpleValue(tpe: Trees.Type) extends Exception with Product with Serializable

    Permalink
    Definition Classes
    SymbolOps
  4. class Path extends Trees.Printable with (Paths.this)#PathLike[(Paths.this)#Path]

    Permalink

    Encodes path conditions

    Encodes path conditions

    Paths are encoded as an (ordered) series of let-bindings and boolean propositions. A path is satisfiable iff all propositions are true in the context of the provided let-bindings.

    This encoding enables let-bindings over types for which equality is not defined, whereas an encoding of let-bindings with equalities could introduce non-sensical equations.

    Definition Classes
    Paths
  5. trait PathLike[Self <: (Paths.this)#PathLike[Self]] extends AnyRef

    Permalink
    Definition Classes
    Paths
  6. trait PathProvider[P <: (Paths.this)#PathLike[P]] extends AnyRef

    Permalink
    Definition Classes
    Paths
  7. type Semantics = inox.Semantics { ... /* 2 definitions in type refinement */ }

    Permalink
  8. trait SimplifierWithPC extends transformers.SimplifierWithPC

    Permalink
    Attributes
    protected
    Definition Classes
    SymbolOps
  9. class SortCollector extends Collector

    Permalink
    Attributes
    protected
    Definition Classes
    DependencyGraph
  10. class TransformerOp[P <: Definitions.Symbols.PathLike[P]] extends AnyRef

    Permalink
    Definition Classes
    SymbolOps
  11. trait TransformerWithFun extends transformers.TransformerWithPC

    Permalink
    Attributes
    protected
    Definition Classes
    SymbolOps
  12. class TransformerWithPC[P <: Definitions.Symbols.PathLike[P]] extends transformers.TransformerWithPC

    Permalink
    Attributes
    protected
    Definition Classes
    SymbolOps
  13. class TypeErrorException extends Exception

    Permalink
    Definition Classes
    TypeOps

Abstract Value Members

  1. abstract val functions: Map[Identifier, Trees.FunDef]

    Permalink
  2. abstract val sorts: Map[Identifier, Trees.ADTSort]

    Permalink
  3. abstract def withFunctions(functions: Seq[Trees.FunDef]): Trees.Symbols

    Permalink
  4. abstract def withSorts(sorts: Seq[Trees.ADTSort]): Trees.Symbols

    Permalink

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object CallGraphOrderings

    Permalink
    Definition Classes
    CallGraph
  5. implicit object Path extends (Paths.this)#PathProvider[(Paths.this)#Path]

    Permalink
    Definition Classes
    Paths
  6. object TypeErrorException extends Serializable

    Permalink
    Definition Classes
    TypeOps
  7. def adtSelector(adt: Trees.Expr, selector: Identifier): Trees.Expr

    Permalink

    Simplifies the provided adt selector.

    Simplifies the provided adt selector.

    Definition Classes
    SymbolOps
    See also

    ADTSelector

  8. def allCalls: Set[(Identifier, Identifier)]

    Permalink
    Definition Classes
    CallGraph
  9. def application(fn: Trees.Expr, realArgs: Seq[Trees.Expr]): Trees.Expr

    Permalink

    Encoding of simplified fn(realArgs) (function application).

    Encoding of simplified fn(realArgs) (function application). Transforms

    ((x: A, y: B) => g(x, y))(c, d)

    into

    val x0 = c
    val y0 = d
    g(x0, y0)

    and further simplifies it.

    Definition Classes
    SymbolOps
    See also

    Application

    Lambda

  10. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  11. def asString(implicit opts: Trees.PrinterOptions): String

    Permalink
    Definition Classes
    AbstractSymbolsPrintable
  12. def callGraph: DiGraph[Identifier, SimpleEdge[Identifier]]

    Permalink
    Definition Classes
    CallGraph
    Annotations
    @inline()
  13. def callees(froms: Set[Trees.FunDef])(implicit dummy: DummyImplicit): Set[Trees.FunDef]

    Permalink
    Definition Classes
    CallGraph
  14. def callees(froms: Set[Identifier]): Set[Identifier]

    Permalink
    Definition Classes
    CallGraph
  15. def callees(from: Trees.FunDef): Set[Trees.FunDef]

    Permalink
    Definition Classes
    CallGraph
  16. def callees(from: Identifier): Set[Identifier]

    Permalink
    Definition Classes
    CallGraph
  17. def callers(tos: Set[Trees.FunDef])(implicit dummy: DummyImplicit): Set[Trees.FunDef]

    Permalink
    Definition Classes
    CallGraph
  18. def callers(tos: Set[Identifier]): Set[Identifier]

    Permalink
    Definition Classes
    CallGraph
  19. def callers(to: Trees.FunDef): Set[Trees.FunDef]

    Permalink
    Definition Classes
    CallGraph
  20. def callers(to: Identifier): Set[Identifier]

    Permalink
    Definition Classes
    CallGraph
  21. def calls(from: Identifier, to: Identifier): Boolean

    Permalink
    Definition Classes
    CallGraph
  22. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. def collectWithPC[T](e: Trees.Expr)(pf: PartialFunction[(Trees.Expr, Symbols.Path), T]): Seq[T]

    Permalink
    Definition Classes
    SymbolOps
  24. def collectWithPC[P <: Symbols.PathLike[P], T](e: Trees.Expr, path: P)(pf: PartialFunction[(Trees.Expr, P), T])(implicit pp: Symbols.PathProvider[P]): Seq[T]

    Permalink
    Definition Classes
    SymbolOps
  25. def computeCallGraph: DiGraph[Identifier, SimpleEdge[Identifier]]

    Permalink
    Attributes
    protected
    Definition Classes
    CallGraph
  26. def computeDependencyGraph: DiGraph[Identifier, SimpleEdge[Identifier]]

    Permalink
    Attributes
    protected
    Definition Classes
    DependencyGraph
  27. def constructExpr(i: Int, tpe: Trees.Type): Trees.Expr

    Permalink

    Generates an instance of type tpe such that the following holds:

    Generates an instance of type tpe such that the following holds:

    constructExpr(i, tpe) == constructExpr(j, tpe)

    iff

    i == j

    .

    i == j }}}

    constructExpr(i, tpe) == constructExpr(j, tpe) }}}

    Definition Classes
    SymbolOps
  28. def constructorCardinality(cons: Trees.TypedADTConstructor): Option[Int]

    Permalink
    Definition Classes
    TypeOps
  29. def constructors: Map[Identifier, Trees.ADTConstructor]

    Permalink
    Annotations
    @inline()
  30. def createSimplifier(popts: PurityOptions): Symbols.SimplifierWithPC

    Permalink

    Override point for simplifier creation

    Override point for simplifier creation

    Attributes
    protected
    Definition Classes
    SymbolOps
  31. def createTransformer[P <: Symbols.PathLike[P]](path: P, f: (Trees.Expr, P, Symbols.TransformerOp[P]) ⇒ Trees.Expr)(implicit pp: Symbols.PathProvider[P]): Symbols.TransformerWithPC[P]

    Permalink

    Override point for transformer with PC creation

    Override point for transformer with PC creation

    Attributes
    protected
    Definition Classes
    SymbolOps
  32. def dependencies(from: Identifier): Set[Identifier]

    Permalink
    Definition Classes
    DependencyGraph
  33. def dependencyGraph: DiGraph[Identifier, SimpleEdge[Identifier]]

    Permalink
    Definition Classes
    DependencyGraph
    Annotations
    @inline()
  34. def dependsOn(from: Identifier, to: Identifier): Boolean

    Permalink
    Definition Classes
    DependencyGraph
  35. def ensureWellFormed: Unit

    Permalink

    Makes sure these symbols pass a certain number of well-formedness checks, such as - function definition bodies satisfy the declared return types - adt sorts and constructors point to each other correctly - each adt type has at least one instance - adt type parameter flags match between children and parents - every variable is available in the scope of its usage

    Makes sure these symbols pass a certain number of well-formedness checks, such as - function definition bodies satisfy the declared return types - adt sorts and constructors point to each other correctly - each adt type has at least one instance - adt type parameter flags match between children and parents - every variable is available in the scope of its usage

    Annotations
    @inline()
  36. def ensureWellFormedAdt(sort: Trees.ADTSort): Unit

    Permalink
    Attributes
    protected
  37. def ensureWellFormedFunction(fd: Trees.FunDef): Unit

    Permalink
    Attributes
    protected
  38. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  39. def equals(that: Any): Boolean

    Permalink
    Definition Classes
    AbstractSymbols → AnyRef → Any
  40. def existsWithPC(e: Trees.Expr)(p: (Trees.Expr, Symbols.Path) ⇒ Boolean): Boolean

    Permalink
    Definition Classes
    SymbolOps
  41. def existsWithPC[P <: Symbols.PathLike[P]](e: Trees.Expr, path: P)(p: (Trees.Expr, P) ⇒ Boolean)(implicit pp: Symbols.PathProvider[P]): Boolean

    Permalink
    Definition Classes
    SymbolOps
  42. def expandLets(expr: Trees.Expr): Trees.Expr

    Permalink

    Fully expands all let expressions.

    Fully expands all let expressions.

    Definition Classes
    SymbolOps
  43. def explainTyping(e: Trees.Expr)(implicit opts: Trees.PrinterOptions): String

    Permalink

    Returns a nested string explaining why this expression is typed the way it is.

    Returns a nested string explaining why this expression is typed the way it is.

    Definition Classes
    SymbolOps
  44. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  45. def forall(args: Seq[Trees.ValDef], body: Trees.Expr): Trees.Expr

    Permalink

    Encoding of simplified forall(args, body) (universal quantification).

    Encoding of simplified forall(args, body) (universal quantification).

    Definition Classes
    SymbolOps
    See also

    Forall

  46. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  47. def getConstructor(id: Identifier, tps: Seq[Trees.Type]): Trees.TypedADTConstructor

    Permalink
  48. def getConstructor(id: Identifier): Trees.ADTConstructor

    Permalink
  49. def getFunction(id: Identifier, tps: Seq[Trees.Type]): Trees.TypedFunDef

    Permalink
  50. def getFunction(id: Identifier): Trees.FunDef

    Permalink
  51. def getFunctionCollector: Symbols.FunctionCollector

    Permalink
    Attributes
    protected
    Definition Classes
    CallGraph
  52. def getSort(id: Identifier, tps: Seq[Trees.Type]): Trees.TypedADTSort

    Permalink
  53. def getSort(id: Identifier): Trees.ADTSort

    Permalink
  54. def getSortCollector: Symbols.SortCollector

    Permalink
    Attributes
    protected
    Definition Classes
    DependencyGraph
  55. def greatestLowerBound(tps: Seq[Trees.Type]): Trees.Type

    Permalink
    Definition Classes
    TypeOps
  56. def greatestLowerBound(tp1: Trees.Type, tp2: Trees.Type): Trees.Type

    Permalink
    Definition Classes
    TypeOps
  57. def hasInstance(tpe: Trees.Type): Option[Boolean]

    Permalink
    Definition Classes
    SymbolOps
  58. def hashCode(): Int

    Permalink
    Definition Classes
    AbstractSymbols → AnyRef → Any
  59. def hoistIte(expr: Trees.Expr): Trees.Expr

    Permalink

    Hoists all IfExpr at top level.

    Hoists all IfExpr at top level.

    Guarantees that all IfExpr will be at the top level and as soon as you encounter a non-IfExpr, then no more IfExpr can be found in the sub-expressions

    Assumes no match expressions

    Definition Classes
    SymbolOps
  60. def ifExpr(c: Trees.Expr, t: Trees.Expr, e: Trees.Expr): Trees.Expr

    Permalink

    Encoding of simplified if (c) t else e (if-expression).

    Encoding of simplified if (c) t else e (if-expression).

    Definition Classes
    SymbolOps
    See also

    IfExpr

  61. implicit def implicitSymbols: AbstractSymbols.this.type

    Permalink
  62. def inlineLambdas(e: Trees.Expr)(implicit opts: PurityOptions): Trees.Expr

    Permalink
    Definition Classes
    SymbolOps
  63. def instantiation(from: Trees.Type, to: Trees.Type): Option[Symbols.Instantiation]

    Permalink
    Definition Classes
    TypeOps
  64. def isAlwaysPure(expr: Trees.Expr): Boolean

    Permalink
    Definition Classes
    SymbolOps
  65. def isCons(expr: Trees.Expr, id: Identifier): Trees.Expr with Product

    Permalink

    Encoding of expr.isInstanceOf[tpe], simplifies to true or false in clear cases.

    Encoding of expr.isInstanceOf[tpe], simplifies to true or false in clear cases.

    Definition Classes
    SymbolOps
  66. def isImpureExpr(expr: Trees.Expr): Boolean

    Permalink
    Definition Classes
    SymbolOps
  67. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  68. def isPure(expr: Trees.Expr)(implicit opts: PurityOptions): Boolean

    Permalink

    Returns 'true' iff the evaluation of expression expr cannot lead to a crash.

    Returns 'true' iff the evaluation of expression expr cannot lead to a crash.

    Definition Classes
    SymbolOps
  69. def isPureIn(e: Trees.Expr, path: Symbols.Path)(implicit opts: PurityOptions): Boolean

    Permalink

    Returns 'true' iff the evaluation of expression expr cannot lead to a crash under the provided path.

    Returns 'true' iff the evaluation of expression expr cannot lead to a crash under the provided path.

    Definition Classes
    SymbolOps
  70. def isRecursive(id: Identifier): Boolean

    Permalink
    Definition Classes
    CallGraph
  71. def isSelfRecursive(id: Identifier): Boolean

    Permalink
    Definition Classes
    CallGraph
  72. def isSubtypeOf(t1: Trees.Type, t2: Trees.Type): Boolean

    Permalink
    Definition Classes
    TypeOps
  73. def isValue(e: Trees.Expr): Boolean

    Permalink

    Returns true if expr is a value.

    Returns true if expr is a value. Stronger than isGround

    Definition Classes
    SymbolOps
  74. def isValueOfType(e: Trees.Expr, t: Trees.Type): Boolean

    Permalink

    Returns true if expr is a value of type t

    Returns true if expr is a value of type t

    Definition Classes
    SymbolOps
  75. def leastUpperBound(tps: Seq[Trees.Type]): Trees.Type

    Permalink
    Definition Classes
    TypeOps
  76. def leastUpperBound(tp1: Trees.Type, tp2: Trees.Type): Trees.Type

    Permalink
    Definition Classes
    TypeOps
  77. def let(vd: Trees.ValDef, e: Trees.Expr, bd: Trees.Expr): Trees.Expr

    Permalink

    Encoding of val id = e; vd, and returns bd if the identifier is not bound in bd AND the expression e is pure.

    Encoding of val id = e; vd, and returns bd if the identifier is not bound in bd AND the expression e is pure.

    Definition Classes
    SymbolOps
    See also

    isPure

    Let

  78. def liftLets(e: Trees.Expr): Trees.Expr

    Permalink

    Lifts lets to top level.

    Lifts lets to top level.

    Does not push any used variable out of scope.

    Definition Classes
    SymbolOps
  79. def lookupConstructor(id: Identifier, tps: Seq[Trees.Type]): Option[Trees.TypedADTConstructor]

    Permalink
  80. def lookupConstructor(id: Identifier): Option[Trees.ADTConstructor]

    Permalink
  81. def lookupFunction(id: Identifier, tps: Seq[Trees.Type]): Option[Trees.TypedFunDef]

    Permalink
  82. def lookupFunction(id: Identifier): Option[Trees.FunDef]

    Permalink
  83. def lookupSort(id: Identifier, tps: Seq[Trees.Type]): Option[Trees.TypedADTSort]

    Permalink
  84. def lookupSort(id: Identifier): Option[Trees.ADTSort]

    Permalink
  85. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  86. def normalizeStructure(e: Trees.Expr, onlySimple: Boolean = false)(implicit opts: PurityOptions): (Trees.Expr, Seq[(Trees.Variable, Trees.Expr, Seq[Trees.Expr])])

    Permalink

    Wrapper around normalizeStructure that is tailored for structural equality of Lambda and Forall instances.

    Wrapper around normalizeStructure that is tailored for structural equality of Lambda and Forall instances.

    Definition Classes
    SymbolOps
  87. def normalizeStructure(args: Seq[Trees.ValDef], expr: Trees.Expr, preserveApps: Boolean, onlySimple: Boolean, inFunction: Boolean)(implicit opts: PurityOptions): (Seq[Trees.ValDef], Trees.Expr, Seq[(Trees.Variable, Trees.Expr, Seq[Trees.Expr])])

    Permalink

    Normalizes identifiers in an expression to enable some notion of structural equality between expressions on which usual equality doesn't make sense (i.e.

    Normalizes identifiers in an expression to enable some notion of structural equality between expressions on which usual equality doesn't make sense (i.e. closures).

    This function relies on the static map identifiers to ensure identical structures.

    args

    The "arguments" (free variables) of expr

    expr

    The expression to be normalized

    preserveApps

    Determines whether E-matching patterns should be preserved during normalization (useful for normalizing foralls)

    onlySimple

    Determines whether non-simple expressions (see isSimple) should be normalized into a dependency or recursed into (when they don't depend on args). This distinction is used to provide general equality checks between functions even when they have complex closures.

    inFunction

    Determines whether normalization is called on a function. If not, then normalization can normalize impure expressions when the path-condition is empty.

    Definition Classes
    SymbolOps
  88. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  89. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  90. def sccs: DiGraph[Set[Identifier], SimpleEdge[Set[Identifier]]]

    Permalink
    Definition Classes
    CallGraph
    Annotations
    @inline()
  91. def simpForall(args: Seq[Trees.ValDef], body: Trees.Expr): Trees.Expr

    Permalink
    Definition Classes
    SymbolOps
  92. def simplestValue(tpe: Trees.Type, allowSolver: Boolean = true)(implicit sem: Symbols.Semantics, ctx: Context): Trees.Expr

    Permalink

    Returns simplest value of a given type

    Returns simplest value of a given type

    Definition Classes
    SymbolOps
  93. def simplifier(implicit purityOpts: PurityOptions): Symbols.SimplifierWithPC

    Permalink
    Definition Classes
    SymbolOps
  94. def simplifyByConstructors(expr: Trees.Expr): Trees.Expr

    Permalink

    Replace each node by its constructor

    Replace each node by its constructor

    Remap the expression by calling the corresponding constructor for each node of the expression. The constructor will perfom some local simplifications, resulting in a simplified expression.

    Definition Classes
    SymbolOps
  95. def simplifyExpr(expr: Trees.Expr)(implicit opts: PurityOptions): Trees.Expr

    Permalink
    Definition Classes
    SymbolOps
  96. def simplifyForalls(e: Trees.Expr)(implicit opts: PurityOptions): Trees.Expr

    Permalink

    Pre-processing for solvers that handle universal quantification in order to increase the precision of polarity analysis for quantification instantiations.

    Pre-processing for solvers that handle universal quantification in order to increase the precision of polarity analysis for quantification instantiations.

    Definition Classes
    SymbolOps
  97. def simplifyGround(expr: Trees.Expr, reportErrors: Boolean = false)(implicit sem: Symbols.Semantics, ctx: Context): Trees.Expr

    Permalink

    Simplify all the pure and ground sub-expressions of the given expression, by evaluating them using inox.evaluators.Evaluator.

    Simplify all the pure and ground sub-expressions of the given expression, by evaluating them using inox.evaluators.Evaluator. If force is omitted, the given expression will only be evaluated if it is ground, pure, and does not contain choose or quantifiers.

    Definition Classes
    SymbolOps
  98. def simplifyLets(expr: Trees.Expr): Trees.Expr

    Permalink
    Definition Classes
    SymbolOps
  99. val symbols: AbstractSymbols.this.type

    Permalink
    Attributes
    protected
    Definition Classes
    AbstractSymbolsCallGraphTypeOps
  100. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  101. def toString(): String

    Permalink
    Definition Classes
    AbstractSymbols → AnyRef → Any
  102. def transform(t: TreeTransformer { val s: Definitions.this.type }): Trees.Symbols

    Permalink
  103. def transformWithPC(e: Trees.Expr)(f: (Trees.Expr, Symbols.Path, Symbols.TransformerOp[Symbols.Path]) ⇒ Trees.Expr): Trees.Expr

    Permalink
    Definition Classes
    SymbolOps
  104. def transformWithPC[P <: Symbols.PathLike[P]](e: Trees.Expr, path: P)(f: (Trees.Expr, P, Symbols.TransformerOp[P]) ⇒ Trees.Expr)(implicit pp: Symbols.PathProvider[P]): Trees.Expr

    Permalink
    Definition Classes
    SymbolOps
  105. def transitiveCallees(froms: Set[Trees.FunDef])(implicit dummy: DummyImplicit): Set[Trees.FunDef]

    Permalink
    Definition Classes
    CallGraph
  106. def transitiveCallees(froms: Set[Identifier]): Set[Identifier]

    Permalink
    Definition Classes
    CallGraph
  107. def transitiveCallees(from: Trees.FunDef): Set[Trees.FunDef]

    Permalink
    Definition Classes
    CallGraph
  108. def transitiveCallees(from: Identifier): Set[Identifier]

    Permalink
    Definition Classes
    CallGraph
  109. def transitiveCallers(tos: Set[Trees.FunDef])(implicit dummy: DummyImplicit): Set[Trees.FunDef]

    Permalink
    Definition Classes
    CallGraph
  110. def transitiveCallers(tos: Set[Identifier]): Set[Identifier]

    Permalink
    Definition Classes
    CallGraph
  111. def transitiveCallers(to: Trees.FunDef): Set[Trees.FunDef]

    Permalink
    Definition Classes
    CallGraph
  112. def transitiveCallers(to: Identifier): Set[Identifier]

    Permalink
    Definition Classes
    CallGraph
  113. def transitivelyCalls(from: Trees.FunDef, to: Trees.FunDef): Boolean

    Permalink
    Definition Classes
    CallGraph
  114. def transitivelyCalls(from: Identifier, to: Identifier): Boolean

    Permalink
    Definition Classes
    CallGraph
  115. val trees: Definitions.this.type

    Permalink
    Attributes
    protected
    Definition Classes
    AbstractSymbolsCallGraphTypeOps
  116. def tupleSelect(t: Trees.Expr, index: Int, isTuple: Boolean): Trees.Expr

    Permalink

    If isTuple: tupleSelect(tupleWrap(Seq(Tuple(x,y))), 1) -> x tupleSelect(tupleExpr,1) -> tupleExpr._1 If not isTuple (usually used only in the case of a tuple of arity 1) tupleSelect(tupleWrap(Seq(Tuple(x,y))),1) -> Tuple(x,y).

    If isTuple: tupleSelect(tupleWrap(Seq(Tuple(x,y))), 1) -> x tupleSelect(tupleExpr,1) -> tupleExpr._1 If not isTuple (usually used only in the case of a tuple of arity 1) tupleSelect(tupleWrap(Seq(Tuple(x,y))),1) -> Tuple(x,y).

    Definition Classes
    SymbolOps
    See also

    TupleSelect

  117. def tupleSelect(t: Trees.Expr, index: Int, originalSize: Int): Trees.Expr

    Permalink

    Simplifies the construct TupleSelect(expr, index)

    Simplifies the construct TupleSelect(expr, index)

    originalSize

    The arity of the tuple. If less or equal to 1, the whole expression is returned.

    Definition Classes
    SymbolOps
    See also

    TupleSelect

  118. def typeCardinality(tp: Trees.Type): Option[Int]

    Permalink
    Definition Classes
    TypeOps
  119. def typeCheck(obj: Trees.Expr, exps: Trees.Type*): Unit

    Permalink
    Definition Classes
    TypeOps
  120. def typeDependencies(tpe: Trees.Type): Map[Trees.Type, Set[Trees.Type]]

    Permalink
    Definition Classes
    TypeOps
  121. def typeParamsOf(expr: Trees.Expr): Set[Trees.TypeParameter]

    Permalink
    Definition Classes
    TypeOps
  122. def uniquateClosure(id: Int, res: Trees.Lambda)(implicit opts: PurityOptions): Trees.Lambda

    Permalink

    Ensures the closure res can only be equal to some other closure if they share the same integer identifier id.

    Ensures the closure res can only be equal to some other closure if they share the same integer identifier id. This method makes sure this property is preserved after going through normalizeStructure(e:SymbolOps\.this\.trees\.Expr,onlySimple:Boolean)*.

    Definition Classes
    SymbolOps
  123. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  124. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  125. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Paths

Inherited from DependencyGraph

Inherited from CallGraph

Inherited from SymbolOps

Inherited from TypeOps

Inherited from Trees.Printable

Inherited from AnyRef

Inherited from Any

Ungrouped