Warm

case class Warm(klass: ClassSymbol, outer: Value, ctor: Symbol, args: List[Value]) extends Ref

An object with all fields initialized but reaches objects under initialization

We need to restrict nesting levels of outer to finitize the domain.

trait Product
trait Equals
class Ref
class Value
class Object
trait Matchable
class Any

Value members

Concrete methods

def tryPromote(msg: String): () ?=> List[Error]
Extension method from Semantic

Try early promotion of warm objects

Try early promotion of warm objects

Promotion is expensive and should only be performed for small classes.

  1. for each concrete method m of the warm object: call the method and promote the result

  2. for each concrete field f of the warm object: promote the field value

If the object contains nested classes as members, the checker simply reports a warning to avoid expensive checks.

Inherited methods

Inherited from:
Value
Inherited from:
Value
Inherited from:
Value
Inherited from:
Value
Inherited from:
Product
def show(using Context): String
Inherited from:
Value