Packages

class ExpressionSet extends Set[Expression] with SetOps[Expression, Set, ExpressionSet]

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.

The constructor of this class is protected so caller can only initialize an Expression from empty, then build it using add and remove methods. So every instance of this class holds the invariant that: 1. Every expr e in baseSet satisfies e.deterministic && e.canonicalized == e 2. Every deterministic expr e in originals satisfies that e.canonicalized is already accessed.

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

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

  132. def toIndexedSeq: IndexedSeq[Expression]
    Definition Classes
    IterableOnceOps
  133. def toList: List[Expression]
    Definition Classes
    IterableOnceOps
  134. def toMap[K, V](implicit ev: <:<[Expression, (K, V)]): Map[K, V]
    Definition Classes
    IterableOnceOps
  135. def toSeq: Seq[Expression]
    Definition Classes
    IterableOnceOps
  136. def toSet[B >: Expression]: Set[B]
    Definition Classes
    IterableOnceOps
  137. def toString(): String
    Definition Classes
    Set → Function1 → Iterable → AnyRef → Any
  138. def toVector: Vector[Expression]
    Definition Classes
    IterableOnceOps
  139. def transpose[B](implicit asIterable: (Expression) => Iterable[B]): Set[Set[B]]
    Definition Classes
    IterableOps
  140. final def union(that: Set[Expression]): ExpressionSet
    Definition Classes
    SetOps
    Annotations
    @inline()
  141. def unzip[A1, A2](implicit asPair: (Expression) => (A1, A2)): (Set[A1], Set[A2])
    Definition Classes
    IterableOps
  142. def unzip3[A1, A2, A3](implicit asTriple: (Expression) => (A1, A2, A3)): (Set[A1], Set[A2], Set[A3])
    Definition Classes
    IterableOps
  143. def view: View[Expression]
    Definition Classes
    IterableOps
  144. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  145. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  146. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  147. def withFilter(p: (Expression) => Boolean): WithFilter[Expression, [_]Set[_]]
    Definition Classes
    IterableOps
  148. def zip[B](that: IterableOnce[B]): Set[(Expression, B)]
    Definition Classes
    IterableOps
  149. def zipAll[A1 >: Expression, B](that: Iterable[B], thisElem: A1, thatElem: B): Set[(A1, B)]
    Definition Classes
    IterableOps
  150. def zipWithIndex: Set[(Expression, Int)]
    Definition Classes
    IterableOps → IterableOnceOps
  151. final def |(that: Set[Expression]): ExpressionSet
    Definition Classes
    SetOps
    Annotations
    @inline()

Deprecated Value Members

  1. def +(elem1: Expression, elem2: Expression, elems: Expression*): ExpressionSet
    Definition Classes
    SetOps
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use ++ with an explicit collection argument instead of + with varargs

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

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

  3. def -(elem1: Expression, elem2: Expression, elems: Expression*): ExpressionSet
    Definition Classes
    SetOps
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use &- with an explicit collection argument instead of - with varargs

  4. 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 /:

  5. 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 :\

  6. 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.

  7. def companion: IterableFactory[[_]Set[_]]
    Definition Classes
    IterableOps
    Annotations
    @deprecated @deprecatedOverriding() @inline()
    Deprecated

    (Since version 2.13.0) Use iterableFactory instead

  8. 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

  9. 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)

  10. final def repr: ExpressionSet
    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

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

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

  12. final def toIterable: ExpressionSet.this.type
    Definition Classes
    Iterable → IterableOps
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.7) toIterable is internal and will be made protected; its name is similar to toList or toSeq, but it doesn't copy non-immutable collections

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

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

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

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

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

    (Since version 2.13.0) toTraversable is internal and will be made protected; its name is similar to toList or toSeq, but it doesn't copy non-immutable collections

  16. 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 Set[Expression]

Inherited from Equals

Inherited from SetOps[Expression, Set, ExpressionSet]

Inherited from (Expression) => Boolean

Inherited from Iterable[Expression]

Inherited from IterableFactoryDefaults[Expression, [x]Set[x]]

Inherited from IterableOps[Expression, [_]Set[_], ExpressionSet]

Inherited from IterableOnceOps[Expression, [_]Set[_], ExpressionSet]

Inherited from IterableOnce[Expression]

Inherited from AnyRef

Inherited from Any

Ungrouped