dotty.tools.dotc.core

Types

Related Doc: package core

object Types

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Types
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. trait AndOrType extends Type with ValueType

  2. abstract case class AndType(tp1: Type, tp2: Type) extends CachedGroundType with AndOrType with Product with Serializable

  3. case class AnnotatedType(tpe: Type, annot: Annotation) extends UncachedProxyType with ValueType with Product with Serializable

    An annotated type tpe @ annot

  4. abstract class ApproximatingTypeMap extends TypeMap

  5. trait BindingType extends Type

    A marker trait for types that bind other types that refer to them.

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

  6. abstract class BoundType extends CachedProxyType with ValueType

  7. final class CachedAndType extends AndType

  8. final class CachedClassInfo extends ClassInfo

  9. final class CachedConstantType extends ConstantType

  10. final class CachedExprType extends ExprType

  11. abstract class CachedGroundType extends Type with CachedType

    Instances of this class are cached and are not proxies.

  12. final class CachedJavaArrayType extends JavaArrayType

  13. final class CachedMethodType extends MethodType

  14. final class CachedOrType extends OrType

  15. class CachedPolyType extends PolyType

  16. abstract class CachedProxyType extends TypeProxy with CachedType

    Instances of this class are cached and are proxies.

  17. class CachedRefinedType extends RefinedType

  18. final class CachedSkolemType extends SkolemType

  19. final class CachedSuperType extends SuperType

  20. final class CachedTermRef extends TermRef

  21. final class CachedThisType extends ThisType

  22. trait CachedType extends Type

    A marker trait for cached types

  23. class CachedTypeAlias extends TypeAlias

  24. final class CachedTypeRef extends TypeRef

  25. final class CachedWildcardType extends WildcardType

  26. abstract case class ClassInfo(prefix: Type, cls: ClassSymbol, classParents: List[TypeRef], decls: Scope, selfInfo: DotClass) extends CachedGroundType with TypeType with Product with Serializable

    Roughly: the info of a class during a period.

    Roughly: the info of a class during a period.

    prefix

    The prefix on which parents, decls, and selfType need to be rebased.

    cls

    The class symbol.

    classParents

    The parent types of this class. These are all normalized to be TypeRefs by moving any refinements to be member definitions of the class itself.

    decls

    The symbols defined directly in this class.

    selfInfo

    The type of this in this class, if explicitly given, NoType otherwise. If class is compiled from source, can also be a reference to the self symbol containing the type.

  27. abstract case class ConstantType(value: Constant) extends CachedProxyType with SingletonType with Product with Serializable

    A constant type with single value.

  28. class CyclicReference extends TypeError

  29. abstract class DeepTypeMap extends TypeMap

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

  30. abstract class ErrorType extends UncachedGroundType with ValueType

  31. class ExistsAccumulator extends TypeAccumulator[Boolean]

  32. abstract case class ExprType(resType: Type) extends CachedProxyType with TermType with MethodicType with Product with Serializable

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

  33. class ForeachAccumulator extends TypeAccumulator[Unit]

  34. class HasUnsafeNonAccumulator extends TypeAccumulator[Boolean]

  35. final class ImplicitMethodType extends MethodType

  36. case class ImportType(expr: ast.tpd.Tree) extends UncachedGroundType with Product with Serializable

    The type of an import clause tree

  37. abstract case class JavaArrayType(elemType: Type) extends CachedGroundType with ValueType with Product with Serializable

    The type of an erased array

  38. final class JavaMethodType extends MethodType

  39. case class LazyRef(refFn: () ⇒ Type) extends UncachedProxyType with ValueType with Product with Serializable

  40. class MalformedType extends TypeError

  41. class MergeError extends TypeError

  42. trait MethodOrPoly extends Type with MethodicType

  43. abstract case class MethodParam(binder: MethodType, paramNum: Int) extends ParamType with SingletonType with Product with Serializable

  44. class MethodParamImpl extends MethodParam

  45. abstract case class MethodType(paramNames: List[TermName], paramTypes: List[Type])(resultTypeExp: (MethodType) ⇒ Type) extends CachedGroundType with BindingType with TermType with MethodOrPoly with NarrowCached with Product with Serializable

  46. abstract class MethodTypeCompanion extends AnyRef

  47. trait MethodicType extends Type

    A trait that mixes in functionality for signature caching

  48. class MissingType extends TypeError

  49. abstract class NameFilter extends AnyRef

    A name filter selects or discards a member name of a type pre.

    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)

  50. class NamedPartsAccumulator extends TypeAccumulator[Set[NamedType]]

  51. abstract class NamedType extends CachedProxyType with ValueType

    A NamedType of the form Prefix # name

  52. trait NarrowCached extends Type

    Implementations of this trait cache the results of narrow.

  53. abstract case class OrType(tp1: Type, tp2: Type) extends CachedGroundType with AndOrType with Product with Serializable

  54. abstract class ParamType extends BoundType

  55. case class PolyParam(binder: PolyType, paramNum: Int) extends ParamType with Product with Serializable

    TODO Some docs would be nice here!

  56. abstract case class PolyType(paramNames: List[TypeName])(paramBoundsExp: (PolyType) ⇒ List[TypeBounds], resultTypeExp: (PolyType) ⇒ Type) extends CachedGroundType with BindingType with TermType with MethodOrPoly with Product with Serializable

  57. class PreHashedRefinedType extends RefinedType

  58. trait ProtoType extends Type

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

  59. class RealTypeBounds extends TypeBounds

  60. case class RefinedThis(binder: RefinedType) extends BoundType with SingletonType with Product with Serializable

    a this-reference to an enclosing refined type binder.

  61. abstract case class RefinedType(parent: Type, refinedName: Name) extends CachedProxyType with BindingType with ValueType with Product with Serializable

    A refined type parent { refinement }

    A refined type parent { refinement }

    refinedName

    The name of the refinement declaration

  62. trait SingletonType extends TypeProxy with ValueType

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

  63. abstract case class SkolemType(info: Type) extends UncachedProxyType with ValueType with SingletonType with Product with Serializable

    A skolem type reference with underlying type binder.

  64. abstract case class SuperType(thistpe: Type, supertpe: Type) extends CachedProxyType with SingletonType with Product with Serializable

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

  65. abstract case class TermRef(prefix: Type, name: TermName) extends NamedType with SingletonType with Product with Serializable

  66. class TermRefWithFixedSym extends TermRef with WithFixedSym

  67. final class TermRefWithSignature extends TermRef

  68. trait TermType extends Type

    A marker trait for types that apply only to term symbols

  69. abstract case class ThisType(tref: TypeRef) extends CachedProxyType with SingletonType with Product with Serializable

    The type cls.this

    The type cls.this

    tref

    A type ref which indicates the class cls. Note: we do not pass a class symbol directly, because symbols do not survive runs whereas typerefs do.

  70. abstract class Type extends DotClass with Hashable with Showable

    The class of types.

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

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

  71. abstract class TypeAccumulator[T] extends (T, Type) ⇒ T

  72. abstract class TypeAlias extends TypeBounds

  73. abstract case class TypeBounds(lo: Type, hi: Type) extends CachedProxyType with TypeType with Product with Serializable

    Type bounds >: lo <: hi

  74. class TypeError extends Exception

  75. abstract class TypeMap extends (Type) ⇒ Type

  76. abstract class TypeProxy extends Type

    A marker trait for type proxies.

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

  77. abstract case class TypeRef(prefix: Type, name: TypeName) extends NamedType with Product with Serializable

  78. class TypeRefWithFixedSym extends TypeRef with WithFixedSym

  79. abstract class TypeTraverser extends TypeAccumulator[Unit]

  80. trait TypeType extends Type

    A marker trait for types that apply only to type symbols

  81. final class TypeVar extends CachedProxyType with ValueType

    In a TypeApply tree, a TypeVar is created for each argument type to be inferred.

    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.

  82. abstract class UncachedGroundType extends Type

    Instances of this class are uncached and are not proxies.

  83. abstract class UncachedProxyType extends TypeProxy

    Instances of this class are uncached and are proxies.

  84. trait ValueType extends Type with ValueTypeOrProto

    A marker trait for types that can be types of values

  85. trait ValueTypeOrProto extends Type with TermType

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

  86. abstract case class WildcardType(optBounds: Type) extends CachedGroundType with TermType with Product with Serializable

    Wildcard type, possibly with bounds

  87. trait WithFixedSym extends NamedType

Value Members

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

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

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. object AndType extends Serializable

  5. object AnnotatedType extends Serializable

  6. object ClassInfo extends Serializable

  7. object ConstantType extends Serializable

  8. object CyclicReference extends Serializable

  9. object ErrorType extends ErrorType

  10. object ExprType extends Serializable

  11. object IdentityTypeMap extends TypeMap

    Annotations
    @sharable()
  12. object ImplicitMethodType extends MethodTypeCompanion with Serializable

  13. object JavaArrayType extends Serializable

  14. object JavaMethodType extends MethodTypeCompanion with Serializable

  15. object MethodParam extends Serializable

  16. object MethodType extends MethodTypeCompanion with Serializable

  17. object NamedType

  18. object NoPrefix extends CachedGroundType with Product with Serializable

    Missing prefix

    Missing prefix

    Annotations
    @sharable()
  19. object NoType extends CachedGroundType with Product with Serializable

    Sentinel for "missing type"

    Sentinel for "missing type"

    Annotations
    @sharable()
  20. object OrType extends Serializable

  21. object PolyType extends Serializable

  22. object RefinedType extends Serializable

  23. object SAMType

    An extractor for single abstract method types.

    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.

  24. object SkolemType extends Serializable

  25. object SuperType extends Serializable

  26. object TermRef extends Serializable

  27. object ThisType extends Serializable

  28. object TypeAlias extends Serializable

  29. object TypeBounds extends Serializable

  30. object TypeRef extends Serializable

  31. object WildcardType extends WildcardType

    Annotations
    @sharable()
  32. object abstractTermNameFilter extends NameFilter

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

  33. object abstractTypeNameFilter extends NameFilter

    A filter for names of abstract types of a given type

  34. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  35. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  36. var debugTrace: Boolean

  37. implicit def decorateTypeApplications(tpe: Type): TypeApplications

  38. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  39. implicit def eqType: Eq[Type, Type]

  40. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  41. object fieldFilter extends NameFilter

  42. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  43. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  44. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  45. object implicitFilter extends NameFilter

  46. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  47. def isWatched(tp: Type): Boolean

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

    Definition Classes
    AnyRef
  49. object nonClassTypeNameFilter extends NameFilter

    A filter for names of abstract types of a given type

  50. final def notify(): Unit

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

    Definition Classes
    AnyRef
  52. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  53. object takeAllFilter extends NameFilter

  54. def toString(): String

    Definition Classes
    AnyRef → Any
  55. object typeNameFilter extends NameFilter

  56. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  59. val watchList: List[TypeName]

Inherited from AnyRef

Inherited from Any

Ungrouped