State

case class State(var visited: Set[Effect], path: Vector[Tree], thisClass: ClassSymbol, fieldsInited: Set[Symbol], parentsInited: Set[ClassSymbol], safePromoted: Set[Potential], env: Env)

The checking state

Why visited is a set of effects instead of Symbol? Think the following program:

class C(x: Int, a: A @cold) {
  val n = if (x > 0) new C(x - 1, a).m() else 0
  val b: Int = this.m()
  def m(): Int = b
}
trait Product
trait Equals
class Object
trait Matchable
class Any

Value members

Concrete methods

def test(op: State => Errors): Errors
def visit[T](eff: Effect)(op: State => T): T
def withOwner[T](sym: Symbol)(op: State => T): T

Inherited methods

Inherited from
Product