LiftToDefs

object LiftToDefs extends LiftComplex

Lift all impure or complex arguments to defs

class Lifter
class Object
trait Matchable
class Any

Value members

Concrete methods

override def liftedDef(sym: TermSymbol, rhs: Tree)(using Context): DefDef
Definition Classes
override def liftedFlags: FlagSet
Definition Classes

Inherited methods

override def exprLifter: Lifter
Definition Classes
Inherited from
LiftComplex
protected def isErased: Boolean

Is lifting performed on erased terms?

Is lifting performed on erased terms?

Inherited from
Lifter
def liftApp(defs: ListBuffer[Tree], tree: Tree)(using Context): Tree

Lift out function prefix and all arguments from application

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 pure expressions alone.

Inherited from
Lifter
def liftArgs(defs: ListBuffer[Tree], methRef: Type, args: List[Tree])(using Context): List[Tree]

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.

Inherited from
Lifter
def liftAssigned(defs: ListBuffer[Tree], tree: Tree)(using Context): Tree

Lift out common part of lhs tree taking part in an operator assignment such as

Lift out common part of lhs tree taking part in an operator assignment such as

lhs += expr

Inherited from
Lifter
def liftPrefix(defs: ListBuffer[Tree], tree: Tree)(using Context): Tree

Lift prefix pre of an application pre.f(...) to

Lift prefix pre of an application pre.f(...) to

val x0 = pre x0.f(...)

unless pre is idempotent.

Inherited from
Lifter
def noLift(expr: Tree)(using Context): Boolean
Inherited from
LiftComplex