Warm

dotty.tools.dotc.transform.init.Semantic.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.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Ref
class Value
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

def ensureObjectExistsAndPopulated(): () ?=> Warm.this.type
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.

Attributes

Inherited methods

Attributes

Inherited from:
Value
def isHot: Boolean

Attributes

Inherited from:
Value

Attributes

Inherited from:
Value

Attributes

Inherited from:
Value

Attributes

Inherited from:
Product

Attributes

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

Attributes

Inherited from:
Value