TypeAccumulator

dotty.tools.dotc.core.Types.TypeAccumulator
abstract class TypeAccumulator[T](implicit val accCtx: Context) extends VariantTraversal, (T, Type) => T

Attributes

Graph
Supertypes
trait (T, Type) => T
class Object
trait Matchable
class Any
Known subtypes

Members list

Value members

Abstract methods

def apply(x: T, tp: Type): T

Concrete methods

protected def applyToAnnot(x: T, annot: Annotation): T
protected def applyToPrefix(x: T, tp: NamedType): T

A prefix is never contravariant. Even if say p.A is used in a contravariant context, we cannot assume contravariance for p because p's lower bound might not have a binding for A, since the lower bound could be Nothing. By contrast, covariance does translate to the prefix, since we have that if p <: q then p.A <: q.A, and well-formedness requires that A is a member of p's upper bound. Overridden in OrderingConstraint's ConstraintAwareTraversal, where a more relaxed scheme is used.

A prefix is never contravariant. Even if say p.A is used in a contravariant context, we cannot assume contravariance for p because p's lower bound might not have a binding for A, since the lower bound could be Nothing. By contrast, covariance does translate to the prefix, since we have that if p <: q then p.A <: q.A, and well-formedness requires that A is a member of p's upper bound. Overridden in OrderingConstraint's ConstraintAwareTraversal, where a more relaxed scheme is used.

Attributes

def foldOver(x: T, tp: Type): T
final def foldOver(x: T, ts: List[Type]): T

Inherited methods

inline protected def atVariance[T](v: Int)(op: => T): T

Attributes

Inherited from:
VariantTraversal
def curried: T => Type => T

Attributes

Inherited from:
Function2
protected def isStaticPrefix(pre: Type)(using Context): Boolean

Can the prefix of this static reference be omitted if the reference itself can be omitted? Overridden in TypeOps#avoid.

Can the prefix of this static reference be omitted if the reference itself can be omitted? Overridden in TypeOps#avoid.

Attributes

Inherited from:
VariantTraversal
protected def stopAt: StopAt

Attributes

Inherited from:
VariantTraversal
protected def stopBecauseStaticOrLocal(tp: NamedType)(using Context): Boolean

Attributes

Inherited from:
VariantTraversal
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
Function2 -> Any
Inherited from:
Function2
def tupled: ((T, Type)) => T

Attributes

Inherited from:
Function2
protected def tyconTypeParams(tp: AppliedType)(using Context): List[ParamInfo]

The type parameters of the constructor of this applied type. Overridden in OrderingConstraint's ConstraintAwareTraversal to take account of instantiations in the constraint that are not yet propagated to the instance types of type variables.

The type parameters of the constructor of this applied type. Overridden in OrderingConstraint's ConstraintAwareTraversal to take account of instantiations in the constraint that are not yet propagated to the instance types of type variables.

Attributes

Inherited from:
VariantTraversal

Implicits

Implicits

implicit protected val accCtx: Context