final object Types

Constructors

Members

[+] trait AndOrType
[+] abstract case class AndType
[+] final object AndType
[+] case class AnnotatedType

An annotated type tpe @ annot

An annotated type tpe @ annot

[+] final object AnnotatedType
[+] abstract class ApproximatingTypeMap
[+] trait BindingType

A marker trait for types that bind other types that refer to them. Instances are: PolyType, MethodType, RefinedType.

A marker trait for types that bind other types that refer to them. Instances are: PolyType, MethodType, RefinedType.

[+] abstract class BoundType
[+] final class CachedAndType
[+] class CachedClassInfo
[+] final class CachedConstantType
[+] final class CachedExprType
[+] abstract class CachedGroundType

Instances of this class are cached and are not proxies.

Instances of this class are cached and are not proxies.

[+] final class CachedHKApply
[+] final class CachedJavaArrayType
[+] final class CachedMethodType
[+] final class CachedOrType
[+] abstract class CachedProxyType

Instances of this class are cached and are proxies.

Instances of this class are cached and are proxies.

[+] class CachedRefinedType
[+] final class CachedSkolemType
[+] final class CachedSuperType
[+] final class CachedTermRef
[+] final class CachedThisType
[+] trait CachedType

A marker trait for cached types

A marker trait for cached types

[+] class CachedTypeAlias
[+] final class CachedTypeRef
[+] final class CachedWildcardType
[+] abstract case class ClassInfo

Roughly: the info of a class during a period.

Roughly: the info of a class during a period.

[+] final object ClassInfo
[+] abstract case class ConstantType

A constant type with single value.

A constant type with single value.

[+] final object ConstantType
[+] class CyclicReference
[+] final object CyclicReference
[+] abstract class DeepTypeMap

A type map that maps also parents and self type of a ClassInfo

A type map that maps also parents and self type of a ClassInfo

[+] class ErrorType
[+] class ExistsAccumulator
[+] final object ExistsAccumulator
[+] abstract case class ExprType

A by-name parameter type of the form => T, or the type of a method with no parameter list.

A by-name parameter type of the form => T, or the type of a method with no parameter list.

[+] final object ExprType
[+] abstract class FlexType

A common superclass of ErrorType and TryDynamicCallSite. Instances of this class are at the same time subtypes and supertypes of every other type.

A common superclass of ErrorType and TryDynamicCallSite. Instances of this class are at the same time subtypes and supertypes of every other type.

[+] class ForeachAccumulator
[+] abstract case class HKApply

A higher kinded type application C[T_1, ..., T_n]

A higher kinded type application C[T_1, ..., T_n]

[+] final object HKApply
[+] @sharable final object IdentityTypeMap
[+] final class ImplicitMethodType
[+] final object ImplicitMethodType
[+] case class ImportType

The type of an import clause tree

The type of an import clause tree

[+] final object ImportType

The type of an import clause tree

The type of an import clause tree

[+] abstract case class JavaArrayType

The type of an erased array

The type of an erased array

[+] final object JavaArrayType
[+] final class JavaMethodType
[+] final object JavaMethodType
[+] case class LambdaParam

The parameter of a type lambda

The parameter of a type lambda

[+] final object LambdaParam

The parameter of a type lambda

The parameter of a type lambda

[+] case class LazyRef
[+] final object LazyRef
[+] class MalformedType
[+] class MergeError
[+] trait MethodOrPoly
[+] abstract case class MethodParam
[+] final object MethodParam
[+] class MethodParamImpl
[+] abstract case class MethodType
[+] final object MethodType
[+] abstract class MethodTypeCompanion
[+] trait MethodicType

A trait that mixes in functionality for signature caching

A trait that mixes in functionality for signature caching

[+] class MissingType
[+] abstract class NameFilter

A name filter selects or discards a member name of a type pre. To enable efficient caching, name filters have to satisfy the following invariant: If kee...

A name filter selects or discards a member name of a type pre. To enable efficient caching, name filters have to satisfy the following invariant: If keep is a name filter, and pre has class C as a base class, then

keep(pre, name) implies keep(C.this, name)

[+] final object NamedPartsAccumulator
[+] abstract class NamedType

A NamedType of the form Prefix # name

A NamedType of the form Prefix # name

[+] final object NamedType
[+] trait NarrowCached

Implementations of this trait cache the results of narrow.

Implementations of this trait cache the results of narrow.

[+] @sharable final object NoPrefix

Missing prefix

Missing prefix

[+] @sharable final object NoType

Sentinel for "missing type"

Sentinel for "missing type"

[+] abstract case class OrType
[+] final object OrType
[+] abstract class ParamType
[+] case class PolyParam

TODO Some docs would be nice here!

TODO Some docs would be nice here!

[+] final object PolyParam

TODO Some docs would be nice here!

TODO Some docs would be nice here!

[+] class PolyType

A type lambda of the form [v_0 X_0, ..., v_n X_n] => T

A type lambda of the form [v_0 X_0, ..., v_n X_n] => T

[+] final object PolyType
[+] trait ProtoType

A trait for proto-types, used as expected types in typer

A trait for proto-types, used as expected types in typer

[+] class RealTypeBounds
[+] case class RecThis

a self-reference to an enclosing recursive type.

a self-reference to an enclosing recursive type.

[+] final object RecThis

a self-reference to an enclosing recursive type.

a self-reference to an enclosing recursive type.

[+] class RecType
[+] final object RecType
[+] abstract class RefinedOrRecType
[+] abstract case class RefinedType

A refined type parent { refinement }

A refined type parent { refinement }

[+] final object RefinedType
[+] final object SAMType

An extractor for single abstract method types. A type is a SAM type if it is a reference to a class or trait, which

  • has a single abstract method with a method type (ExprType and PolyType not allowed!)
  • can be instantiated without arguments or with just () as argument.

The pattern SAMType(denot) matches...

An extractor for single abstract method types. A type is a SAM type if it is a reference to a class or trait, which

  • has a single abstract method with a method type (ExprType and PolyType not allowed!)
  • can be instantiated without arguments or with just () as argument.

The pattern SAMType(denot) matches a SAM type, where denot is the denotation of the single abstract method as a member of the type.

[+] trait SingletonType

A marker trait for types that are guaranteed to contain only a single non-null value (they might contain null in addition).

A marker trait for types that are guaranteed to contain only a single non-null value (they might contain null in addition).

[+] abstract case class SkolemType

A skolem type reference with underlying type binder.

A skolem type reference with underlying type binder.

[+] final object SkolemType
[+] abstract case class SuperType

The type of a super reference cls.super where thistpe is cls.this and supertpe is the type of the value referenced by super.

The type of a super reference cls.super where thistpe is cls.this and supertpe is the type of the value referenced by super.

[+] final object SuperType
[+] final class TempClassInfo
[+] abstract case class TermRef
[+] final object TermRef
[+] final class TermRefWithSignature
[+] trait TermType

A marker trait for types that apply only to term symbols or that represent higher-kinded types.

A marker trait for types that apply only to term symbols or that represent higher-kinded types.

[+] abstract case class ThisType

The type cls.this

The type cls.this

[+] final object ThisType
[+] final object TryDynamicCallType
[+] abstract class Type

Main class representing types.

The principal subclasses and sub-objects are as follows:

Main class representing 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.

[+] abstract class TypeAccumulator
[+] abstract class TypeAlias
[+] final object TypeAlias
[+] abstract case class TypeBounds

Type bounds >: lo <: hi

Type bounds >: lo <: hi

[+] final object TypeBounds
[+] class TypeError
[+] abstract class TypeMap
[+] abstract class TypeProxy

A marker trait for type proxies. Each implementation is expected to redefine the underlying method.

A marker trait for type proxies. Each implementation is expected to redefine the underlying method.

[+] abstract case class TypeRef
[+] final object TypeRef
[+] abstract class TypeTraverser
[+] trait TypeType

A marker trait for types that apply only to type symbols

A marker trait for types that apply only to type symbols

[+] final class TypeVar

In a TypeApply tree, a TypeVar is created for each argument type to be inferred. Every type variable is referred to by exactly one inferred type parame...

In a TypeApply tree, a TypeVar is created for each argument type to be inferred. Every type variable is referred to by exactly one inferred type parameter of some TypeApply tree.

A type variable is essentially a switch that models some part of a substitution. It is first linked to origin, a poly param that's in the current constraint set. It can then be (once) instantiated to some other type. The instantiation is recorded in the type variable itself, or else, if the current type state is different from the variable's creation state (meaning unrolls are possible) in the current typer state.

[+] abstract class UncachedGroundType

Instances of this class are uncached and are not proxies.

Instances of this class are uncached and are not proxies.

[+] abstract class UncachedProxyType

Instances of this class are uncached and are proxies.

Instances of this class are uncached and are proxies.

[+] final object UnspecifiedErrorType
[+] trait ValueType

A marker trait for types that can be types of values or that are higher-kinded

A marker trait for types that can be types of values or that are higher-kinded

[+] trait ValueTypeOrProto

A marker trait for types that can be types of values or prototypes of value types

A marker trait for types that can be types of values or prototypes of value types

[+] abstract case class WildcardType

Wildcard type, possibly with bounds

Wildcard type, possibly with bounds

[+] @sharable final object WildcardType
[+] trait WithFixedSym
[+] final object abstractTermNameFilter

A filter for names of deferred term definitions of a given type

A filter for names of deferred term definitions of a given type

[+] final object abstractTypeNameFilter

A filter for names of abstract types of a given type

A filter for names of abstract types of a given type

[+] final object fieldFilter
[+] final object implicitFilter
[+] final object nonClassTypeNameFilter

A filter for names of abstract types of a given type

A filter for names of abstract types of a given type

[+] final object takeAllFilter
[+] final object typeNameFilter
[+] @sharable var debugTrace : Boolean
[+] @sharable private var nextId : Int
[+] val watchList : List [ TypeName ]
[+] private def assertUnerased ( ) ( implicit ctx: Context ) : Unit

Assert current phase does not have erasure semantics

Assert current phase does not have erasure semantics

[+] @sharable def debugTrace_= ( x$1: Boolean ) : Unit
[+] implicit def decorateTypeApplications ( tpe: Type ) : TypeApplications
[+] implicit def eqType : Eq [ Type, Type ]
[+] def isWatched ( tp: Type ) : Boolean
[+] @sharable private def nextId_= ( x$1: Int ) : Unit
[+] private def otherReason ( pre: Type ) ( implicit ctx: Context ) : String