class
ReconstructProducts extends Phase
Instance Constructors
-
new
ReconstructProducts()
Type Members
-
abstract
type
State
Value Members
-
final
def
!=(arg0: AnyRef): Boolean
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: AnyRef): Boolean
-
final
def
==(arg0: Any): Boolean
-
-
final
def
asInstanceOf[T0]: T0
-
def
clone(): AnyRef
-
def
commonPrefix(n: Node, base: ast.Symbol): Option[List[Int]]
-
-
final
def
eq(arg0: AnyRef): Boolean
-
def
equals(arg0: Any): Boolean
-
def
finalize(): Unit
-
final
def
getClass(): Class[_]
-
def
hashCode(): Int
-
final
def
isInstanceOf[T0]: Boolean
-
-
val
name: String
-
final
def
ne(arg0: AnyRef): Boolean
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
toString(): String
-
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
Since Nodes cannot be encoded into Scala Tuples, they have to be encoded into the Tuples' children instead, so we end up with trees like ProductNode(Select(r, ElementSymbol(1)), Select(r, ElementSymbol(2))) where r is a Ref to an expression that yields a Query of ProductNode(_, _). This optimizer rewrites those forms to the raw Ref r.