DeepTypeAccumulator
A class encapsulating the assumulator logic needed for CaptureSet.ofTypeDeeply and derivesFromCapTraitDeeply. NOTE: The traversal logic needs to be in sync with narrowCaps in CaptureOps, which replaces caps with reach capabilties. There are two exceptions, however.
- First, invariant arguments. These have to be included to be conservative in dcs but must be excluded in narrowCaps.
- Second, unconstrained type variables are handled specially in
ofTypeDeeply.
Attributes
- Graph
-
- Supertypes
Members list
Value members
Abstract methods
Inherited methods
Attributes
- Inherited from:
- TypeAccumulator
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
Attributes
- Inherited from:
- VariantTraversal
Attributes
- Inherited from:
- TypeAccumulator
Attributes
- Inherited from:
- TypeAccumulator
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
Attributes
- Inherited from:
- VariantTraversal
Attributes
- Inherited from:
- VariantTraversal
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
Inherited implicits
Attributes
- Inherited from:
- TypeAccumulator