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.
The ClassInfo type signature is used to define parents and declarations
of classes, traits, and objects.
The ClassInfo type signature is used to define parents and declarations
of classes, traits, and objects. If a class, trait, or object C is declared like this
C extends P_1 with ... with P_m { D_1; ...; D_n}
its ClassInfo type has the following form:
ClassInfo(List(P_1, ..., P_m), Scope(D_1, ..., D_n), C)
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 subtype of Type representing refined types as well as ClassInfo signatures.
The ConstantType type is not directly written in user programs, but arises as the type of a constant.
The ConstantType type is not directly written in user programs, but arises as the type of a constant.
The REPL expresses constant types like Int(11). Here are some constants with their types.
1 ConstantType(Constant(1))
"abc" ConstantType(Constant("abc"))
An extractor class to create and pattern match with syntax ConstantType(constant)
Here, constant is the constant value represented by the type.
The MethodType type signature is used to indicate parameters and result type of a method
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.
The RefinedType type defines types of any of the forms on the left,
with their RefinedType representations to the right.
The RefinedType type defines types of any of the forms on the left,
with their RefinedType representations to the right.
P_1 with ... with P_m { D_1; ...; D_n} RefinedType(List(P_1, ..., P_m), Scope(D_1, ..., D_n))
P_1 with ... with P_m RefinedType(List(P_1, ..., P_m), Scope())
{ D_1; ...; D_n} RefinedType(List(AnyRef), Scope(D_1, ..., D_n))
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.
The SingleType type describes types of any of the forms on the left,
with their TypeRef representations to the right.
The SingleType type describes types of any of the forms on the left,
with their TypeRef representations to the right.
(T # x).type SingleType(T, x)
p.x.type SingleType(p.type, x)
x.type SingleType(NoPrefix, x)
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.
The type of Scala singleton types, i.e. types that are inhabited by only one nun-null value. These include types of the forms
C.this.type C.super.type x.type
as well as constant types.
The SuperType type is not directly written, but arises when C.super is used
as a prefix in a TypeRef or SingleType.
The SuperType type is not directly written, but arises when C.super is used
as a prefix in a TypeRef or SingleType. It's internal presentation is
SuperType(thistpe, supertpe)
Here, thistpe is the type of the corresponding this-type. For instance,
in the type arising from C.super, the thistpe part would be ThisType(C).
supertpe is the type of the super class referred to by the super.
An extractor class to create and pattern match with syntax SingleType(thistpe, supertpe)
The ThisType type describes types of the form on the left with the
correspnding ThisType representations to the right.
The ThisType type describes types of the form on the left with the
correspnding ThisType representations to the right.
C.this.type ThisType(C)
An extractor class to create and pattern match with syntax ThisType(sym)
where sym is the class prefix of the this type.
The type of Scala types, and also Scala type signatures.
The type of Scala types, and also Scala type signatures. (No difference is internally made between the two).
The TypeBounds type signature is used to indicate lower and upper type bounds
of type parameters and abstract types.
The TypeBounds type signature is used to indicate lower and upper type bounds
of type parameters and abstract types. It is not a first-class type.
If an abstract type or type parameter is declared with any of the forms
on the left, its type signature is the TypeBounds type on the right.
T >: L <: U TypeBounds(L, U)
T >: L TypeBounds(L, Any)
T <: U TypeBounds(Nothing, U)
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.
The TypeRef type describes types of any of the forms on the left,
with their TypeRef representations to the right.
The TypeRef type describes types of any of the forms on the left,
with their TypeRef representations to the right.
T # C[T_1, ..., T_n] TypeRef(T, C, List(T_1, ..., T_n))
p.C[T_1, ..., T_n] TypeRef(p.type, C, List(T_1, ..., T_n))
C[T_1, ..., T_n] TypeRef(NoPrefix, C, List(T_1, ..., T_n))
T # C TypeRef(T, C, Nil)
p.C TypeRef(p.type, C, Nil)
C TypeRef(NoPrefix, C, Nil)
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.
The constructor/deconstructor for ClassInfoType instances.
The constructor/deconstructor for ConstantType instances.
The constructor/deconstructor for MethodType instances.
This constant is used as a special value denoting the empty prefix in a path dependent type.
This constant is used as a special value denoting the empty prefix in a path dependent type.
For instance x.type is represented as SingleType(NoPrefix, <x>), where <x> stands for
the symbol for x.
This constant is used as a special value that indicates that no meaningful type exists.
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.