trait Kinds extends AnyRef

Self Type
SymbolTable
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Kinds
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract class Kind extends AnyRef

    The data structure describing the kind of a given type.

    The data structure describing the kind of a given type.

    Proper types are represented using ProperTypeKind.

    Type constructors are represented using TypeConKind.

  2. case class KindErrors(arity: List[SymbolTable.SymPair] = Nil, variance: List[SymbolTable.SymPair] = Nil, strictness: List[SymbolTable.SymPair] = Nil) extends Product with Serializable
  3. class ProperTypeKind extends SymbolTable.Kind
  4. class TypeConKind extends SymbolTable.Kind

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. val NoKindErrors: SymbolTable.KindErrors
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def checkKindBounds0(tparams: List[SymbolTable.Symbol], targs: List[SymbolTable.Type], pre: SymbolTable.Type, owner: SymbolTable.Symbol, explainErrors: Boolean): List[(SymbolTable.Type, SymbolTable.Symbol, SymbolTable.KindErrors)]

    Check well-kindedness of type application (assumes arities are already checked) -- @M

    Check well-kindedness of type application (assumes arities are already checked) -- @M

    This check is also performed when abstract type members become concrete (aka a "type alias") -- then tparams.length==1 (checked one type member at a time -- in that case, prefix is the name of the type alias)

    Type application is just like value application: it's "contravariant" in the sense that the type parameters of the supplied type arguments must conform to the type parameters of the required type parameters:

    • their bounds must be less strict
    • variances must match (here, variances are absolute, the variance of a type parameter does not influence the variance of its higher-order parameters)
    • @M TODO: are these conditions correct,sufficient&necessary?

    e.g. class Iterable[t, m[+x <: t]] --> the application Iterable[Int, List] is okay, since List's type parameter is also covariant and its bounds are weaker than <: Int

  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. def kindsConform(tparams: List[SymbolTable.Symbol], targs: List[SymbolTable.Type], pre: SymbolTable.Type, owner: SymbolTable.Symbol): Boolean
  15. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    AnyRef → Any
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  23. object Kind
  24. object ProperTypeKind
  25. object TypeConKind
  26. object inferKind

    Starting from a Symbol (sym) or a Type (tpe), infer the kind that classifies it (sym.tpeHK/tpe).

Inherited from AnyRef

Inherited from Any

Ungrouped