ForeachAccumulator

dotty.tools.dotc.core.Types.ForeachAccumulator
class ForeachAccumulator(p: Type => Unit, val stopAt: StopAt)(using x$3: Context) extends TypeAccumulator[Unit]

Attributes

Graph
Supertypes
trait (Unit, Type) => Unit
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

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

Inherited methods

protected def applyToAnnot(x: Unit, annot: Annotation): Unit

Attributes

Inherited from:
TypeAccumulator
protected def applyToPrefix(x: Unit, tp: NamedType): Unit

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

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

Attributes

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

Attributes

Inherited from:
Function2
final def foldOver(x: Unit, ts: List[Type]): Unit

Attributes

Inherited from:
TypeAccumulator
def foldOver(x: Unit, tp: Type): Unit

Attributes

Inherited from:
TypeAccumulator
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 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: ((Unit, Type)) => Unit

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

Concrete fields

override val stopAt: StopAt

Implicits

Inherited implicits

implicit protected val accCtx: Context

Attributes

Inherited from:
TypeAccumulator