Constructors
Members
Eta-expanding a tree means converting a method reference to a function value.
Eta-expanding a tree means converting a method reference to a function value.
Lift out function prefix and all arguments from application
pre.f(arg1, ..., argN) becomes
val x0 = pre val x1 = arg1 ... val xN = argN x0.f(x1, ..., xN)
B...
Lift out function prefix and all arguments from application
pre.f(arg1, ..., argN) becomes
val x0 = pre val x1 = arg1 ... val xN = argN x0.f(x1, ..., xN)
But leave idempotent expressions alone.
Lift a function argument, stripping any NamedArg wrapper
Lift a function argument, stripping any NamedArg wrapper
Lift a function argument, stripping any NamedArg wrapper
Lift a function argument, stripping any NamedArg wrapper
Lift arguments that are not-idempotent into ValDefs in buffer defs
and replace by the idents of so created ValDefs.
Lift arguments that are not-idempotent into ValDefs in buffer defs
and replace by the idents of so created ValDefs.
Lift out common part of lhs tree taking part in an operator assignment such as
lhs += expr
Lift out common part of lhs tree taking part in an operator assignment such as
lhs += expr
Lift prefix pre
of an application pre.f(...)
to
val x0 = pre x0.f(...)
unless pre
is a New
or pre
is idempotent.
Lift prefix pre
of an application pre.f(...)
to
val x0 = pre x0.f(...)
unless pre
is a New
or pre
is idempotent.