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.
Alternatives of patterns, eliminated by explicitouter, except for occurrences in encoded Switch stmt (=remaining Match(CaseDef(.
A tree that has an annotation attached to it.
Applied type <tpt> [ <args> ], eliminated by RefCheck
Value application
Dynamic value application.
Array of expressions, needs to be translated in backend,
Assignment
Bind of a variable to a rhs pattern, eliminated by explicitouter
Block of expressions (semicolon separated expressions)
Case clause in a pattern match, eliminated during explicitouter (except for occurrences in switch statements)
A class definition.
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.
Commented expression
A subtype of Type representing refined types as well as ClassInfo signatures.
A subtype of Type representing refined types as well as ClassInfo signatures.
Intersection type <parent1> with .
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.
A method or macro definition.
A tree which defines a symbol-carrying entity.
A tree for a function expression.
Anonymous function, eliminated by analyzer
Common base class for Apply and TypeApply.
Identifier <name>
Conditional expression
A common base class for class and object definitions.
Import clause
Import selector
Infix application
Infix extraction, for example case x :: rest
A labelled expression.
Literal
- Pattern matching expression (before explicitouter)
Common base class for all member definitions: types, classes, objects, packages, vals and vars, defs.
The MethodType type signature is used to indicate parameters and result type of a method
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.
An object definition, e.
Object instantiation One should always use factory method below to build a user level new.
A packaging, such as package pid { stats }
A tree which references a symbol-carrying entity.
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.
Return expression
Designator <qualifier> .
Type selection <qualifier> # <name>, eliminated by RefCheck
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.
Singleton type, eliminated by RefCheck
Repetition of pattern, eliminated by explicitouter
Super reference, qual = corresponding this reference
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)
A tree with a mutable symbol field, initialized to NoSymbol.
Instantiation template of a class or trait
A tree for a term.
Self reference
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.
Throw expression
Tree is the basis for scala's abstract syntax.
A tree for a 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).
Explicit type application.
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.
An abstract type, a type parameter, or a type alias.
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.
A synthetic tree holding an arbitrary type.
Type annotation, eliminated by explicit outer
A constant value definition (this includes vars as well, which differ from vals only in having the MUTABLE flag set in their Modifiers.
A common base class for ValDefs and DefDefs.
The constructor/deconstructor for ClassInfoType instances.
The constructor/deconstructor for ClassInfoType instances.
The constructor/deconstructor for ConstantType instances.
The constructor/deconstructor for ConstantType instances.
The constructor/deconstructor for MethodType 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.
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 RefinedType instances.
The constructor/deconstructor for SingleType instances.
The constructor/deconstructor for SingleType instances.
The constructor/deconstructor for SuperType instances.
The constructor/deconstructor for SuperType instances.
The constructor/deconstructor for ThisType instances.
The constructor/deconstructor for ThisType instances.
The constructor/deconstructor for TypeBounds instances.
The constructor/deconstructor for TypeBounds instances.
The constructor/deconstructor for TypeRef instances.
The constructor/deconstructor for TypeRef instances.
Hook to define what show(tree) means.
Hook to define what show(tree) means.
The empty tree