Lifter

class Lifter(thisPhase: MiniPhase & DenotTransformer)(using `x$2`: Context)

The core lambda lift functionality.

class Object
trait Matchable
class Any

Value members

Concrete methods

def addFreeArgs(sym: Symbol, args: List[Tree])(using Context): List[Tree]
def addFreeParams(tree: Tree, proxies: List[Symbol])(using Context): Tree
def freeVars(sym: Symbol): List[Symbol]
def isLocal(sym: Symbol)(using Context): Boolean

A symbol is local if it is owned by a term or a local trait, or if it is a constructor of a local symbol.

A symbol is local if it is owned by a term or a local trait, or if it is a constructor of a local symbol.

def liftDef(tree: MemberDef)(using Context): Tree
def memberRef(sym: Symbol)(using Context): Tree
def narrowLiftedOwner(sym: Symbol, owner: Symbol)(using Context): Unit

Set liftedOwner(sym) to owner if owner is more deeply nested than the previous value of liftedowner(sym).

Set liftedOwner(sym) to owner if owner is more deeply nested than the previous value of liftedowner(sym).

def proxies(sym: Symbol): List[Symbol]
def proxyOf(sym: Symbol, fv: Symbol): Symbol
def proxyRef(sym: Symbol)(using Context): Tree

Concrete fields

A map storing free variables of functions and classes

A map storing free variables of functions and classes

Buffers for lifted out classes and methods, indexed by owner

Buffers for lifted out classes and methods, indexed by owner