Closed

dotty.tools.dotc.cc.CaptureSet.VarState.Closed
class Closed extends VarState

A class for states that do not allow to record elements or dependent sets. In effect this means that no new elements or dependent sets can be added in these states (since the previous state cannot be recorded in a snapshot) On the other hand, these states do allow by default Fresh instances to subsume arbitary types, which are then recorded in their hidden sets.

Attributes

Graph
Supertypes
class VarState
class Object
trait Matchable
class Any
Known subtypes

Members list

Value members

Concrete methods

override def isOpen: Boolean

Does this state allow additions of elements to capture set variables?

Does this state allow additions of elements to capture set variables?

Attributes

Definition Classes
override def putDeps(v: Var, deps: Deps): Boolean

Record dependent sets, return whether this was allowed. By default, recording is allowed in regular but not in frozen states.

Record dependent sets, return whether this was allowed. By default, recording is allowed in regular but not in frozen states.

Attributes

Definition Classes
override def putElems(v: Var, refs: Refs): Boolean

Record elements, return whether this was allowed. By default, recording is allowed in regular but not in frozen states.

Record elements, return whether this was allowed. By default, recording is allowed in regular but not in frozen states.

Attributes

Definition Classes
override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns

a string representation of the object.

Definition Classes
VarState -> Any

Inherited methods

def addHidden(hidden: HiddenSet, elem: CaptureRef)(using Context): Boolean

Add element to hidden set, recording it in elemsMap, return whether this was allowed. By default, recording is allowed but the special state VarState.Separate overrides this.

Add element to hidden set, recording it in elemsMap, return whether this was allowed. By default, recording is allowed but the special state VarState.Separate overrides this.

Attributes

Inherited from:
VarState
def deps(v: Var): Deps

The recorded dependent sets of v (it's required that a recording was made)

The recorded dependent sets of v (it's required that a recording was made)

Attributes

Inherited from:
VarState
def elems(v: Var): Refs

The recorded elements of v (it's required that a recording was made)

The recorded elements of v (it's required that a recording was made)

Attributes

Inherited from:
VarState
def getDeps(v: Var): Option[Deps]

Optionally the recorded dependent sets of v, None if nothing was recorded for v

Optionally the recorded dependent sets of v, None if nothing was recorded for v

Attributes

Inherited from:
VarState
def getElems(v: Var): Option[Refs]

Optionally the recorded elements of v, None if nothing was recorded for v

Optionally the recorded elements of v, None if nothing was recorded for v

Attributes

Inherited from:
VarState
def ifNotSeen(ref: CaptureRef)(pred: => Boolean): Boolean

Run test pred unless ref was seen in an enclosing ifNotSeen operation

Run test pred unless ref was seen in an enclosing ifNotSeen operation

Attributes

Inherited from:
VarState

Attributes

Inherited from:
VarState
def rollBack(): Unit

Roll back global state to what was recorded in this VarState

Roll back global state to what was recorded in this VarState

Attributes

Inherited from:
VarState
def unify(root1: Result, root2: Result)(using Context): Boolean

If root1 and root2 belong to the same binder but have different originalBinders it means that one of the roots was mapped to the binder of the other by a substBinder when comparing two method types. In that case we can unify the two roots1, provided none of the two roots have already been unified themselves. So unification must be 1-1.

If root1 and root2 belong to the same binder but have different originalBinders it means that one of the roots was mapped to the binder of the other by a substBinder when comparing two method types. In that case we can unify the two roots1, provided none of the two roots have already been unified themselves. So unification must be 1-1.

Attributes

Inherited from:
VarState