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 Product
trait Equals
class Ref
class Value
class Object
trait Matchable
class Any

Members list

Concise view

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.

Attributes

Inherited methods

Attributes

Inherited from:
Value

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