dotty.tools.dotc.core.Types

Type

Related Doc: package Types

abstract class Type extends DotClass with Hashable with Showable

The class of types. The principal subclasses and sub-objects are as follows:

Type -+- ProxyType --+- NamedType ----+--- TypeRef | | \ | +- SingletonType-+-+- TermRef | | | | | +--- ThisType | | +--- SuperType | | +--- ConstantType | | +--- MethodParam | | +----RecThis | | +--- SkolemType | +- PolyParam | +- RefinedOrRecType -+-- RefinedType | | -+-- RecType | +- HKApply | +- TypeBounds | +- ExprType | +- AnnotatedType | +- TypeVar | +- PolyType | +- GroundType -+- AndType +- OrType +- MethodType -----+- ImplicitMethodType | +- JavaMethodType +- ClassInfo | +- NoType +- NoPrefix +- ErrorType +- WildcardType

Note: please keep in sync with copy in docs/docs/internals/type-system.md.

Linear Supertypes
Known Subclasses
AndOrType, AndType, AnnotatedType, AnyFunctionProto, AnySelectionProto, AnyTypeConstructorProto, ApplyingProto, AssignProto, BindingType, BoundType, CachedAndType, CachedClassInfo, CachedConstantType, CachedErasedValueType, CachedExprType, CachedGroundType, CachedHKApply, CachedJavaArrayType, CachedMethodType, CachedOrType, CachedProxyType, CachedRefinedType, CachedSelectionProto, CachedSkolemType, CachedSuperType, CachedTermRef, CachedThisType, CachedType, CachedTypeAlias, CachedTypeRef, CachedViewProto, CachedWildcardType, ClassCompleter, ClassInfo, ClassUnpickler, ClassfileLoader, Completer, Completer, ConstantType, ErasedValueType, ErrorType, ErrorType, ExprType, FunProto, FunProtoTyped, HKApply, IgnoredProto, ImplicitMethodType, ImportType, JavaArrayType, JavaMethodType, LazyRef, LazyType, LocalUnpickler, MatchAlways, MethodOrPoly, MethodParam, MethodParamImpl, MethodType, MethodicType, ModuleCompleter, NamedType, NarrowCached, NoCompleter, NoCompleter, NoPrefix, NoType, OrType, PackageLoader, ParamType, PolyParam, PolyProto, PolyType, ProtoType, RealTypeBounds, RecThis, RecType, RefinedOrRecType, RefinedType, SelectionProto, SingletonType, SkolemType, SourcefileLoader, StubInfo, SuperType, SymbolLoader, TempClassInfo, TempClassInfoType, TempPolyType, TermRef, TermRefWithFixedSym, TermRefWithSignature, TermType, ThisType, TryDynamicCallType, TypeAlias, TypeBounds, TypeDefCompleter, TypeParamsCompleter, TypeProxy, TypeRef, TypeRefWithFixedSym, TypeType, TypeVar, UnapplyFunProto, UnapplySelectionProto, UncachedGroundType, UncachedProxyType, ValueType, ValueTypeOrProto, ViewProto, WildcardType, WildcardType, WithFixedSym, localMemberUnpickler
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Type
  2. Showable
  3. Hashable
  4. DotClass
  5. AnyRef
  6. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Type()

Abstract Value Members

  1. abstract def hash: Int

    customized hash code of this type.

    customized hash code of this type. NotCached for uncached types. Cached types compute hash and use it as the type's hashCode.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. def &(that: Type)(implicit ctx: Context): Type

  4. final def <:<(that: Type)(implicit ctx: Context): Boolean

    Is this type a subtype of that type?

  5. final def =:=(that: Type)(implicit ctx: Context): Boolean

    Is this type the same as that type? This is the case iff this <:< that and that <:< this.

  6. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  7. final def abstractTermMembers(implicit ctx: Context): Seq[SingleDenotation]

    The set of abstract term members of this type.

  8. final def abstractTypeMembers(implicit ctx: Context): Seq[SingleDenotation]

    The set of abstract type members of this type.

  9. final def addDelta(elemHash: Int, delta: Int): Int

    Attributes
    protected
    Definition Classes
    Hashable
  10. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  11. final def asSeenFrom(pre: Type, cls: Symbol)(implicit ctx: Context): Type

    This type seen as if it were the type of a member of prefix type pre declared in class cls.

  12. final def baseClasses(implicit ctx: Context): List[ClassSymbol]

    The base classes of this type as determined by ClassDenotation in linearization order, with the class itself as first element.

    The base classes of this type as determined by ClassDenotation in linearization order, with the class itself as first element. For AndTypes/OrTypes, the union/intersection of the operands' baseclasses. Inherited by all type proxies. Nil for all other types.

  13. final def baseTypeRef(base: Symbol)(implicit ctx: Context): Type

    The basetype TypeRef of this type with given class symbol, but without including any type arguments

  14. final def bounds(implicit ctx: Context): TypeBounds

    This type seen as a TypeBounds

  15. final def classSymbol(implicit ctx: Context): Symbol

    The least class or trait of which this type is a subtype or parameterized instance, or NoSymbol if none exists (either because this type is not a value type, or because superclasses are ambiguous).

  16. final def classSymbols(implicit ctx: Context): List[ClassSymbol]

    The least (wrt <:<) set of class symbols of which this type is a subtype

  17. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def deAnonymize(implicit ctx: Context): Type

    Eliminate anonymous classes

  19. final def dealias(implicit ctx: Context): Type

    Follow aliases and dereferences LazyRefs, annotated types and instantiated TypeVars until type is no longer alias type, annotated type, LazyRef, or instantiated type variable.

  20. final def dealiasKeepAnnots(implicit ctx: Context): Type

    Follow aliases and dereferences LazyRefs and instantiated TypeVars until type is no longer alias type, LazyRef, or instantiated type variable.

    Follow aliases and dereferences LazyRefs and instantiated TypeVars until type is no longer alias type, LazyRef, or instantiated type variable. Goes through annotated types and rewraps annotations on the result.

  21. final def decl(name: Name)(implicit ctx: Context): Denotation

    A denotation containing the declaration(s) in this type with the given name.

    A denotation containing the declaration(s) in this type with the given name. The result is either a SymDenotation or a MultiDenotation of SymDenotations. The info(s) are the original symbol infos, no translation takes place.

  22. final def decls(implicit ctx: Context): Scope

    The scope of all declarations of this type.

    The scope of all declarations of this type. Defined by ClassInfo, inherited by type proxies. Empty scope for all other types.

  23. final def deconst(implicit ctx: Context): Type

    Widen from constant type to its underlying non-constant base type.

  24. def deepenProto(implicit ctx: Context): Type

    If this is a prototype with some ignored component, reveal one more layer of it.

    If this is a prototype with some ignored component, reveal one more layer of it. Otherwise the type itself.

  25. final def derivesFrom(cls: Symbol)(implicit ctx: Context): Boolean

    Is this type an instance of a non-bottom subclass of the given class cls?

  26. final def doHash(x1: Int, x2: Int): Int

    Attributes
    protected
    Definition Classes
    Hashable
  27. final def doHash(x1: Any, tp2: Type, tps3: List[Type]): Int

    Attributes
    protected
    Definition Classes
    Hashable
  28. final def doHash(tp1: Type, tps2: List[Type]): Int

    Attributes
    protected
    Definition Classes
    Hashable
  29. final def doHash(x1: Any, tp2: Type, tp3: Type): Int

    Attributes
    protected
    Definition Classes
    Hashable
  30. final def doHash(tp1: Type, tp2: Type): Int

    Attributes
    protected
    Definition Classes
    Hashable
  31. final def doHash(x1: Any, tp2: Type): Int

    Attributes
    protected
    Definition Classes
    Hashable
  32. final def doHash(tp: Type): Int

    Attributes
    protected
    Definition Classes
    Hashable
  33. final def doHash(x: Any): Int

    Attributes
    protected
    Definition Classes
    Hashable
  34. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  35. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  36. def exists: Boolean

    Is this type different from NoType?

  37. final def existsPart(p: (Type) ⇒ Boolean, forceLazy: Boolean = true)(implicit ctx: Context): Boolean

    Returns true if there is a part of this type that satisfies predicate p.

  38. def fallbackToText(printer: Printer): Text

    A fallback text representation, if the pattern matching in Printers does not have a case for this showable element

    A fallback text representation, if the pattern matching in Printers does not have a case for this showable element

    Definition Classes
    Showable
  39. final def fields(implicit ctx: Context): Seq[SingleDenotation]

  40. def finalResultType(implicit ctx: Context): Type

    The final result type of a PolyType, MethodType, or ExprType, after skipping all parameter sections, the type itself for all others.

  41. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  42. final def findDecl(name: Name, excluded: FlagSet)(implicit ctx: Context): Denotation

    A denotation containing the declaration(s) in this type with the given name, as seen from prefix type pre.

    A denotation containing the declaration(s) in this type with the given name, as seen from prefix type pre. Declarations that have a flag in excluded are omitted.

  43. final def findMember(name: Name, pre: Type, excluded: FlagSet)(implicit ctx: Context): Denotation

    Find member of this type with given name and produce a denotation that contains the type of the member as seen from given prefix pre.

    Find member of this type with given name and produce a denotation that contains the type of the member as seen from given prefix pre. Exclude all members that have flags in excluded from consideration.

  44. def finishHash(seed: Int, arity: Int, tp: Type, tps: List[Type]): Int

    Attributes
    protected
    Definition Classes
    Hashable
  45. def finishHash(seed: Int, arity: Int, tps: List[Type]): Int

    Attributes
    protected
    Definition Classes
    Hashable
  46. def finishHash(seed: Int, arity: Int, tp1: Type, tp2: Type): Int

    Attributes
    protected
    Definition Classes
    Hashable
  47. def finishHash(seed: Int, arity: Int, tp: Type): Int

    Attributes
    protected
    Definition Classes
    Hashable
  48. final def finishHash(hashCode: Int, arity: Int): Int

    Attributes
    protected
    Definition Classes
    Hashable
  49. final def firstParamTypes(implicit ctx: Context): List[Type]

    The parameter types in the first parameter section of a generic type or MethodType, Empty list for others

  50. def firstParent(implicit ctx: Context): TypeRef

    The first parent of this type, AnyRef if list of parents is empty

  51. final def forallParts(p: (Type) ⇒ Boolean)(implicit ctx: Context): Boolean

    Returns true if all parts of this type satisfy predicate p.

  52. final def foreachPart(p: (Type) ⇒ Unit, stopAtStatic: Boolean = false)(implicit ctx: Context): Unit

    Performs operation on all parts of this type

  53. final def frozen_<:<(that: Type)(implicit ctx: Context): Boolean

    Is this type a subtype of that type?

  54. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  55. def givenSelfType(implicit ctx: Context): Type

    the self type of the underlying classtype

  56. final def hasAnnotation(cls: ClassSymbol)(implicit ctx: Context): Boolean

    Does the type carry an annotation that is an instance of cls?

  57. final def hasUnsafeNonvariant(implicit ctx: Context): Boolean

    Does this type have an UnsafeNonvariant annotation on one of its parts?

  58. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  59. def hashSeed: Int

    Attributes
    protected
    Definition Classes
    Hashable
  60. final def identityHash: Int

    Definition Classes
    Hashable
  61. final def implicitMembers(implicit ctx: Context): List[TermRef]

    The set of implicit members of this type

  62. def isAlias: Boolean

    Is this an alias TypeBounds?

  63. def isDirectRef(sym: Symbol)(implicit ctx: Context): Boolean

    Is this type a (neither aliased nor applied) reference to class sym?

  64. final def isErroneous(implicit ctx: Context): Boolean

    Is some part of this type produced as a repair for an error?

  65. final def isError(implicit ctx: Context): Boolean

    Is this type produced as a repair for an error?

  66. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  67. final def isNotNull(implicit ctx: Context): Boolean

    Is this type guaranteed not to have null as a value? For the moment this is only true for modules, but it could be refined later.

  68. final def isParameterless(implicit ctx: Context): Boolean

    Is this either not a method at all, or a parameterless method?

  69. def isRef(sym: Symbol)(implicit ctx: Context): Boolean

    Is this type a (possibly refined or applied or aliased) type reference to the given type symbol?

  70. def isRepeatedParam(implicit ctx: Context): Boolean

    Is this a type of a repeated parameter?

  71. final def isStable(implicit ctx: Context): Boolean

    Does this type denote a stable reference (i.e.

    Does this type denote a stable reference (i.e. singleton type)?

  72. final def isUnsafeNonvariant(implicit ctx: Context): Boolean

    Does this type carry an UnsafeNonvariant annotation?

  73. def isValueSubType(that: Type)(implicit ctx: Context): Boolean

    Is this type a primitive value type which can be widened to the primitive value type that?

  74. final def isValueType: Boolean

    Is this type a value type?

  75. final def isValueTypeOrLambda: Boolean

    Is the is value type or type lambda?

  76. def isVarArgsMethod(implicit ctx: Context): Boolean

    Is this the type of a method that has a repeated parameter type as last parameter type?

  77. def lookupRefined(name: Name)(implicit ctx: Context): Type

    If this normalizes* to a refinement type that has a refinement for name (which might be followed by other refinements), and the refined info is a type alias, return the alias, otherwise return NoType.

    If this normalizes* to a refinement type that has a refinement for name (which might be followed by other refinements), and the refined info is a type alias, return the alias, otherwise return NoType. Used to reduce types of the form

    P { ... type T = / += / -= U ... } # T

    to just U. Does not perform the reduction if the resulting type would contain a reference to the "this" of the current refined type, except in the following situation

    (1) The "this" reference can be avoided by following an alias. Example:

    P { type T = String, type R = P{...}.T } # R --> String

    (*) normalizes means: follow instantiated typevars and aliases.

  78. def mapReduceAnd[T](f: (Type) ⇒ T)(g: (T, T) ⇒ T)(implicit ctx: Context): T

    Map function f over elements of an AndType, rebuilding with function g

  79. final def mapReduceOr[T](f: (Type) ⇒ T)(g: (T, T) ⇒ T)(implicit ctx: Context): T

    Map function f over elements of an OrType, rebuilding with function g

  80. def matches(that: Type)(implicit ctx: Context): Boolean

    Is this type close enough to that type so that members with the two types would override each other? This means:

    Is this type close enough to that type so that members with the two types would override each other? This means:

    • Either both types are polytypes with the same number of type parameters and their result types match after renaming corresponding type parameters
    • Or both types are method types with =:=-equivalent(*) parameter types and matching result types after renaming corresponding parameter types if the method types are dependent.
    • Or both types are =:=-equivalent
    • Or phase.erasedTypes is false, and neither type takes term or type parameters.

    (*) when matching with a Java method, we also regard Any and Object as equivalent parameter types.

  81. def matchesLoosely(that: Type)(implicit ctx: Context): Boolean

    This is the same as matches except that it also matches => T with T and vice versa.

  82. final def member(name: Name)(implicit ctx: Context): Denotation

    The member of this type with the given name

  83. final def memberClasses(implicit ctx: Context): Seq[SingleDenotation]

    The set of member classes of this type

  84. def memberDenots(keepOnly: NameFilter, f: (Name, Buffer[SingleDenotation]) ⇒ Unit)(implicit ctx: Context): Seq[SingleDenotation]

  85. final def memberExcluding(name: Name, excluding: FlagSet)(implicit ctx: Context): Denotation

  86. final def memberInfo(sym: Symbol)(implicit ctx: Context): Type

    The info of sym, seen as a member of this type.

  87. final def memberNames(keepOnly: NameFilter, pre: Type = this)(implicit ctx: Context): Set[Name]

    The set of names of members of this type that pass the given name filter when seen as members of pre.

    The set of names of members of this type that pass the given name filter when seen as members of pre. More precisely, these are all of members name such that keepOnly(pre, name) is true.

  88. final def membersBasedOnFlags(requiredFlags: FlagSet, excludedFlags: FlagSet)(implicit ctx: Context): Seq[SingleDenotation]

    The set of members of this type having at least one of requiredFlags but none of excludedFlags set

  89. final def namedParts(implicit ctx: Context): Set[NamedType]

    The parts of this type which are type or term refs

  90. def namedPartsWith(p: (NamedType) ⇒ Boolean, excludeLowerBounds: Boolean = false)(implicit ctx: Context): Set[NamedType]

    The parts of this type which are type or term refs and which satisfy predicate p.

    The parts of this type which are type or term refs and which satisfy predicate p.

    p

    The predicate to satisfy

    excludeLowerBounds

    If set to true, the lower bounds of abstract types will be ignored.

  91. def narrow(implicit ctx: Context): TermRef

    A prefix-less refined this or a termRef to a new skolem symbol that has the given type as info.

  92. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  93. final def nonClassTypeMembers(implicit ctx: Context): Seq[SingleDenotation]

    The set of abstract type members of this type.

  94. final def nonPrivateDecl(name: Name)(implicit ctx: Context): Denotation

    A denotation containing the non-private declaration(s) in this type with the given name

  95. final def nonPrivateMember(name: Name)(implicit ctx: Context): Denotation

    The non-private member of this type with the given name.

  96. final def normalizedPrefix(implicit ctx: Context): Type

    The normalized prefix of this type is: For an alias type, the normalized prefix of its alias For all other named type and class infos: the prefix.

    The normalized prefix of this type is: For an alias type, the normalized prefix of its alias For all other named type and class infos: the prefix. Inherited by all other type proxies. NoType for all other types.

  97. def notApplied: Type

    If this is a FunProto or PolyProto, WildcardType, otherwise this.

  98. final def notify(): Unit

    Definition Classes
    AnyRef
  99. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  100. final def occursIn(that: Type)(implicit ctx: Context): Boolean

    Does this type occur as a part of type that?

  101. def orElse(that: ⇒ Type): Type

    This type, if it exists, otherwise that type

  102. final def overrides(that: Type)(implicit ctx: Context): Boolean

    Is this type a legal type for a member that overrides another member of type that? This is the same as <:<, except that the types ()T and => T are identified, and T is seen as overriding either type.

  103. final def paramNamess(implicit ctx: Context): List[List[TermName]]

    The parameter names of a PolyType or MethodType, Empty list for others

  104. final def paramTypess(implicit ctx: Context): List[List[Type]]

    The parameter types of a PolyType or MethodType, Empty list for others

  105. def parents(implicit ctx: Context): List[TypeRef]

    For a ClassInfo type, its parents, Inherited by all type proxies.

    For a ClassInfo type, its parents, Inherited by all type proxies. Empty for all other types. Overwritten in ClassInfo, where parents is cached.

  106. def parentsWithArgs(implicit ctx: Context): List[Type]

    The full parent types, including all type arguments

  107. def relaxed_<:<(that: Type)(implicit ctx: Context): Boolean

  108. def resultType(implicit ctx: Context): Type

    The resultType of a PolyType, MethodType, or ExprType, the type itself for others

  109. def safe_&(that: Type)(implicit ctx: Context): Type

    Safer version of &.

    Safer version of &.

    This version does not simplify the upper bound of the intersection of two TypeBounds. The simplification done by & requires subtyping checks which may end up calling & again, in most cases this should be safe but because of F-bounded types, this can result in an infinite loop (which will be masked unless -Yno-deep-subtypes is enabled).

  110. def select(sym: Symbol)(implicit ctx: Context): Type

    The type <this .

    The type <this . name> with given symbol, reduced if possible

  111. def select(name: Name, denot: Denotation)(implicit ctx: Context): Type

    The type <this .

    The type <this . name> , reduced if possible, with given denotation if unreduced

  112. def select(name: Name)(implicit ctx: Context): Type

    The type <this .

    The type <this . name> , reduced if possible

  113. def show(implicit ctx: Context): String

    The string representation of this showable element.

    The string representation of this showable element.

    Definition Classes
    Showable
  114. def showSummary(implicit ctx: Context): String

    Definition Classes
    Showable
  115. def showSummary(depth: Int)(implicit ctx: Context): String

    The summarized string representation of this showable element.

    The summarized string representation of this showable element. Recursion depth is limited to some smallish value. Default is Config.summarizeDepth.

    Definition Classes
    Showable
  116. def showWithUnderlying(n: Int = 1)(implicit ctx: Context): String

    Utility method to show the underlying type of a TypeProxy chain together with the proxy type itself.

  117. def signature(implicit ctx: Context): Signature

    The signature of this type.

    The signature of this type. This is by default NotAMethod, but is overridden for PolyTypes, MethodTypes, and TermRefWithSignature types. (the reason why we deviate from the "final-method-with-pattern-match-in-base-class" pattern is that method signatures use caching, so encapsulation is improved using an OO scheme).

  118. def simplified(implicit ctx: Context): Type

    A simplified version of this type which is equivalent wrt =:= to this type.

    A simplified version of this type which is equivalent wrt =:= to this type. This applies a typemap to the type which (as all typemaps) follows type variable instances and reduces typerefs over refined types. It also re-evaluates all occurrences of And/OrType with &/| because what was a union or intersection of type variables might be a simpler type after the type variables are instantiated. Finally, it maps poly params in the current constraint set back to their type vars.

  119. def stripAnnots(implicit ctx: Context): Type

    Remove all AnnotatedTypes wrapping this type.

  120. def stripTypeVar(implicit ctx: Context): Type

    Map a TypeVar to either its instance if it is instantiated, or its origin, if not, until the result is no longer a TypeVar.

    Map a TypeVar to either its instance if it is instantiated, or its origin, if not, until the result is no longer a TypeVar. Identity on all other types.

  121. final def subst(from: BindingType, to: BindingType)(implicit ctx: Context): Type

    Substitute all types of the form PolyParam(from, N) by PolyParam(to, N).

  122. final def subst(from: List[Symbol], to: List[Type])(implicit ctx: Context): Type

    Substitute all types that refer in their symbol attribute to one of the symbols in from by the corresponding types in to.

  123. final def substDealias(from: List[Symbol], to: List[Type])(implicit ctx: Context): Type

    Same as subst but follows aliases as a fallback.

    Same as subst but follows aliases as a fallback. When faced with a reference to an alias type, where normal substitution does not yield a new type, the substitution is instead applied to the alias. If that yields a new type, this type is returned, otherwise the original type (not the alias) is returned. A use case for this method is if one wants to substitute the type parameters of a class and also wants to substitute any parameter accessors that alias the type parameters.

  124. final def substParam(from: ParamType, to: Type)(implicit ctx: Context): Type

    Substitute a bound type by some other type

  125. final def substParams(from: BindingType, to: List[Type])(implicit ctx: Context): Type

    Substitute bound types by some other types

  126. final def substRecThis(binder: RecType, tp: Type)(implicit ctx: Context): Type

    Substitute all occurrences of RecThis(binder) by tp

  127. final def substSym(from: List[Symbol], to: List[Symbol])(implicit ctx: Context): Type

    Substitute all occurrences of symbols in from by references to corresponding symbols in to

  128. final def substThis(cls: ClassSymbol, tp: Type)(implicit ctx: Context): Type

    Substitute all occurrences of This(cls) by tp

  129. final def substThisUnlessStatic(cls: ClassSymbol, tp: Type)(implicit ctx: Context): Type

    As substThis, but only is class is a static owner (i.e.

    As substThis, but only is class is a static owner (i.e. a globally accessible object)

  130. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  131. final def termSymbol(implicit ctx: Context): Symbol

    The term symbol associated with the type

  132. def toFunctionType(dropLast: Int = 0)(implicit ctx: Context): Type

    Turn type into a function type.

    Turn type into a function type.

    dropLast

    The number of trailing parameters that should be dropped when forming the function type.

  133. def toString(): String

    Definition Classes
    AnyRef → Any
  134. def toText(printer: Printer): Text

    Convert to text

    Convert to text

    Definition Classes
    TypeShowable
  135. final def typeMembers(implicit ctx: Context): Seq[SingleDenotation]

    The set of type members of this type

  136. def typeParamNamed(name: TypeName)(implicit ctx: Context): Symbol

    The type parameter with given name.

    The type parameter with given name. This tries first decls in order not to provoke a cycle by forcing the info. If that yields no symbol it tries member as an alternative.

  137. final def typeSymbol(implicit ctx: Context): Symbol

    The type symbol associated with the type

  138. def underlyingClassRef(refinementOK: Boolean)(implicit ctx: Context): Type

    If this is a (possibly aliased, annotated, and/or parameterized) reference to a class, the class type ref, otherwise NoType.

    If this is a (possibly aliased, annotated, and/or parameterized) reference to a class, the class type ref, otherwise NoType.

    refinementOK

    If true we also skip non-parameter refinements.

  139. def underlyingIfProxy(implicit ctx: Context): Type

    Useful for diagnostics: The underlying type if this type is a type proxy, otherwise NoType

  140. def underlyingIterator(implicit ctx: Context): Iterator[Type]

    The iterator of underlying types as long as type is a TypeProxy.

    The iterator of underlying types as long as type is a TypeProxy. Useful for diagnostics

  141. val uniqId: Int

  142. def unsupported(methodName: String): Nothing

    Throws an UnsupportedOperationException with the given method name.

    Throws an UnsupportedOperationException with the given method name.

    Definition Classes
    DotClass
  143. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  144. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  145. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  146. final def widen(implicit ctx: Context): Type

    Widen from singleton type to its underlying non-singleton base type by applying one or more underlying dereferences, Also go from => T to T.

    Widen from singleton type to its underlying non-singleton base type by applying one or more underlying dereferences, Also go from => T to T. Identity for all other types. Example:

    class Outer { class C ; val x: C } def o: Outer <o.x.type>.widen = o.C

  147. final def widenDealias(implicit ctx: Context): Type

    Perform successive widenings and dealiasings until none can be applied anymore

  148. final def widenExpr: Type

    Widen from ExprType type to its result type.

    Widen from ExprType type to its result type. (Note: no stripTypeVar needed because TypeVar's can't refer to ExprTypes.)

  149. final def widenIfUnstable(implicit ctx: Context): Type

    Widen type if it is unstable (i.e.

    Widen type if it is unstable (i.e. an ExprType, or TermRef to unstable symbol

  150. final def widenSingleton(implicit ctx: Context): Type

    Widen from singleton type to its underlying non-singleton base type by applying one or more underlying dereferences.

  151. final def widenSkolem(implicit ctx: Context): Type

    If this is a skolem, its underlying type, otherwise the type itself

  152. final def widenTermRefExpr(implicit ctx: Context): Type

    Widen from TermRef to its underlying non-termref base type, while also skipping Expr types.

  153. def |(that: Type)(implicit ctx: Context): Type

Inherited from Showable

Inherited from Hashable

Inherited from DotClass

Inherited from AnyRef

Inherited from Any

Ungrouped