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.
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
Is this type higher-kinded, i.
Is this type higher-kinded, i.e., is it a type constructor
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)))
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
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
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.
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.)
The string representation of this type used as a prefix
The string representation of this type used as a prefix
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.
Method to be implemented in subclasses.
Method to be implemented in subclasses. Converts this type to a string in calling toString for its parts.
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)
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.
For a typeref, its arguments.
For a typeref, its arguments. The empty list for all other types
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
The type symbol associated with the type Note that the symbol of the normalized type is returned (@see normalize)
The base type underlying a type proxy, identity on all other types
The base type underlying a type proxy, identity on 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.
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
A class representing intersection types with refinements of the form
<parents_0> with ... with <parents_n> { decls }
Cannot be created directly; one should always userefinedType
for creation.