Ref

dotty.tools.dotc.transform.init.Semantic$.Ref
sealed abstract class Ref extends Value

Attributes

Graph
Supertypes
class Value
class Object
trait Matchable
class Any
Known subtypes
class ThisRef
class Warm

Members list

Concise view

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.

Attributes

def ensureFresh()(using Cache): Ref
Extension method from Semantic
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.

Attributes

def nonInitFields(): () ?=> List[Symbol]
Extension method from Semantic
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

Attributes

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

Attributes

Inherited methods

Attributes

Inherited from:
Value

Attributes

Inherited from:
Value

Attributes

Inherited from:
Value

Attributes

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

Attributes

Inherited from:
Value