Ref

sealed abstract class Ref extends Value
class Value
class Object
trait Matchable
class Any
class ThisRef
class Warm

Value members

Abstract methods

Concrete methods

def accessLocal(tmref: TermRef, klass: ClassSymbol): () ?=> Value
Extension method from Semantic
Extension method from Semantic

Can the method call on value be ignored?

Can the method call on value be ignored?

Note: assume overriding resolution has been performed.

def ensureFresh()(using Cache): ref.type
Extension method from Semantic
def ensureObjectExists()(using Cache): ref.type
Extension method from Semantic
Extension method from Semantic

Whether the object is fully assigned

Whether the object is fully assigned

It means all fields and outers are set. For performance, we don't check outers here, because Scala semantics ensure that they are always set before any user code in the constructor.

Note that isFullyFilled = true does not mean we can use the object freely, as its fields or outers may still reach uninitialized objects.

def objekt: () ?=> Objekt
Extension method from Semantic
def updateField(field: Symbol, value: Value): () ?=> Unit
Extension method from Semantic

Update field value of the abstract object

Update field value of the abstract object

Invariant: fields are immutable and only set once

def updateOuter(klass: ClassSymbol, value: Value): () ?=> Unit
Extension method from Semantic

Update the immediate outer of the given klass of the abstract object

Update the immediate outer of the given klass of the abstract object

Invariant: outers are immutable and only set once

Inherited methods

Inherited from:
Value
Inherited from:
Value
Inherited from:
Value
Inherited from:
Value
Inherited from:
Value