Packages

class ExpressionSet extends Iterable[Expression]

A Set where membership is determined based on determinacy and a canonical representation of an Expression (i.e. one that attempts to ignore cosmetic differences). See Canonicalize for more details.

Internally this set uses the canonical representation, but keeps also track of the original expressions to ease debugging. Since different expressions can share the same canonical representation, this means that operations that extract expressions from this set are only guaranteed to see at least one such expression. For example:

val set = ExpressionSet(a + 1, 1 + a)

set.iterator => Iterator(a + 1)
set.contains(a + 1) => true
set.contains(1 + a) => true
set.contains(a + 2) => false

For non-deterministic expressions, they are always considered as not contained in the Set. On adding a non-deterministic expression, simply append it to the original expressions. This is consistent with how we define semanticEquals between two expressions.

Linear Supertypes
Iterable[Expression], IterableFactoryDefaults[Expression, Iterable], IterableOps[Expression, Iterable, Iterable[Expression]], IterableOnceOps[Expression, Iterable, Iterable[Expression]], IterableOnce[Expression], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ExpressionSet
  2. Iterable
  3. IterableFactoryDefaults
  4. IterableOps
  5. IterableOnceOps
  6. IterableOnce
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new ExpressionSet(baseSet: Set[Expression] = new mutable.HashSet, originals: Buffer[Expression] = new ArrayBuffer)
    Attributes
    protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. def +(elem: Expression): ExpressionSet
  4. def ++(elems: GenTraversableOnce[Expression]): ExpressionSet
  5. final def ++[B >: Expression](suffix: IterableOnce[B]): Iterable[B]
    Definition Classes
    IterableOps
    Annotations
    @inline()
  6. def -(elem: Expression): ExpressionSet
  7. def --(elems: GenTraversableOnce[Expression]): ExpressionSet
  8. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  9. def add(e: Expression): Unit
    Attributes
    protected
  10. final def addString(b: StringBuilder): StringBuilder
    Definition Classes
    IterableOnceOps
    Annotations
    @inline()
  11. final def addString(b: StringBuilder, sep: String): StringBuilder
    Definition Classes
    IterableOnceOps
    Annotations
    @inline()
  12. def addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder
    Definition Classes
    IterableOnceOps
  13. def apply(elem: Expression): Boolean
  14. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  15. def className: String
    Attributes
    protected[this]
    Definition Classes
    Iterable
  16. def clone(): ExpressionSet
    Definition Classes
    ExpressionSet → AnyRef
  17. final def coll: ExpressionSet.this.type
    Attributes
    protected
    Definition Classes
    Iterable → IterableOps
  18. def collect[B](pf: PartialFunction[Expression, B]): Iterable[B]
    Definition Classes
    IterableOps → IterableOnceOps
  19. def collectFirst[B](pf: PartialFunction[Expression, B]): Option[B]
    Definition Classes
    IterableOnceOps
  20. def concat[B >: Expression](suffix: IterableOnce[B]): Iterable[B]
    Definition Classes
    IterableOps
  21. def contains(elem: Expression): Boolean
  22. def copyToArray[B >: Expression](xs: Array[B], start: Int, len: Int): Int
    Definition Classes
    IterableOnceOps
  23. def copyToArray[B >: Expression](xs: Array[B], start: Int): Int
    Definition Classes
    IterableOnceOps
    Annotations
    @deprecatedOverriding("This should always forward to the 3-arg version of this method", "2.13.4")
  24. def copyToArray[B >: Expression](xs: Array[B]): Int
    Definition Classes
    IterableOnceOps
    Annotations
    @deprecatedOverriding("This should always forward to the 3-arg version of this method", "2.13.4")
  25. def corresponds[B](that: IterableOnce[B])(p: (Expression, B) => Boolean): Boolean
    Definition Classes
    IterableOnceOps
  26. def count(p: (Expression) => Boolean): Int
    Definition Classes
    IterableOnceOps
  27. def diff(that: ExpressionSet): ExpressionSet
  28. def drop(n: Int): Iterable[Expression]
    Definition Classes
    IterableOps → IterableOnceOps
  29. def dropRight(n: Int): Iterable[Expression]
    Definition Classes
    IterableOps
  30. def dropWhile(p: (Expression) => Boolean): Iterable[Expression]
    Definition Classes
    IterableOps → IterableOnceOps
  31. def empty: Iterable[Expression]
    Definition Classes
    IterableFactoryDefaults → IterableOps
  32. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  33. def equals(obj: Any): Boolean
    Definition Classes
    ExpressionSet → AnyRef → Any
  34. def exists(p: (Expression) => Boolean): Boolean
    Definition Classes
    IterableOnceOps
  35. def filter(p: (Expression) => Boolean): ExpressionSet
    Definition Classes
    ExpressionSet → IterableOps → IterableOnceOps
  36. def filterNot(p: (Expression) => Boolean): ExpressionSet
    Definition Classes
    ExpressionSet → IterableOps → IterableOnceOps
  37. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  38. def find(p: (Expression) => Boolean): Option[Expression]
    Definition Classes
    IterableOnceOps
  39. def flatMap(f: (Expression) => Iterable[Expression]): ExpressionSet
  40. def flatMap[B](f: (Expression) => IterableOnce[B]): Iterable[B]
    Definition Classes
    IterableOps → IterableOnceOps
  41. def flatten[B](implicit asIterable: (Expression) => IterableOnce[B]): Iterable[B]
    Definition Classes
    IterableOps → IterableOnceOps
  42. def fold[A1 >: Expression](z: A1)(op: (A1, A1) => A1): A1
    Definition Classes
    IterableOnceOps
  43. def foldLeft[B](z: B)(op: (B, Expression) => B): B
    Definition Classes
    IterableOnceOps
  44. def foldRight[B](z: B)(op: (Expression, B) => B): B
    Definition Classes
    IterableOnceOps
  45. def forall(p: (Expression) => Boolean): Boolean
    Definition Classes
    IterableOnceOps
  46. def foreach[U](f: (Expression) => U): Unit
    Definition Classes
    IterableOnceOps
  47. def fromSpecific(coll: IterableOnce[Expression]): Iterable[Expression]
    Attributes
    protected
    Definition Classes
    IterableFactoryDefaults → IterableOps
  48. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  49. def groupBy[K](f: (Expression) => K): Map[K, Iterable[Expression]]
    Definition Classes
    IterableOps
  50. def groupMap[K, B](key: (Expression) => K)(f: (Expression) => B): Map[K, Iterable[B]]
    Definition Classes
    IterableOps
  51. def groupMapReduce[K, B](key: (Expression) => K)(f: (Expression) => B)(reduce: (B, B) => B): Map[K, B]
    Definition Classes
    IterableOps
  52. def grouped(size: Int): Iterator[Iterable[Expression]]
    Definition Classes
    IterableOps
  53. def hashCode(): Int
    Definition Classes
    ExpressionSet → AnyRef → Any
  54. def head: Expression
    Definition Classes
    IterableOps
  55. def headOption: Option[Expression]
    Definition Classes
    IterableOps
  56. def init: Iterable[Expression]
    Definition Classes
    IterableOps
  57. def inits: Iterator[Iterable[Expression]]
    Definition Classes
    IterableOps
  58. def intersect(that: ExpressionSet): ExpressionSet
  59. def isEmpty: Boolean
    Definition Classes
    IterableOnceOps
  60. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  61. def isTraversableAgain: Boolean
    Definition Classes
    IterableOps → IterableOnceOps
  62. def iterableFactory: IterableFactory[Iterable]
    Definition Classes
    Iterable → IterableOps
  63. def iterator: Iterator[Expression]
    Definition Classes
    ExpressionSet → IterableOnce
  64. def knownSize: Int
    Definition Classes
    IterableOnce
  65. def last: Expression
    Definition Classes
    IterableOps
  66. def lastOption: Option[Expression]
    Definition Classes
    IterableOps
  67. def lazyZip[B](that: Iterable[B]): LazyZip2[Expression, B, ExpressionSet.this.type]
    Definition Classes
    Iterable
  68. def map(f: (Expression) => Expression): ExpressionSet
  69. def map[B](f: (Expression) => B): Iterable[B]
    Definition Classes
    IterableOps → IterableOnceOps
  70. def max[B >: Expression](implicit ord: Ordering[B]): Expression
    Definition Classes
    IterableOnceOps
  71. def maxBy[B](f: (Expression) => B)(implicit cmp: Ordering[B]): Expression
    Definition Classes
    IterableOnceOps
  72. def maxByOption[B](f: (Expression) => B)(implicit cmp: Ordering[B]): Option[Expression]
    Definition Classes
    IterableOnceOps
  73. def maxOption[B >: Expression](implicit ord: Ordering[B]): Option[Expression]
    Definition Classes
    IterableOnceOps
  74. def min[B >: Expression](implicit ord: Ordering[B]): Expression
    Definition Classes
    IterableOnceOps
  75. def minBy[B](f: (Expression) => B)(implicit cmp: Ordering[B]): Expression
    Definition Classes
    IterableOnceOps
  76. def minByOption[B](f: (Expression) => B)(implicit cmp: Ordering[B]): Option[Expression]
    Definition Classes
    IterableOnceOps
  77. def minOption[B >: Expression](implicit ord: Ordering[B]): Option[Expression]
    Definition Classes
    IterableOnceOps
  78. final def mkString: String
    Definition Classes
    IterableOnceOps
    Annotations
    @inline()
  79. final def mkString(sep: String): String
    Definition Classes
    IterableOnceOps
    Annotations
    @inline()
  80. final def mkString(start: String, sep: String, end: String): String
    Definition Classes
    IterableOnceOps
  81. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  82. def newSpecificBuilder: Builder[Expression, Iterable[Expression]]
    Attributes
    protected
    Definition Classes
    IterableFactoryDefaults → IterableOps
  83. def nonEmpty: Boolean
    Definition Classes
    IterableOnceOps
    Annotations
    @deprecatedOverriding("nonEmpty is defined as !isEmpty; override isEmpty instead", "2.13.0")
  84. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  85. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  86. def partition(p: (Expression) => Boolean): (Iterable[Expression], Iterable[Expression])
    Definition Classes
    IterableOps
  87. def partitionMap[A1, A2](f: (Expression) => Either[A1, A2]): (Iterable[A1], Iterable[A2])
    Definition Classes
    IterableOps
  88. def product[B >: Expression](implicit num: Numeric[B]): B
    Definition Classes
    IterableOnceOps
  89. def reduce[B >: Expression](op: (B, B) => B): B
    Definition Classes
    IterableOnceOps
  90. def reduceLeft[B >: Expression](op: (B, Expression) => B): B
    Definition Classes
    IterableOnceOps
  91. def reduceLeftOption[B >: Expression](op: (B, Expression) => B): Option[B]
    Definition Classes
    IterableOnceOps
  92. def reduceOption[B >: Expression](op: (B, B) => B): Option[B]
    Definition Classes
    IterableOnceOps
  93. def reduceRight[B >: Expression](op: (Expression, B) => B): B
    Definition Classes
    IterableOnceOps
  94. def reduceRightOption[B >: Expression](op: (Expression, B) => B): Option[B]
    Definition Classes
    IterableOnceOps
  95. def remove(e: Expression): Unit
    Attributes
    protected
  96. def reversed: Iterable[Expression]
    Attributes
    protected
    Definition Classes
    IterableOnceOps
  97. def scan[B >: Expression](z: B)(op: (B, B) => B): Iterable[B]
    Definition Classes
    IterableOps
  98. def scanLeft[B](z: B)(op: (B, Expression) => B): Iterable[B]
    Definition Classes
    IterableOps → IterableOnceOps
  99. def scanRight[B](z: B)(op: (Expression, B) => B): Iterable[B]
    Definition Classes
    IterableOps
  100. def size: Int
    Definition Classes
    IterableOnceOps
  101. def sizeCompare(that: Iterable[_]): Int
    Definition Classes
    IterableOps
  102. def sizeCompare(otherSize: Int): Int
    Definition Classes
    IterableOps
  103. final def sizeIs: SizeCompareOps
    Definition Classes
    IterableOps
    Annotations
    @inline()
  104. def slice(from: Int, until: Int): Iterable[Expression]
    Definition Classes
    IterableOps → IterableOnceOps
  105. def sliding(size: Int, step: Int): Iterator[Iterable[Expression]]
    Definition Classes
    IterableOps
  106. def sliding(size: Int): Iterator[Iterable[Expression]]
    Definition Classes
    IterableOps
  107. def span(p: (Expression) => Boolean): (Iterable[Expression], Iterable[Expression])
    Definition Classes
    IterableOps → IterableOnceOps
  108. def splitAt(n: Int): (Iterable[Expression], Iterable[Expression])
    Definition Classes
    IterableOps → IterableOnceOps
  109. def stepper[S <: Stepper[_]](implicit shape: StepperShape[Expression, S]): S
    Definition Classes
    IterableOnce
  110. def stringPrefix: String
    Attributes
    protected[this]
    Definition Classes
    Iterable
    Annotations
    @deprecatedOverriding("Override className instead", "2.13.0")
  111. def subsetOf(that: ExpressionSet): Boolean
  112. def sum[B >: Expression](implicit num: Numeric[B]): B
    Definition Classes
    IterableOnceOps
  113. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  114. def tail: Iterable[Expression]
    Definition Classes
    IterableOps
  115. def tails: Iterator[Iterable[Expression]]
    Definition Classes
    IterableOps
  116. def take(n: Int): Iterable[Expression]
    Definition Classes
    IterableOps → IterableOnceOps
  117. def takeRight(n: Int): Iterable[Expression]
    Definition Classes
    IterableOps
  118. def takeWhile(p: (Expression) => Boolean): Iterable[Expression]
    Definition Classes
    IterableOps → IterableOnceOps
  119. def tapEach[U](f: (Expression) => U): Iterable[Expression]
    Definition Classes
    IterableOps → IterableOnceOps
  120. def to[C1](factory: Factory[Expression, C1]): C1
    Definition Classes
    IterableOnceOps
  121. def toArray[B >: Expression](implicit arg0: ClassTag[B]): Array[B]
    Definition Classes
    IterableOnceOps
  122. final def toBuffer[B >: Expression]: Buffer[B]
    Definition Classes
    IterableOnceOps
    Annotations
    @inline()
  123. def toDebugString: String

    Returns a string containing both the post Canonicalize expressions and the original expressions in this set.

  124. def toIndexedSeq: IndexedSeq[Expression]
    Definition Classes
    IterableOnceOps
  125. final def toIterable: ExpressionSet.this.type
    Definition Classes
    Iterable → IterableOps
  126. def toList: List[Expression]
    Definition Classes
    IterableOnceOps
  127. def toMap[K, V](implicit ev: <:<[Expression, (K, V)]): Map[K, V]
    Definition Classes
    IterableOnceOps
  128. def toSeq: Seq[Expression]
    Definition Classes
    IterableOnceOps
  129. def toSet[B >: Expression]: Set[B]
    Definition Classes
    IterableOnceOps
  130. def toString(): String
    Definition Classes
    Iterable → AnyRef → Any
  131. def toVector: Vector[Expression]
    Definition Classes
    IterableOnceOps
  132. def transpose[B](implicit asIterable: (Expression) => Iterable[B]): Iterable[Iterable[B]]
    Definition Classes
    IterableOps
  133. def union(that: ExpressionSet): ExpressionSet
  134. def unzip[A1, A2](implicit asPair: (Expression) => (A1, A2)): (Iterable[A1], Iterable[A2])
    Definition Classes
    IterableOps
  135. def unzip3[A1, A2, A3](implicit asTriple: (Expression) => (A1, A2, A3)): (Iterable[A1], Iterable[A2], Iterable[A3])
    Definition Classes
    IterableOps
  136. def view: View[Expression]
    Definition Classes
    IterableOps
  137. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  138. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  139. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  140. def withFilter(p: (Expression) => Boolean): WithFilter[Expression, Iterable]
    Definition Classes
    IterableOps
  141. def zip[B](that: IterableOnce[B]): Iterable[(Expression, B)]
    Definition Classes
    IterableOps
  142. def zipAll[A1 >: Expression, B](that: Iterable[B], thisElem: A1, thatElem: B): Iterable[(A1, B)]
    Definition Classes
    IterableOps
  143. def zipWithIndex: Iterable[(Expression, Int)]
    Definition Classes
    IterableOps → IterableOnceOps

Deprecated Value Members

  1. def ++:[B >: Expression](that: IterableOnce[B]): Iterable[B]
    Definition Classes
    IterableOps
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use ++ instead of ++: for collections of type Iterable

  2. final def /:[B](z: B)(op: (B, Expression) => B): B
    Definition Classes
    IterableOnceOps
    Annotations
    @deprecated @inline()
    Deprecated

    (Since version 2.13.0) Use foldLeft instead of /:

  3. final def :\[B](z: B)(op: (Expression, B) => B): B
    Definition Classes
    IterableOnceOps
    Annotations
    @deprecated @inline()
    Deprecated

    (Since version 2.13.0) Use foldRight instead of :\

  4. def aggregate[B](z: => B)(seqop: (B, Expression) => B, combop: (B, B) => B): B
    Definition Classes
    IterableOnceOps
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) aggregate is not relevant for sequential collections. Use foldLeft(z)(seqop) instead.

  5. def companion: IterableFactory[Iterable]
    Definition Classes
    IterableOps
    Annotations
    @deprecated @deprecatedOverriding("Use iterableFactory instead", "2.13.0") @inline()
    Deprecated

    (Since version 2.13.0) Use iterableFactory instead

  6. final def copyToBuffer[B >: Expression](dest: Buffer[B]): Unit
    Definition Classes
    IterableOnceOps
    Annotations
    @deprecated @inline()
    Deprecated

    (Since version 2.13.0) Use dest ++= coll instead

  7. def hasDefiniteSize: Boolean
    Definition Classes
    IterableOnceOps
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Check .knownSize instead of .hasDefiniteSize for more actionable information (see scaladoc for details)

  8. final def repr: Iterable[Expression]
    Definition Classes
    IterableOps
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use coll instead of repr in a collection implementation, use the collection value itself from the outside

  9. def seq: ExpressionSet.this.type
    Definition Classes
    Iterable
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Iterable.seq always returns the iterable itself

  10. final def toIterator: Iterator[Expression]
    Definition Classes
    IterableOnceOps
    Annotations
    @deprecated @inline()
    Deprecated

    (Since version 2.13.0) Use .iterator instead of .toIterator

  11. final def toStream: Stream[Expression]
    Definition Classes
    IterableOnceOps
    Annotations
    @deprecated @inline()
    Deprecated

    (Since version 2.13.0) Use .to(LazyList) instead of .toStream

  12. final def toTraversable: Traversable[Expression]
    Definition Classes
    IterableOps
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use toIterable instead

  13. def view(from: Int, until: Int): View[Expression]
    Definition Classes
    IterableOps
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use .view.slice(from, until) instead of .view(from, until)

Inherited from Iterable[Expression]

Inherited from IterableFactoryDefaults[Expression, Iterable]

Inherited from IterableOps[Expression, Iterable, Iterable[Expression]]

Inherited from IterableOnceOps[Expression, Iterable, Iterable[Expression]]

Inherited from IterableOnce[Expression]

Inherited from AnyRef

Inherited from Any

Ungrouped