This class declares methods that are visible in a CompoundType
(i.
This class declares methods that are visible in a SingleType
.
This class declares operations that are visible in a Type.
A type carrying some annotations.
A class representing a class info
An extractor class to create and pattern match with syntax ClassInfo(parents, decls, clazz)
Here, parents
is the list of parent types of the class, decls
is the scope
containing all declarations in the class, and clazz
is the symbol of the class
itself.
A common base class for intersection types and class types
A class representing a constant type.
An extractor class to create and pattern match with syntax ConstantType(constant)
Here, constant
is the constant value represented by the type.
A class representing a method type with parameters.
An extractor class to create and pattern match with syntax MethodType(params, respte)
Here, params
is a potentially empty list of parameter symbols of the method,
and restpe
is the result type of the method.
A class representing types with a name.
A class containing the alternatives and type prefix of an overloaded symbol.
A class representing a path dependent type
A type function or the type of a polymorphic value (and thus of kind *).
A class representing intersection types with refinements of the form
<parents_0> with ... with <parents_n> { decls }
Cannot be created directly;
one should always use refinedType
for creation.
An extractor class to create and pattern match with syntax RefinedType(parents, decls)
Here, parents
is the list of parent types of the class, and decls
is the scope
containing all declarations in the class.
A proxy for a type (identified by field underlying
) that forwards most
operations to it (for exceptions, see WrappingProxy, which forwards even more operations).
A class for singleton types of the form <prefix>.<sym.name>.type
.
An extractor class to create and pattern match with syntax SingleType(pre, sym)
Here, pre
is the prefix of the single-type, and sym
is the stable value symbol
referred to by the single-type.
The type of Scala singleton types, i.
A base class for types that defer some operations to their immediate supertype.
The SuperType
type is not directly written, but arises when C.super
is used
as a prefix in a TypeRef
or SingleType
.
An extractor class to create and pattern match with syntax SingleType(thistpe, supertpe)
A class for this-types of the form <sym>.
An extractor class to create and pattern match with syntax ThisType(sym)
where sym
is the class prefix of the this type.
The base class for all types
A class for the bounds of abstract types and type parameters
An extractor class to create and pattern match with syntax TypeBound(lower, upper)
Here, lower
is the lower bound of the TypeBounds
pair, and upper
is
the upper bound.
A class expressing upper and lower bounds constraints of type variables, as well as their instantiations.
A class for named types of the form
<prefix>.<sym.name>[args]
Cannot be created directly; one should always use typeRef
for creation.
An extractor class to create and pattern match with syntax TypeRef(pre, sym, args)
Here, pre
is the prefix of the type reference, sym
is the symbol
referred to by the type reference, and args
is a possible empty list of
type argumenrts.
A class representing a type variable: not used after phase typer
.
The constructor/deconstructor for ClassInfoType
instances.
The constructor/deconstructor for ConstantType
instances.
An object representing an erroneous type
The constructor/deconstructor for MethodType
instances.
An object representing a non-existing prefix
An object representing a non-existing type
The constructor/deconstructor for RefinedType
instances.
The constructor/deconstructor for SingleType
instances.
The constructor/deconstructor for SuperType
instances.
The constructor/deconstructor for ThisType
instances.
The constructor/deconstructor for TypeBounds
instances.
The constructor/deconstructor for TypeRef
instances.
An object representing an unknown type, used during type inference.
Creator for AnnotatedTypes.
Creator for AnnotatedTypes. It returns the underlying type if annotations.isEmpty rather than walking into the assertion.
A creator for type applications
Again avoiding calling length, but the lengthCompare interface is clunky.
The maximum number of recursions allowed in toString
the canonical creator for a refined type with a given scope
True if two lists have the same length.
True if two lists have the same length. Since calling length on linear sequences is O(n), it is an inadvisable way to test length equality.
The canonical creator for single-types