treehugger.Types

PolyType

case class PolyType(typeParams: List[Forest.Symbol], resultType: Forest.Type) extends Forest.Type with Product with Serializable

A type function or the type of a polymorphic value (and thus of kind *).

Before the introduction of NullaryMethodType, a polymorphic nullary method (e.g, def isInstanceOf[T]: Boolean) used to be typed as PolyType(tps, restpe), and a monomorphic one as PolyType(Nil, restpe) This is now: PolyType(tps, NullaryMethodType(restpe)) and NullaryMethodType(restpe) by symmetry to MethodTypes: PolyType(tps, MethodType(params, restpe)) and MethodType(params, restpe)

Thus, a PolyType(tps, TypeRef(...)) unambiguously indicates a type function (which results from eta-expanding a type constructor alias). Similarly, PolyType(tps, ClassInfoType(...)) is a type constructor.

A polytype is of kind * iff its resultType is a (nullary) method type.

Linear Supertypes
Serializable, Serializable, Product, Equals, Forest.Type, Forest.AbsTypeImpl, Forest.AbsType, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. PolyType
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. Type
  7. AbsTypeImpl
  8. AbsType
  9. AnyRef
  10. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new PolyType(typeParams: List[Forest.Symbol], resultType: Forest.Type)

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. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  5. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def decls: List[Forest.Tree]

    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
    Type
  7. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  8. def finalResultType: Forest.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
    PolyTypeType
  9. def finalize(): Unit

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

    Definition Classes
    AnyRef → Any
  11. def isHigherKinded: Boolean

    Is this type higher-kinded, i.

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

    Definition Classes
    PolyTypeType
  12. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  14. def normalize: Forest.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)))

    Definition Classes
    Type
  15. final def notify(): Unit

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

    Definition Classes
    AnyRef
  17. def objectPrefix: String

    Attributes
    protected
    Definition Classes
    Type
  18. def packagePrefix: String

    Attributes
    protected
    Definition Classes
    Type
  19. def params: List[Forest.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
    PolyTypeType
  20. def parents: List[Forest.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
  21. def prefix: Forest.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
  22. def prefixChain: List[Forest.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
  23. 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
  24. val resultType: Forest.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
    PolyTypeType
  25. 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
    Type
  26. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  27. def termSymbol: Forest.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
    Type
  28. 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
  29. def trimPrefix(str: String): String

    Definition Classes
    Type
  30. def typeArgs: List[Forest.Type]

    For a typeref, its arguments.

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

    Definition Classes
    Type
  31. val typeParams: List[Forest.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
    PolyTypeType
  32. def typeSymbol: Forest.Symbol

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

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

    Definition Classes
    TypeAbsType
  33. def underlying: Forest.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
  34. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  37. def widen: Forest.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
    Type

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from Forest.Type

Inherited from Forest.AbsTypeImpl

Inherited from Forest.AbsType

Inherited from AnyRef

Inherited from Any

Ungrouped