Packages

class HKTypeVar extends SymbolTable.TypeVar

Precondition: params.nonEmpty. (args.nonEmpty enforced structurally.)

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. HKTypeVar
  2. TypeVar
  3. Serializable
  4. Serializable
  5. Product
  6. Equals
  7. Type
  8. Annotatable
  9. TypeApiImpl
  10. TypeApi
  11. AnyRef
  12. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new HKTypeVar(_origin: SymbolTable.Type, _constr: SymbolTable.TypeConstraint, params: List[SymbolTable.Symbol])

Type Members

  1. class FilterMapForeach extends SymbolTable.FilterTypeCollector
    Definition Classes
    Type

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. def <:<(that: SymbolTable.Type): Boolean

    Is this type a subtype of that type?

    Is this type a subtype of that type?

    Definition Classes
    TypeTypeApi
  4. def =:=(that: SymbolTable.Type): Boolean

    Is this type equivalent to that type?

    Is this type equivalent to that type?

    Definition Classes
    TypeTypeApi
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. def addHiBound(tp: SymbolTable.Type, isNumericBound: Boolean = false): Unit
    Definition Classes
    TypeVar
  7. def addLoBound(tp: SymbolTable.Type, isNumericBound: Boolean = false): Unit
    Definition Classes
    TypeVar
  8. def addThrowsAnnotation(throwableSym: SymbolTable.Symbol): SymbolTable.Type
    Definition Classes
    Annotatable
  9. def annotations: List[SymbolTable.AnnotationInfo]

    The annotations on this type.

    The annotations on this type.

    Definition Classes
    TypeAnnotatable
  10. def applyArgs(newArgs: List[SymbolTable.Type]): SymbolTable.TypeVar

    Applies this TypeVar to type arguments, if arity matches.

    Applies this TypeVar to type arguments, if arity matches.

    Different applications of the same type constructor variable ?CC, e.g. ?CC[Int] and ?CC[String], are modeled as distinct instances of TypeVar that share a TypeConstraint, so that the comparisons ?CC[Int] <:< List[Int] and ?CC[String] <:< Iterable[String] result in ?CC being upper-bounded by List and Iterable.

    Applying the wrong number of type args results in a TypeVar whose instance is set to ErrorType.

    Definition Classes
    TypeVar
  11. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  12. def asSeenFrom(pre: SymbolTable.Type, clazz: SymbolTable.Symbol): SymbolTable.Type

    This type as seen from prefix pre and class clazz.

    This type as seen from prefix pre and class clazz. This means: Replace all thistypes of clazz or one of its subclasses by pre and instantiate all parameters by arguments of pre. Proceed analogously for thistypes referring to outer classes.

    Example: class D[T] { def m: T } class C extends p.D[Int] T.asSeenFrom(ThisType(C), D) (where D is owner of m)

    Int

    Definition Classes
    TypeTypeApi
  13. def atOwner(owner: SymbolTable.Symbol): SymbolTable.Type

    Make sure this type is correct as the info of given owner; clone it if not.

    Make sure this type is correct as the info of given owner; clone it if not.

    Definition Classes
    Type
  14. def baseClasses: List[SymbolTable.Symbol]

    The list of all baseclasses of this type (including its own typeSymbol) in linearization order, starting with the class itself and ending in class Any.

    The list of all baseclasses of this type (including its own typeSymbol) in linearization order, starting with the class itself and ending in class Any.

    Definition Classes
    TypeTypeApi
  15. def baseType(clazz: SymbolTable.Symbol): SymbolTable.Type

    The least type instance of given class which is a supertype of this type.

    The least type instance of given class which is a supertype of this type. Example: class D[T] class C extends p.D[Int] ThisType(C).baseType(D) = p.D[Int]

    Definition Classes
    TypeTypeApi
  16. def baseTypeIndex(sym: SymbolTable.Symbol): Int

    sym

    the class symbol

    returns

    the index of given class symbol in the BaseTypeSeq of this type, or -1 if no base type with given class symbol exists.

    Definition Classes
    Type
  17. def baseTypeSeq: SymbolTable.BaseTypeSeq

    The base type sequence of T is the smallest set of (potentially existentially quantified) class types Ti, so that for each supertype T' (T <:< T'), there is a Ti so that T <:< Ti <:< T'.

    The base type sequence of T is the smallest set of (potentially existentially quantified) class types Ti, so that for each supertype T' (T <:< T'), there is a Ti so that T <:< Ti <:< T'.

    This is also known as the upward closed set of the partially ordered set of class types under Symbol#isLess (a refinement of Symbol#isSubclass).

    See "Base Types and Member Definitions" in spec/03-types.md.

    Definition Classes
    Type
  18. def baseTypeSeqDepth: Depth

    The maximum depth (@see typeDepth) of each type in the BaseTypeSeq of this type except the first.

    The maximum depth (@see typeDepth) of each type in the BaseTypeSeq of this type except the first.

    Definition Classes
    Type
  19. def betaReduce: SymbolTable.Type

    Performs a single step of beta-reduction on types.

    Performs a single step of beta-reduction on types. Given:

    type C[T] = B[T] type B[T] = A class A

    The following will happen after betaReduce is invoked: TypeRef(pre, <C>, List(Int)) is replaced by TypeRef(pre, <B>, List(Int))

    Unlike dealias, which recursively applies beta reduction, until it's stuck, betaReduce performs exactly one step and then returns.

    Definition Classes
    Type
  20. def bounds: SymbolTable.TypeBounds

    For a TypeBounds type, itself; for a reference denoting an abstract type, its bounds, for all other types, a TypeBounds type all of whose bounds are this type.

    For a TypeBounds type, itself; for a reference denoting an abstract type, its bounds, for all other types, a TypeBounds type all of whose bounds are this type.

    Definition Classes
    Type
  21. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  22. def cloneInfo(owner: SymbolTable.Symbol): SymbolTable.Type

    If this is a ExistentialType, PolyType or MethodType, a copy with cloned type / value parameters owned by owner.

    If this is a ExistentialType, PolyType or MethodType, a copy with cloned type / value parameters owned by owner. Identity for all other types.

    Definition Classes
    Type
  23. def cloneInternal: SymbolTable.TypeVar
    Definition Classes
    TypeVar
  24. def collect[T](pf: PartialFunction[SymbolTable.Type, T]): List[T]

    Apply pf to each part of this type on which the function is defined

    Apply pf to each part of this type on which the function is defined

    Definition Classes
    Type
  25. def companion: SymbolTable.Type

    Type signature of the companion of the underlying class symbol.

    Type signature of the companion of the underlying class symbol. NoType if the underlying symbol is not a class symbol, or if it doesn't have a companion.

    Definition Classes
    TypeApiImplTypeApi
  26. def complete(sym: SymbolTable.Symbol): Unit

    If this is a lazy type, assign a new type to sym.

    If this is a lazy type, assign a new type to sym.

    Definition Classes
    Type
  27. def computeMemberType(sym: SymbolTable.Symbol): SymbolTable.Type
    Definition Classes
    Type
  28. var constr: SymbolTable.TypeConstraint
    Definition Classes
    TypeVar
  29. def contains(sym: SymbolTable.Symbol): Boolean

    Does this type contain a reference to this symbol?

    Does this type contain a reference to this symbol?

    Definition Classes
    TypeTypeApi
  30. def dealias: SymbolTable.Type

    Expands type aliases.

    Expands type aliases.

    Definition Classes
    TypeTypeApi
  31. def dealiasWiden: SymbolTable.Type

    Repeatedly apply widen and dealias until they have no effect.

    Repeatedly apply widen and dealias until they have no effect. This compensates for the fact that type aliases can hide beneath singleton types and singleton types can hide inside type aliases. !!! - and yet it is still inadequate, because aliases and singletons might lurk in the upper bounds of an abstract type. See scala/bug#7051.

    Definition Classes
    Type
  32. def dealiasWidenChain: List[SymbolTable.Type]

    All the types encountered in the course of dealiasing/widening, including each intermediate beta reduction step (whereas calling dealias applies as many as possible.)

    All the types encountered in the course of dealiasing/widening, including each intermediate beta reduction step (whereas calling dealias applies as many as possible.)

    Definition Classes
    Type
  33. def decl(name: SymbolTable.Name): SymbolTable.Symbol

    The defined or declared members with name name in this type; an OverloadedSymbol if several exist, NoSymbol if none exist.

    The defined or declared members with name name in this type; an OverloadedSymbol if several exist, NoSymbol if none exist. Alternatives of overloaded symbol appear in the order they are declared.

    Definition Classes
    TypeTypeApi
  34. def declaration(name: SymbolTable.Name): SymbolTable.Symbol

    Definition Classes
    TypeApiImplTypeApi
    See also

    decl

  35. def declarations: SymbolTable.Scope

    Definition Classes
    TypeApiImplTypeApi
    See also

    decls

  36. def decls: SymbolTable.Scope

    For a classtype or refined type, its defined or declared members; inherited by subtypes and typerefs.

    For a classtype or refined type, its defined or declared members; inherited by subtypes and typerefs. The empty scope for all other types.

    Definition Classes
    TypeTypeApi
  37. def deconst: SymbolTable.Type

    Map a constant type or not-null-type to its underlying base type, identity for all other types.

    Map a constant type or not-null-type to its underlying base type, identity for all other types.

    Definition Classes
    Type
  38. def deferredMembers: SymbolTable.Scope

    A list of all deferred symbols of this type (defined or inherited)

    A list of all deferred symbols of this type (defined or inherited)

    Definition Classes
    Type
  39. def directObjectString: String

    The string representation of this type when the direct object in a sentence.

    The string representation of this type when the direct object in a sentence. Normally this is no different from the regular representation, but modules read better as "object Foo" here and "Foo.type" the rest of the time.

    Definition Classes
    Type
  40. def dummyArgs: List[SymbolTable.Type]

    A list of placeholder types derived from the type parameters.

    A list of placeholder types derived from the type parameters. Used by RefinedType and TypeRef.

    Attributes
    protected
    Definition Classes
    Type
  41. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  42. def equals(other: Any): Boolean
    Definition Classes
    TypeVar → Equals → AnyRef → Any
  43. def erasure: SymbolTable.Type

    The erased type corresponding to this type after all transformations from Scala to Java have been performed.

    The erased type corresponding to this type after all transformations from Scala to Java have been performed.

    Definition Classes
    TypeApiImplTypeApi
  44. def etaExpand: SymbolTable.Type

    Converts higher-kinded TypeRefs to PolyTypes.

    Converts higher-kinded TypeRefs to PolyTypes. Functions on types are also implemented as PolyTypes.

    Example: (in the below, <List> is the type constructor of List) TypeRef(pre, <List>, List()) is replaced by PolyType(X, TypeRef(pre, <List>, List(X)))

    Definition Classes
    TypeVarTypeTypeApi
  45. def exists(p: (SymbolTable.Type) ⇒ Boolean): Boolean

    Is there part of this type which satisfies predicate p?

    Is there part of this type which satisfies predicate p?

    Definition Classes
    TypeTypeApi
  46. def filterAnnotations(p: (SymbolTable.AnnotationInfo) ⇒ Boolean): SymbolTable.Type
    Definition Classes
    TypeAnnotatable
  47. final def finalResultType: SymbolTable.Type

    For a curried/nullary method or poly type its non-method result type, the type itself for all other types

    For a curried/nullary method or poly type its non-method result type, the type itself for all other types

    Definition Classes
    TypeTypeApi
  48. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  49. def find(p: (SymbolTable.Type) ⇒ Boolean): Option[SymbolTable.Type]

    Returns optionally first type (in a preorder traversal) which satisfies predicate p, or None if none exists.

    Returns optionally first type (in a preorder traversal) which satisfies predicate p, or None if none exists.

    Definition Classes
    TypeTypeApi
  50. def findMember(name: SymbolTable.Name, excludedFlags: Long, requiredFlags: Long, stableOnly: Boolean): SymbolTable.Symbol

    Find member(s) in this type.

    Find member(s) in this type. If several members matching criteria are found, they are returned in an OverloadedSymbol

    name

    The member's name

    excludedFlags

    Returned members do not have these flags

    requiredFlags

    Returned members do have these flags

    stableOnly

    If set, return only members that are types or stable values

    Definition Classes
    Type
  51. def findMembers(excludedFlags: Long, requiredFlags: Long): SymbolTable.Scope

    Find all members meeting the flag requirements.

    Find all members meeting the flag requirements.

    If you require a DEFERRED member, you will get it if it exists -- even if there's an overriding concrete member. If you exclude DEFERRED members, or don't specify any requirements, you won't get deferred members (whether they have an overriding concrete member or not)

    Thus, findMember requiring DEFERRED flags yields deferred members, while findMember(excludedFlags = 0, requiredFlags = 0).filter(_.isDeferred) may not (if there's a corresponding concrete member)

    Requirements take precedence over exclusions, so requiring and excluding DEFERRED will yield a DEFERRED member (if there is one).

    Definition Classes
    Type
  52. def firstParent: SymbolTable.Type

    For a class with nonEmpty parents, the first parent.

    For a class with nonEmpty parents, the first parent. Otherwise some specific fixed top type.

    Definition Classes
    Type
  53. def forceDirectSuperclasses: Unit

    If this is a lazy type corresponding to a subclass add it to its parents children

    If this is a lazy type corresponding to a subclass add it to its parents children

    Definition Classes
    Type
  54. def foreach(f: (SymbolTable.Type) ⇒ Unit): Unit

    Apply f to each part of this type

    Apply f to each part of this type

    Definition Classes
    TypeTypeApi
  55. def getAnnotation(cls: SymbolTable.Symbol): Option[SymbolTable.AnnotationInfo]
    Definition Classes
    Annotatable
  56. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  57. def hasAnnotation(cls: SymbolTable.Symbol): Boolean

    Tests for, get, or remove an annotation

    Tests for, get, or remove an annotation

    Definition Classes
    Annotatable
  58. def hasNonPrivateMember(name: SymbolTable.Name): Boolean
    Definition Classes
    Type
  59. def hashCode(): Int
    Definition Classes
    TypeVar → AnyRef → Any
  60. def implicitMembers: SymbolTable.Scope

    A list of all implicit symbols of this type (defined or inherited)

    A list of all implicit symbols of this type (defined or inherited)

    Definition Classes
    Type
  61. def inst: SymbolTable.Type
    Definition Classes
    TypeVar
  62. def instValid: Boolean

    The constraint associated with the variable Syncnote: Type variables are assumed to be used from only one thread.

    The constraint associated with the variable Syncnote: Type variables are assumed to be used from only one thread. They are not exposed in api.Types and are used only locally in operations that are exposed from types. Hence, no syncing of constr or encounteredHigherLevel or suspended accesses should be necessary.

    Definition Classes
    TypeVar
  63. def instWithinBounds: Boolean
    Definition Classes
    TypeVar
  64. def instantiateTypeParams(formals: List[SymbolTable.Symbol], actuals: List[SymbolTable.Type]): SymbolTable.Type

    Replace formal type parameter symbols with actual type arguments.

    Replace formal type parameter symbols with actual type arguments. ErrorType on arity mismatch.

    Amounts to substitution except for higher-kinded types. (See overridden method in TypeRef) -- @M

    Definition Classes
    Type
  65. def isComplete: Boolean

    Is this type completed (i.e.

    Is this type completed (i.e. not a lazy type)?

    Definition Classes
    Type
  66. def isDependentMethodType: Boolean

    Is this type a dependent method type?

    Is this type a dependent method type?

    Definition Classes
    Type
  67. def isErroneous: Boolean

    Is this type produced as a repair for an error?

    Is this type produced as a repair for an error?

    Definition Classes
    Type
  68. def isError: Boolean

    Is this type produced as a repair for an error?

    Is this type produced as a repair for an error?

    Definition Classes
    Type
  69. def isFinalType: Boolean

    Can this type only be subtyped by bottom types? This is assessed to be the case if the class is final, and all type parameters (if any) are invariant.

    Can this type only be subtyped by bottom types? This is assessed to be the case if the class is final, and all type parameters (if any) are invariant.

    Definition Classes
    Type
  70. def isGround: Boolean

    A test whether a type contains any unification type variables.

    A test whether a type contains any unification type variables. Overridden with custom logic except where trivially true.

    Definition Classes
    TypeVarType
  71. def isHigherKinded: Boolean

    Is this type higher-kinded, i.e., is it a type constructor @M

    Is this type higher-kinded, i.e., is it a type constructor @M

    Definition Classes
    HKTypeVarTypeVarType
  72. def isImmediatelyDependent: Boolean

    Does this type depend immediately on an enclosing method parameter? I.e., is it a singleton type whose termSymbol refers to an argument of the symbol's owner (which is a method)?

    Does this type depend immediately on an enclosing method parameter? I.e., is it a singleton type whose termSymbol refers to an argument of the symbol's owner (which is a method)?

    Definition Classes
    Type
  73. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  74. def isRelatable(tp: SymbolTable.Type): Boolean

    Can this variable be related in a constraint to type tp? This is not the case if tp contains type skolems whose skolemization level is higher than the level of this variable.

    Can this variable be related in a constraint to type tp? This is not the case if tp contains type skolems whose skolemization level is higher than the level of this variable.

    Definition Classes
    TypeVar
  75. def isShowAsInfixType: Boolean

    Should this be printed as an infix type (@showAsInfix class &&[T, U])?

    Should this be printed as an infix type (@showAsInfix class &&[T, U])?

    Definition Classes
    Type
  76. def isSpliceable: Boolean
    Definition Classes
    TypeApiImpl
  77. final def isStable: Boolean

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

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

    Definition Classes
    Type
  78. def isStructuralRefinement: Boolean

    Is this type a structural refinement type (it refines members that have not been inherited)

    Is this type a structural refinement type (it refines members that have not been inherited)

    Definition Classes
    Type
  79. def isTrivial: Boolean

    Types for which asSeenFrom always is the identity, no matter what prefix or owner.

    Types for which asSeenFrom always is the identity, no matter what prefix or owner.

    Definition Classes
    Type
  80. final def isVolatile: Boolean

    Is this type dangerous (i.e.

    Is this type dangerous (i.e. it might contain conflicting type information when empty, so that it can be constructed so that type unsoundness results.) A dangerous type has an underlying type of the form T_1 with T_n { decls }, where one of the T_i (i > 1) is an abstract type.

    Definition Classes
    Type
  81. def isWildcard: Boolean

    True for WildcardType or BoundedWildcardType.

    True for WildcardType or BoundedWildcardType.

    Definition Classes
    Type
  82. def kind: String

    The kind of this type; used for debugging

    The kind of this type; used for debugging

    Definition Classes
    TypeVarType
  83. val level: Int

    The variable's skolemization level

    The variable's skolemization level

    Definition Classes
    TypeVar
  84. def load(sym: SymbolTable.Symbol): Unit

    If this is a symbol loader type, load and assign a new type to sym.

    If this is a symbol loader type, load and assign a new type to sym.

    Definition Classes
    Type
  85. def looselyMatches(that: SymbolTable.Type): Boolean

    Same as matches, except that non-method types are always assumed to match.

    Same as matches, except that non-method types are always assumed to match.

    Definition Classes
    Type
  86. def map(f: (SymbolTable.Type) ⇒ SymbolTable.Type): SymbolTable.Type

    Apply f to each part of this type; children get mapped before their parents

    Apply f to each part of this type; children get mapped before their parents

    Definition Classes
    TypeTypeApi
  87. def matches(that: SymbolTable.Type): Boolean

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

    Is this type close enough to that type so that members with the two type 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 (nullary) method types with equivalent type parameter types and matching result types
    • Or both types are equivalent
    • Or phase.erasedTypes is false and both types are neither method nor poly types.
    Definition Classes
    Type
  88. def matchesPattern(that: SymbolTable.Type): Boolean

    Is this type a subtype of that type in a pattern context? Dummy type arguments on the right hand side are replaced with fresh existentials, except for Arrays.

    Is this type a subtype of that type in a pattern context? Dummy type arguments on the right hand side are replaced with fresh existentials, except for Arrays.

    See bug1434.scala for an example of code which would fail if only a <:< test were applied.

    Definition Classes
    Type
  89. def member(name: SymbolTable.Name): SymbolTable.Symbol

    The member with given name, an OverloadedSymbol if several exist, NoSymbol if none exist

    The member with given name, an OverloadedSymbol if several exist, NoSymbol if none exist

    Definition Classes
    TypeTypeApi
  90. def memberBasedOnName(name: SymbolTable.Name, excludedFlags: Long): SymbolTable.Symbol
    Definition Classes
    Type
  91. def memberInfo(sym: SymbolTable.Symbol): SymbolTable.Type

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

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

    Example:

    class D[T] { def m: T }
    class C extends p.D[Int]
    ThisType(C).memberType(m) = Int
    Definition Classes
    Type
  92. def memberType(sym: SymbolTable.Symbol): SymbolTable.Type

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

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

    Definition Classes
    Type
  93. def members: SymbolTable.Scope

    A list of all members of this type (defined or inherited) Members appear in linearization order of their owners.

    A list of all members of this type (defined or inherited) Members appear in linearization order of their owners. Members with the same owner appear in reverse order of their declarations.

    Definition Classes
    TypeTypeApi
  94. def membersBasedOnFlags(excludedFlags: Long, requiredFlags: Long): SymbolTable.Scope

    Members excluding and requiring the given flags.

    Members excluding and requiring the given flags. Note: unfortunately it doesn't work to exclude DEFERRED this way.

    Definition Classes
    Type
  95. def nameAndArgsString: String
    Definition Classes
    Type
  96. def narrow: SymbolTable.Type

    Map to a singleton type which is a subtype of this type.

    Map to a singleton type which is a subtype of this type. The fallback implemented here gives:

    T.narrow  =  (T {}).this.type

    Overridden where we know more about where types come from.

    Definition Classes
    Type
  97. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  98. def nonLocalMember(name: SymbolTable.Name): SymbolTable.Symbol

    The non-local member with given name, an OverloadedSymbol if several exist, NoSymbol if none exist

    The non-local member with given name, an OverloadedSymbol if several exist, NoSymbol if none exist

    Definition Classes
    Type
  99. def nonPrivateDecl(name: SymbolTable.Name): SymbolTable.Symbol

    The non-private defined or declared members with name name in this type; an OverloadedSymbol if several exist, NoSymbol if none exist.

    The non-private defined or declared members with name name in this type; an OverloadedSymbol if several exist, NoSymbol if none exist. Alternatives of overloaded symbol appear in the order they are declared.

    Definition Classes
    Type
  100. def nonPrivateDecls: List[SymbolTable.Symbol]

    A list of all non-private members defined or declared in this type.

    A list of all non-private members defined or declared in this type.

    Definition Classes
    Type
  101. def nonPrivateMember(name: SymbolTable.Name): SymbolTable.Symbol

    The non-private member with given name, an OverloadedSymbol if several exist, NoSymbol if none exist.

    The non-private member with given name, an OverloadedSymbol if several exist, NoSymbol if none exist. Bridges are excluded from the result

    Definition Classes
    Type
  102. def nonPrivateMemberAdmitting(name: SymbolTable.Name, admit: Long): SymbolTable.Symbol

    The non-private member with given name, admitting members with given flags admit.

    The non-private member with given name, admitting members with given flags admit. "Admitting" refers to the fact that members with a PRIVATE, BRIDGE, or VBRIDGE flag are usually excluded from findMember results, but supplying any of those flags to this method disables that exclusion.

    An OverloadedSymbol if several exist, NoSymbol if none exists.

    Definition Classes
    Type
  103. def nonPrivateMembers: SymbolTable.Scope

    A list of all non-private members of this type (defined or inherited)

    A list of all non-private members of this type (defined or inherited)

    Definition Classes
    Type
  104. def nonPrivateMembersAdmitting(admit: Long): SymbolTable.Scope

    A list of all non-private members of this type (defined or inherited), admitting members with given flags admit

    A list of all non-private members of this type (defined or inherited), admitting members with given flags admit

    Definition Classes
    Type
  105. def normalize: SymbolTable.Type

    Reduce to beta eta-long normal form.

    Reduce to beta eta-long normal form. Expands type aliases and converts higher-kinded TypeRefs to PolyTypes. Functions on types are also implemented as PolyTypes.

    Example: (in the below, <List> is the type constructor of List) TypeRef(pre, <List>, List()) is replaced by PolyType(X, TypeRef(pre, <List>, List(X)))

    Discussion: normalize is NOT usually what you want to be calling. The (very real) danger with normalize is that it will force types which would not otherwise have been forced, leading to mysterious behavioral differences, cycles, and other elements of mysteries. Under most conditions the method you should be calling is dealiasWiden (see that method for more info.)

    Here are a few of the side-effect-trail-leaving methods called by various implementations of normalize:

    • sym.info
    • tpe.etaExpand
    • tpe.betaReduce
    • tpe.memberType
    • sym.nextOverriddenSymbol
    • constraint.inst

    If you've been around the compiler a while that list must fill your heart with fear.

    Definition Classes
    TypeVarTypeTypeApi
  106. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  107. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  108. def objectPrefix: String
    Attributes
    protected
    Definition Classes
    Type
  109. final def orElse(alt: ⇒ SymbolTable.Type): SymbolTable.Type

    Provides an alternate if type is NoType.

    Provides an alternate if type is NoType.

    Definition Classes
    TypeTypeApi
    Annotations
    @inline()
  110. val origin: SymbolTable.Type
    Definition Classes
    TypeVar
  111. def originLocation: String
    Definition Classes
    TypeVar
  112. def originName: String
    Definition Classes
    TypeVar
  113. def originString: String
    Definition Classes
    TypeVar
  114. def packageObject: SymbolTable.Symbol
    Definition Classes
    Type
  115. def packagePrefix: String
    Attributes
    protected
    Definition Classes
    Type
  116. def paramLists: List[List[SymbolTable.Symbol]]

    For a method or poly type, a list of its value parameter sections, the empty list of lists for all other types.

    For a method or poly type, a list of its value parameter sections, the empty list of lists for all other types.

    Definition Classes
    TypeApiImplTypeApi
  117. def paramSectionCount: Int

    For a method type, the number of its value parameter sections, 0 for all other types

    For a method type, the number of its value parameter sections, 0 for all other types

    Definition Classes
    Type
  118. def paramTypes: List[SymbolTable.Type]

    For a method or poly type, the types of its first value parameter section, the empty list for all other types

    For a method or poly type, the types of its first value parameter section, the empty list for all other types

    Definition Classes
    Type
  119. val params: List[SymbolTable.Symbol]

    For a method or poly type, its first value parameter section, the empty list for all other types

    For a method or poly type, its first value parameter section, the empty list for all other types

    Definition Classes
    HKTypeVarTypeVarType
  120. def paramss: List[List[SymbolTable.Symbol]]

    For a method or poly type, a list of its value parameter sections, the empty list for all other types

    For a method or poly type, a list of its value parameter sections, the empty list for all other types

    Definition Classes
    TypeTypeApi
  121. def parents: List[SymbolTable.Type]

    For a class or intersection type, its parents.

    For a class or intersection type, its parents. For a TypeBounds type, the parents of its hi bound. inherited by typerefs, singleton types, and refinement types, The empty list for all other types

    Definition Classes
    Type
  122. def prefix: SymbolTable.Type

    For a typeref or single-type, the prefix of the normalized type (@see normalize).

    For a typeref or single-type, the prefix of the normalized type (@see normalize). NoType for all other types.

    Definition Classes
    Type
  123. def prefixChain: List[SymbolTable.Type]

    A chain of all typeref or singletype prefixes of this type, longest first.

    A chain of all typeref or singletype prefixes of this type, longest first. (Only used from safeToString.)

    Definition Classes
    Type
  124. def prefixString: String

    The string representation of this type used as a prefix

    The string representation of this type used as a prefix

    Definition Classes
    Type
  125. def registerBound(tp: SymbolTable.Type, isLowerBound: Boolean, isNumericBound: Boolean = false): Boolean

    Called when a TypeVar is involved in a subtyping check.

    Called when a TypeVar is involved in a subtyping check. Result is whether this TypeVar could plausibly be a [super/sub]type of argument tp and if so, tracks tp as a [lower/upper] bound of this TypeVar.

    if (isLowerBound) this typevar could be a subtype, track tp as a lower bound if (!isLowerBound) this typevar could be a supertype, track tp as an upper bound

    If isNumericBound is true, the subtype check is performed with weak_<:< instead of <:<.

    Definition Classes
    TypeVar
  126. def registerTypeEquality(tp: SymbolTable.Type, typeVarLHS: Boolean): Boolean
    Definition Classes
    TypeVar
  127. def registerTypeSelection(sym: SymbolTable.Symbol, tp: SymbolTable.Type): Boolean

    ?A.T =:= tp is rewritten as the constraint ?A <: {type T = tp}

    ?A.T =:= tp is rewritten as the constraint ?A <: {type T = tp}

    TODO: make these constraints count (incorporate them into implicit search in applyImplicitArgs) (T corresponds to @param sym)

    Definition Classes
    TypeVar
  128. def removeAnnotation(cls: SymbolTable.Symbol): SymbolTable.Type
    Definition Classes
    Annotatable
  129. def resultApprox: SymbolTable.Type

    Only used for dependent method types.

    Only used for dependent method types.

    Definition Classes
    Type
  130. def resultType(actuals: List[SymbolTable.Type]): SymbolTable.Type
    Definition Classes
    Type
  131. def resultType: SymbolTable.Type

    For a (nullary) method or poly type, its direct result type, the type itself for all other types.

    For a (nullary) method or poly type, its direct result type, the type itself for all other types.

    Definition Classes
    TypeTypeApi
  132. def safeToString: String

    Method to be implemented in subclasses.

    Method to be implemented in subclasses. Converts this type to a string in calling toString for its parts.

    Definition Classes
    TypeVarType
  133. def setAnnotations(annots: List[SymbolTable.AnnotationInfo]): SymbolTable.Type
    Definition Classes
    TypeAnnotatable
  134. def setInst(tp: SymbolTable.Type): HKTypeVar.this.type
    Definition Classes
    TypeVar
  135. final def sharesConstraints(other: SymbolTable.Type): Boolean

    AppliedTypeVars share the same TypeConstraint with the HKTypeVar that it was spawned from.

    AppliedTypeVars share the same TypeConstraint with the HKTypeVar that it was spawned from. A type inference session can also have more than one ATV. If we don't detect that, we end up with "cyclic constraint" when we try to instantiate type parameters after solving in, pos/t8237

    Attributes
    protected
    Definition Classes
    TypeVar
  136. def skolemizeExistential: SymbolTable.Type

    A simple version of skolemizeExistential for situations where owner or unpack location do not matter (typically used in subtype tests)

    A simple version of skolemizeExistential for situations where owner or unpack location do not matter (typically used in subtype tests)

    Definition Classes
    Type
  137. def skolemizeExistential(owner: SymbolTable.Symbol, origin: AnyRef): SymbolTable.Type

    If this type is an existential, turn all existentially bound variables to type skolems.

    If this type is an existential, turn all existentially bound variables to type skolems.

    owner

    The owner of the created type skolems

    origin

    The tree whose type was an existential for which the skolem was created.

    Definition Classes
    Type
  138. def skolemsExceptMethodTypeParams: List[SymbolTable.Symbol]

    The (existential or otherwise) skolems and existentially quantified variables which are free in this type

    The (existential or otherwise) skolems and existentially quantified variables which are free in this type

    Definition Classes
    Type
  139. def stat_<:<(that: SymbolTable.Type): Boolean
    Definition Classes
    Type
  140. def staticAnnotations: collection.immutable.List[SymbolTable.AnnotationInfo]
    Definition Classes
    Annotatable
  141. def subst(from: List[SymbolTable.Symbol], to: List[SymbolTable.Type]): SymbolTable.Type

    Substitute types to for occurrences of references to symbols from in this type.

    Substitute types to for occurrences of references to symbols from in this type.

    Definition Classes
    Type
  142. def substSym(from: List[SymbolTable.Symbol], to: List[SymbolTable.Symbol]): SymbolTable.Type

    Substitute symbols to for occurrences of symbols from in this type.

    Substitute symbols to for occurrences of symbols from in this type.

    !!! NOTE !!!: If you need to do a substThis and a substSym, the substThis has to come first, as otherwise symbols will immediately get rebound in typeRef to the old symbol.

    Definition Classes
    Type
  143. def substThis(from: SymbolTable.Symbol, to: SymbolTable.Symbol): SymbolTable.Type
    Definition Classes
    Type
  144. def substThis(from: SymbolTable.Symbol, to: SymbolTable.Type): SymbolTable.Type

    Substitute all occurrences of ThisType(from) in this type by to.

    Substitute all occurrences of ThisType(from) in this type by to.

    !!! NOTE !!!: If you need to do a substThis and a substSym, the substThis has to come first, as otherwise symbols will immediately get rebound in typeRef to the old symbol.

    Definition Classes
    Type
  145. def substThisAndSym(from: SymbolTable.Symbol, to: SymbolTable.Type, symsFrom: List[SymbolTable.Symbol], symsTo: List[SymbolTable.Symbol]): SymbolTable.Type

    Performs both substThis and substSym, in that order.

    Performs both substThis and substSym, in that order.

    [JZ] Reverted SubstThisAndSymMap from 334872, which was not the same as substThis(from, to).substSym(symsFrom, symsTo).

    SubstThisAndSymMap performs a breadth-first map over this type, which meant that symbol substitution occurred before ThisType substitution. Consequently, in substitution of a SingleType(ThisType(from), sym), symbols were rebound to from rather than to.

    Definition Classes
    Type
  146. def substituteSymbols(from: List[SymbolTable.Symbol], to: List[SymbolTable.Symbol]): SymbolTable.Type

    Substitute symbols in to for corresponding occurrences of references to symbols from in this type.

    Substitute symbols in to for corresponding occurrences of references to symbols from in this type.

    Definition Classes
    TypeApiImplTypeApi
  147. def substituteTypes(from: List[SymbolTable.Symbol], to: List[SymbolTable.Type]): SymbolTable.Type

    Substitute types in to for corresponding occurrences of references to symbols from in this type.

    Substitute types in to for corresponding occurrences of references to symbols from in this type.

    Definition Classes
    TypeApiImplTypeApi
  148. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  149. def takesTypeArgs: Boolean

    Is this type a type constructor that is missing its type arguments?

    Is this type a type constructor that is missing its type arguments?

    Definition Classes
    TypeTypeApi
  150. def termSymbol: SymbolTable.Symbol

    The term symbol associated with the type Note that the symbol of the normalized type is returned (@see normalize)

    The term symbol associated with the type Note that the symbol of the normalized type is returned (@see normalize)

    Definition Classes
    TypeTypeApi
  151. def termSymbolDirect: SymbolTable.Symbol

    The term symbol directly associated with the type.

    The term symbol directly associated with the type.

    Definition Classes
    Type
  152. def toLongString: String

    The string representation of this type, with singletypes explained.

    The string representation of this type, with singletypes explained.

    Definition Classes
    Type
  153. final def toString(): String

    Convert toString avoiding infinite recursions by cutting off after maxToStringRecursions recursion levels.

    Convert toString avoiding infinite recursions by cutting off after maxToStringRecursions recursion levels. Uses safeToString to produce a string on each level.

    Definition Classes
    Type → AnyRef → Any
  154. def trimPrefix(str: String): String
    Definition Classes
    Type
  155. def typeArgs: List[SymbolTable.Type]

    For a typeref, its arguments.

    For a typeref, its arguments. The empty list for all other types

    Definition Classes
    TypeVarTypeTypeApi
  156. def typeArguments: List[SymbolTable.Type]
    Definition Classes
    TypeApiImpl
  157. def typeConstructor: SymbolTable.Type

    This type, without its type arguments @M

    This type, without its type arguments @M

    Definition Classes
    TypeTypeApi
  158. def typeOfThis: SymbolTable.Type

    The type of this of a class type or reference type.

    The type of this of a class type or reference type.

    Definition Classes
    Type
  159. def typeParams: List[SymbolTable.Symbol]

    For a (potentially wrapped) poly type, its type parameters, the empty list for all other types

    For a (potentially wrapped) poly type, its type parameters, the empty list for all other types

    Definition Classes
    TypeTypeApi
  160. def typeSymbol: SymbolTable.Symbol

    The type symbol associated with the type Note that the symbol of the normalized type is returned (@see normalize) A type's typeSymbol should if possible not be inspected directly, due to the likelihood that what is true for tp.typeSymbol is not true for tp.sym, due to normalization.

    The type symbol associated with the type Note that the symbol of the normalized type is returned (@see normalize) A type's typeSymbol should if possible not be inspected directly, due to the likelihood that what is true for tp.typeSymbol is not true for tp.sym, due to normalization.

    Definition Classes
    TypeVarTypeTypeApi
  161. def typeSymbolDirect: SymbolTable.Symbol

    The type symbol directly associated with the type.

    The type symbol directly associated with the type. In other words, no normalization is performed: if this is an alias type, the symbol returned is that of the alias, not the underlying type.

    Definition Classes
    Type
  162. def underlying: SymbolTable.Type

    The base type underlying a type proxy, identity on all other types

    The base type underlying a type proxy, identity on all other types

    Definition Classes
    Type
  163. def untouchable: Boolean
    Definition Classes
    TypeVar
  164. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  165. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  166. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  167. def weak_<:<(that: SymbolTable.Type): Boolean

    Is this type a weak subtype of that type? True also for numeric types, i.e.

    Is this type a weak subtype of that type? True also for numeric types, i.e. Int weak_<:< Long.

    Definition Classes
    TypeTypeApi
  168. def widen: SymbolTable.Type

    Widen from singleton type to its underlying non-singleton base type by applying one or more underlying dereferences, identity for all other types.

    Widen from singleton type to its underlying non-singleton base type by applying one or more underlying dereferences, identity for all other types.

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

    Definition Classes
    TypeTypeApi
  169. final def withAnnotation(annot: SymbolTable.AnnotationInfo): SymbolTable.Type
    Definition Classes
    Annotatable
  170. def withAnnotations(annots: List[SymbolTable.AnnotationInfo]): SymbolTable.Type
    Definition Classes
    TypeAnnotatable
  171. def withFilter(p: (SymbolTable.Type) ⇒ Boolean): FilterMapForeach

    Returns all parts of this type which satisfy predicate p

    Returns all parts of this type which satisfy predicate p

    Definition Classes
    Type
  172. def withoutAnnotations: SymbolTable.Type
    Definition Classes
    TypeAnnotatable

Deprecated Value Members

  1. def boundSyms: Set[SymbolTable.Symbol]

    For a (potentially wrapped) poly, method or existential type, its directly bound symbols, the empty set for all other types

    For a (potentially wrapped) poly, method or existential type, its directly bound symbols, the empty set for all other types

    Definition Classes
    Type
    Annotations
    @deprecated
    Deprecated

    (Since version 2.12.3) No longer used in the compiler implementation

Inherited from SymbolTable.TypeVar

Inherited from Serializable

Inherited from java.io.Serializable

Inherited from Product

Inherited from Equals

Inherited from SymbolTable.Type

Inherited from SymbolTable.TypeApiImpl

Inherited from SymbolTable.TypeApi

Inherited from AnyRef

Inherited from Any

Helpers

Ungrouped