SubstApproxMap

dotty.tools.dotc.core.Substituters.SubstApproxMap
final class SubstApproxMap(from: List[Symbol], to: List[Type])(using x$3: Context) extends ApproximatingTypeMap

An approximating substitution that can handle wildcards in the to list

Attributes

Graph
Supertypes
class TypeMap
trait Type => Type
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

def apply(tp: Type): Type

Inherited methods

def andThen(f: Type => Type): TypeMap

Attributes

Inherited from:
TypeMap
def andThen[A](g: Type => A): Type => A

Attributes

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

Attributes

Inherited from:
VariantTraversal
def compose[A](g: A => Type): A => Type

Attributes

Inherited from:
Function1
override protected def derivedAlias(tp: AliasingBounds, alias: Type): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
override protected def derivedAndType(tp: AndType, tp1: Type, tp2: Type): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
override protected def derivedAnnotatedType(tp: AnnotatedType, underlying: Type, annot: Annotation): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
override protected def derivedAppliedType(tp: AppliedType, tycon: Type, args: List[Type]): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
override protected def derivedCapturingType(tp: Type, parent: Type, refs: CaptureSet): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
override protected def derivedClassInfo(tp: ClassInfo, pre: Type): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
protected def derivedExprType(tp: ExprType, restpe: Type): Type

Attributes

Inherited from:
TypeMap
protected def derivedJavaArrayType(tp: JavaArrayType, elemtp: Type): Type

Attributes

Inherited from:
TypeMap
override protected def derivedLambdaType(tp: LambdaType)(formals: List[tp.PInfo], restpe: Type): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
override protected def derivedMatchType(tp: MatchType, bound: Type, scrutinee: Type, cases: List[Type]): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
override protected def derivedOrType(tp: OrType, tp1: Type, tp2: Type): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
override protected def derivedRecType(tp: RecType, parent: Type): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
override protected def derivedRefinedType(tp: RefinedType, parent: Type, info: Type): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
override protected def derivedSelect(tp: NamedType, pre: Type): Type

Derived selection.

Derived selection.

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
override protected def derivedSkolemType(tp: SkolemType, info: Type): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
override protected def derivedSuperType(tp: SuperType, thistp: Type, supertp: Type): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
override protected def derivedTypeBounds(tp: TypeBounds, lo: Type, hi: Type): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
override protected def derivedWildcardType(tp: WildcardType, bounds: Type): WildcardType

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
protected def emptyRange: Type

Attributes

Inherited from:
ApproximatingTypeMap
protected def expandBounds(tp: TypeBounds): Type

Attributes

Inherited from:
ApproximatingTypeMap
def expandParam(tp: NamedType, pre: Type): Type

Expand parameter reference corresponding to prefix pre; If the expansion is a wildcard parameter reference, convert its underlying bounds to a range, otherwise return the expansion.

Expand parameter reference corresponding to prefix pre; If the expansion is a wildcard parameter reference, convert its underlying bounds to a range, otherwise return the expansion.

Attributes

Inherited from:
ApproximatingTypeMap

Whether it is currently expanding bounds

Whether it is currently expanding bounds

It is used to avoid following LazyRef in F-Bounds

Attributes

Inherited from:
ApproximatingTypeMap
def isRange(tp: Type): Boolean

Attributes

Inherited from:
TypeMap
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 lower(tp: Type): Type

Attributes

Inherited from:
ApproximatingTypeMap
protected def mapArgs(args: List[Type], tparams: List[ParamInfo]): List[Type]

Attributes

Inherited from:
TypeMap
override def mapCapturingType(tp: Type, parent: Type, refs: CaptureSet, v: Int): Type

Attributes

Definition Classes
Inherited from:
ApproximatingTypeMap
protected def mapClassInfo(tp: ClassInfo): Type

Can be overridden. By default, only the prefix is mapped.

Can be overridden. By default, only the prefix is mapped.

Attributes

Inherited from:
TypeMap
def mapOver(tree: Tree): Tree

Attributes

Inherited from:
TypeMap
def mapOver(scope: Scope): Scope

Attributes

Inherited from:
TypeMap
def mapOver(syms: List[Symbol]): List[Symbol]

Attributes

Inherited from:
TypeMap
def mapOver(tp: Type): Type

Map this function over given type

Map this function over given type

Attributes

Inherited from:
TypeMap
protected def mapOverLambda(tp: LambdaType): Type

Attributes

Inherited from:
TypeMap
protected def needsRangeIfInvariant(refs: CaptureSet): Boolean

Overridden in TypeOps.avoid and in CheckCaptures.substParamsMap

Overridden in TypeOps.avoid and in CheckCaptures.substParamsMap

Attributes

Inherited from:
ApproximatingTypeMap
protected def range(lo: Type, hi: Type): Type

Attributes

Inherited from:
ApproximatingTypeMap
protected def rangeToBounds(tp: Type): Type

Attributes

Inherited from:
ApproximatingTypeMap
protected def reapply(tp: Type): Type

Attributes

Inherited from:
ApproximatingTypeMap
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
Function1 -> Any
Inherited from:
Function1
def tryWiden(tp: NamedType, pre: Type): Type

Try to widen a named type to its info relative to given prefix pre, where possible. The possible cases are listed inline in the code.

Try to widen a named type to its info relative to given prefix pre, where possible. The possible cases are listed inline in the code.

Attributes

Inherited from:
ApproximatingTypeMap
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
protected def upper(tp: Type): Type

Attributes

Inherited from:
ApproximatingTypeMap
protected def useAlternate(tp: Type): Type

Use an alterate type tp that replaces a range. This can happen if the prefix of a Select is a range and the selected symbol is an alias type or a value with a singleton type. In both cases we can forget the prefix and use the symbol's type.

Use an alterate type tp that replaces a range. This can happen if the prefix of a Select is a range and the selected symbol is an alias type or a value with a singleton type. In both cases we can forget the prefix and use the symbol's type.

Attributes

Inherited from:
ApproximatingTypeMap

Implicits

Inherited implicits

implicit protected val mapCtx: Context

Attributes

Inherited from:
TypeMap