ImplicitRunInfo

Info relating to implicits that is kept for one run

Info relating to implicits that is kept for one run

class Object
trait Matchable
class Any
class Run
class TASTYRun

Value members

Concrete methods

The implicit scope of a type tp, which is specified by the following definitions.

The implicit scope of a type tp, which is specified by the following definitions.

A reference is an anchor if it refers to an object, a class, a trait, an abstract type, an opaque type alias, or a match type alias. References to packages and package objects are anchors only under -source:3.0-migration.

The anchors of a type T is a set of references defined as follows:

  • If T is a reference to an anchor, T itself plus, if T is of the form P#A, the anchors of P.
  • If T is an alias of U, the anchors of U.
  • If T is a reference to a type parameter, the union of the anchors of both of its bounds.
  • If T is a singleton reference, the anchors of its underlying type, plus, if T is of the form (P#x).type, the anchors of P.
  • If T is the this-type of a static object, the anchors of a term reference to that object.
  • If T is some other type, the union of the anchors of each constituent type of T.

The implicit scope of a type tp is the smallest set S of term references (i.e. TermRefs) such that

  • If T is a reference to a class, S includes a reference to the companion object of the class, if it exists, as well as the implicit scopes of all of T's parent classes.
  • If T is a reference to an object, S includes T itself as well as the implicit scopes of all of T's parent classes.
  • If T is a reference to an opaque type alias named A, S includes a reference to an object A defined in the same scope as the type, if it exists, as well as the implicit scope of T's underlying type or bounds.
  • If T is a reference to an an abstract type or match type alias named A, S includes a reference to an object A defined in the same scope as the type, if it exists, as well as the implicit scopes of T's lower and upper bound, if present.
  • If T is a reference to an anchor of the form p.A then S also includes all term references on the path p.
  • If T is some other type, S includes the implicit scopes of all anchors of T.
protected def reset(): Unit