EnvMap

dotty.tools.dotc.transform.init.Objects.EnvMap
object EnvMap

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Objects.this.Objects.this.EnvMap.type

Members list

Type members

Classlikes

class EnvMapMutableData(var envMap: Data)

Store the heap as a mutable field to avoid threading it through the program.

Store the heap as a mutable field to avoid threading it through the program.

Attributes

Supertypes
class Object
trait Matchable
class Any

Types

opaque type Data

Immutable env map data used in the cache.

Immutable env map data used in the cache.

We need to use structural equivalence so that in different iterations the cache can be effective.

Attributes

Value members

Concrete methods

def contains(env: EnvRef)(using mutable: EnvMapMutableData): Boolean
def containsVal(env: EnvRef, value: Symbol)(using mutable: EnvMapMutableData): Boolean
def getEnvMapData()(using mutable: EnvMapMutableData): Data
def getOuterEnvs(env: EnvRef)(using mutable: EnvMapMutableData): EnvSet
def getThisV(env: EnvRef)(using mutable: EnvMapMutableData): Objects.this.ThisValue
def readVal(env: EnvRef, value: Symbol)(using mutable: EnvMapMutableData): Objects.this.Value
def setEnvMap(newEnvMap: Data)(using mutable: EnvMapMutableData): Unit
def writeJoinOuterEnv(env: EnvRef, outerEnvs: EnvSet)(using mutable: EnvMapMutableData): Unit
def writeJoinThisV(env: EnvRef, thisV: Objects.this.ThisValue)(using mutable: EnvMapMutableData): Unit
def writeJoinVal(env: EnvRef, valSymbol: Symbol, value: Objects.this.Value)(using mutable: EnvMapMutableData): Unit