abstract class LazyType
extends UncachedGroundType with Function1 with Function2

Instances of LazyType are carried by uncompleted symbols. Note: LazyTypes double up as (constant) functions from Symbol and from (TermSymbol, ClassSymbol) to LazyType. That way lazy types can be directly passed to symbol creation methods in Symbols that demand instances of these function types.

Constructors

LazyType ( )

Members

private var myDecls : Scope
private var myModuleClassFn : Context => Symbol
private var mySourceModuleFn : Context => Symbol
def apply ( sym: Symbol ) : R
def apply ( module: TermSymbol , modcls: ClassSymbol ) : R
def complete ( denot: SymDenotation ) ( implicit ctx: Context ) : Unit

Sets all missing fields of given denotation

Sets all missing fields of given denotation

def decls : Scope
def moduleClass ( implicit ctx: Context ) : Symbol
private def myDecls_= ( x$1: Scope ) : Unit
private def myModuleClassFn_= ( x$1: Context => Symbol ) : Unit
private def mySourceModuleFn_= ( x$1: Context => Symbol ) : Unit
def proxy : LazyType

A proxy to this lazy type that keeps the complete operation but provides fresh slots for scope/sourceModule/moduleClass

A proxy to this lazy type that keeps the complete operation but provides fresh slots for scope/sourceModule/moduleClass

def sourceModule ( implicit ctx: Context ) : Symbol
def withDecls ( decls: Scope ) : LazyType & LazyType
def withModuleClass ( moduleClassFn: Context => Symbol ) : LazyType & LazyType
def withSourceModule ( sourceModuleFn: Context => Symbol ) : LazyType & LazyType