Let's say you have a type definition
Let's say you have a type definition
type T <: Number
and tsym is the symbol corresponding to T. Then
tsym is an instance of AbstractTypeSymbol tsym.info == TypeBounds(Nothing, Number) tsym.tpe == TypeRef(NoPrefix, T, List())
The API that all alternatives support
An extractor class to create and pattern match with syntax Alternative(trees).
The API that all annotateds support
An extractor class to create and pattern match with syntax Annotated(annot, arg).
A type carrying some annotations.
A type carrying some annotations. Created by the typechecker when eliminating Annotated trees (see typedAnnotated).
The API that all annotated types support.
An extractor class to create and pattern match with syntax
AnnotatedType(annotations, underlying, selfsym).
The API of Annotation instances.
An additional checker for annotations on types.
An additional checker for annotations on types. Typically these are registered by compiler plugins with the addAnnotationChecker method.
An extractor class to create and pattern match with syntax Annotation(tpe, scalaArgs, javaArgs).
Typed information about an annotation.
Typed information about an annotation. It can be attached to either a symbol or an annotated type.
Annotations are written to the classfile as Java annotations
if atp conforms to ClassfileAnnotation (the classfile parser adds
this interface to any Java annotation class).
Annotations are pickled (written to scala symtab attribute in the
classfile) if atp inherits form StaticAnnotation.
args stores arguments to Scala annotations, represented as typed
trees. Note that these trees are not transformed by any phases
following the type-checker.
assocs stores arguments to classfile annotations as name-value pairs.
A class remembering a type instantiation for some a set of overloaded polymorphic symbols.
A class remembering a type instantiation for some a set of overloaded
polymorphic symbols.
Not used after phase typer.
The API that all applied type trees support
An extractor class to create and pattern match with syntax AppliedTypeTree(tpt, args).
Precondition: zipped params/args nonEmpty.
Precondition: zipped params/args nonEmpty. (Size equivalence enforced structurally.)
The API that all applies support
An extractor class to create and pattern match with syntax Apply(fun, args).
Represents an array of classfile annotation arguments
Represents an array of classfile annotation arguments
API of ArrayArgument instances.
An extractor class to create and pattern match with syntax ArrayArgument(args)
where args is the argument array.
An array of expressions.
An array of expressions. This AST node needs to be translated in backend. It is used to pass arguments to vararg arguments. Introduced by compiler phase uncurry.
This AST node does not have direct correspondence to Scala code, and is used to pass arguments to vararg arguments. For instance:
printf("%s%d", foo, 42)
Is translated to after compiler phase uncurry to:
Apply( Ident("printf"), Literal("%s%d"), ArrayValue(<Any>, List(Ident("foo"), Literal(42))))
A map to compute the asSeenFrom method.
A map to compute the asSeenFrom method.
The API that all assigns support
An extractor class to create and pattern match with syntax Assign(lhs, rhs).
The API that all assigns support
An extractor class to create and pattern match with syntax AssignOrNamedArg(lhs, rhs).
Common code between reflect-internal Symbol and Tree related to Attachments.
Common code between reflect-internal Symbol and Tree related to Attachments.
The API of reflection artifacts that support scala.reflect.macros.Attachments.
Note: constructor is protected to force everyone to use the factory method newBaseTypeSeq instead.
Note: constructor is protected to force everyone to use the factory method newBaseTypeSeq instead. This is necessary because when run from reflection every base type sequence needs to have a SynchronizedBaseTypeSeq as mixin.
The API that all binds support
An extractor class to create and pattern match with syntax Bind(name, body).
The API that all blocks support
An extractor class to create and pattern match with syntax Block(stats, expr).
BoundedWildcardTypes, used only during type inference, are created in two places that I can find:
BoundedWildcardTypes, used only during type inference, are created in two places that I can find:
The API that all this types support.
An extractor class to create and pattern match with syntax BoundedWildcardTypeExtractor(bounds)
with bounds denoting the type bounds.
The API that all case defs support
An extractor class to create and pattern match with syntax CaseDef(pat, guard, body).
The API that all class defs support
An extractor class to create and pattern match with syntax ClassDef(mods, name, tparams, impl).
A class representing a class info
A class representing a class info
The API that all class info types support.
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 mirror that reflects the instance parts of a runtime class.
A class for class symbols
A class for class symbols
The API of class symbols.
Arguments to classfile annotations (which are written to bytecode as java annotations) are either:
Arguments to classfile annotations (which are written to bytecode as java annotations) are either:
A map to implement the collect method.
A map to implement the collect method.
The type of compilation units.
Compilation unit describes a unit of work of the compilation run.
A common base class for intersection types and class types
A common base class for intersection types and class types
The API that all compound type trees support
An extractor class to create and pattern match with syntax CompoundTypeTree(templ).
Stores the trees that give rise to a refined type to be used in reification.
Stores the trees that give rise to a refined type to be used in reification.
Unfortunately typed CompoundTypeTree is lacking essential info, and the reifier cannot use CompoundTypeTree.tpe.
Therefore we need this hack (see Reshape.toPreTyperTypeTree for a detailed explanation).
The API of Constant instances.
An extractor class to create and pattern match with syntax Constant(value)
where value is the Scala value of the constant.
A class representing a constant type.
A class representing a constant type.
The API that all constant types support.
An extractor class to create and pattern match with syntax ConstantType(constant)
Here, constant is the constant value represented by the type.
A map to implement the contains method.
A map to implement the contains method.
A map to implement the contains method.
A map to implement the contains method.
An exception for cyclic references of symbol definitions
An exception for cyclic references of symbol definitions
The API that all def defs support
An extractor class to create and pattern match with syntax DefDef(mods, name, tparams, vparamss, tpt, rhs).
The API that all def trees support
Defines standard symbols (and types via its base trait).
The API that all applied type trees support
An extractor class to create and pattern match with syntax DependentTypeTree(tpt, args).
A temporary type representing the erasure of a user-defined value type.
A temporary type representing the erasure of a user-defined value type. Created during phase erasure, eliminated again in posterasure.
The error scope.
The error scope.
Used by existentialAbstraction.
Used by existentialAbstraction.
The API that all existential types support.
An extractor class to create and pattern match with syntax
ExistentialType(quantified, underlying).
The API that all existential type trees support
An extractor class to create and pattern match with syntax ExistentialTypeTree(tpt, whereClauses).
Expr wraps an abstract syntax tree and tags it with its type.
A mirror that reflects a field.
A map to implement the filter method.
A map to implement the filter method.
A map to implement the filter method.
A map to implement the filter method.
A marker trait representing an as-yet unevaluated type which doesn't assign flags to the underlying symbol.
A marker trait representing an as-yet unevaluated type which doesn't assign flags to the underlying symbol.
A marker trait representing an as-yet unevaluated type which assigns flags to the underlying symbol.
A marker trait representing an as-yet unevaluated type which assigns flags to the underlying symbol.
The API of FlagSet instances.
All possible values that can constitute flag sets.
The API of free term symbols.
The API of free type symbols.
The API that all functions support
An extractor class to create and pattern match with syntax Function(vparams, body).
The API that all applies support
Precondition: params.
Precondition: params.nonEmpty. (args.nonEmpty enforced structurally.)
The API that all idents support
The extended API of idents that's supported in macro context universes
An extractor class to create and pattern match with syntax Ident(qual, name).
The API that all ifs support
An extractor class to create and pattern match with syntax If(cond, thenp, elsep).
The API that all impl defs support
The API that all imports support
An extractor class to create and pattern match with syntax Import(expr, selectors).
The API that all import selectors support
An extractor class to create and pattern match with syntax ImportSelector(name:, namePos, rename, renamePos).
The API of importers.
A mirror that reflects a runtime value.
Note: This map is needed even for non-dependent method types, despite what the name might imply.
Note: This map is needed even for non-dependent method types, despite what the name might imply.
The API of a mirror for a reflective universe
The API of a mirror for a reflective universe
This should be the first trait in the linearization.
This should be the first trait in the linearization.
The API that all label defs support
An extractor class to create and pattern match with syntax LabelDef(name, params, rhs).
Symbol annotations parsed in Namer (typeCompleter of
definitions) have to be lazy (#1782)
Symbol annotations parsed in Namer (typeCompleter of
definitions) have to be lazy (#1782)
The type completer for packages.
The type completer for packages.
A class representing an as-yet unevaluated type.
A class representing an as-yet unevaluated type.
Represents a compile-time Constant (Boolean, Byte, Short,
Char, Int, Long, Float, Double, String, java.lang.Class or
an instance of a Java enumeration value).
Represents a compile-time Constant (Boolean, Byte, Short,
Char, Int, Long, Float, Double, String, java.lang.Class or
an instance of a Java enumeration value).
The API that all literals support
The API of LiteralArgument instances.
An extractor class to create and pattern match with syntax LiteralArgument(value)
where value is the constant argument.
An extractor class to create and pattern match with syntax Literal(value).
Symbol that represents a family of overloaded type macros in the realm of types.
Symbol that represents a family of overloaded type macros in the realm of types.
type T = macro impl
gets parsed into:
<macro> def T$macro = macro impl // this symbol is called "type macro" // it is represented by a regular MethodSymbol
When a desugared type macro tree shown above gets entered in Namer, the namer synthesizes a macro type:
<macro> type T = Nothing // this symbol is called "macro type" // it gets a dedicated MacroTypeSymbol symbol class
A throwable signalling a malformed type
A throwable signalling a malformed type
The API that all matches support
An extractor class to create and pattern match with syntax Match(selector, cases).
The API that all member defs support
The API that all member scopes support
A mirror that reflects a method.
A class for method symbols
A class for method symbols
The API of method symbols.
A class representing a method type with parameters.
A class representing a method type with parameters. Note that a parameterless method is represented by a NullaryMethodType:
def m(): Int MethodType(Nil, Int) def m: Int NullaryMethodType(Int)
The API that all method types support.
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.
In runtime reflection universes, mirrors are JavaMirrors.
In runtime reflection universes, mirrors are JavaMirrors.
The API that all Modifiers support
An extractor class to create and pattern match with syntax Modifiers(flags, privateWithin, annotations).
A class for module class symbols Note: Not all module classes are of this type; when unpickled, we get plain class symbols!
A class for module class symbols Note: Not all module classes are of this type; when unpickled, we get plain class symbols!
The API that all module defs support
An extractor class to create and pattern match with syntax ModuleDef(mods, name, impl).
A mirror that reflects a Scala object definition or the static parts of a runtime class.
A class for module symbols
A class for module symbols
The API of module symbols.
The name class.
The name class. TODO - resolve schizophrenia regarding whether to treat Names as Strings or Strings as Names. Give names the key functions the absence of which make people want Strings all the time.
The API of Name instances.
An ADT to represent the results of symbol name lookups.
An ADT to represent the results of symbol name lookups.
FIXME: This is a good example of something which is pure "value class" but cannot reap the benefits because an (unused) $outer pointer so it is not single-field.
FIXME: This is a good example of something which is pure "value class" but cannot reap the benefits because an (unused) $outer pointer so it is not single-field.
The API that all name trees support
A class representing types with a name.
A class representing types with a name. When an application uses named arguments, the named argument types for calling isApplicable are represented as NamedType.
Defines standard names, common for term and type names: These can be accessed via the nme and tpnme members.
Represents a nested classfile annotation
Represents a nested classfile annotation
API of NestedArgument instances.
An extractor class to create and pattern match with syntax NestedArgument(annotation)
where annotation is the nested annotation.
The API that all news support
An extractor class to create and pattern match with syntax New(tpt).
An object representing a missing symbol
An object representing a missing symbol
The API that all nullary method types support.
An extractor class to create and pattern match with syntax NullaryMethodType(resultType).
A class containing the alternatives and type prefix of an overloaded symbol.
A class containing the alternatives and type prefix of an overloaded symbol.
Not used after phase typer.
The API that all package defs support
An extractor class to create and pattern match with syntax PackageDef(pid, stats).
A period is an ordinal number for a phase in a run.
A period is an ordinal number for a phase in a run. Phases in later runs have higher periods than phases in earlier runs. Later phases have higher periods than earlier phases in the same run.
A type function or the type of a polymorphic value (and thus of kind *).
A type function or the type of a polymorphic value (and thus of kind *).
Before the introduction of NullaryMethodType, a polymorphic nullary method (e.g, def isInstanceOf[T]: Boolean) used to be typed as PolyType(tps, restpe), and a monomorphic one as PolyType(Nil, restpe) This is now: PolyType(tps, NullaryMethodType(restpe)) and NullaryMethodType(restpe) by symmetry to MethodTypes: PolyType(tps, MethodType(params, restpe)) and MethodType(params, restpe)
Thus, a PolyType(tps, TypeRef(...)) unambiguously indicates a type function (which results from eta-expanding a type constructor alias). Similarly, PolyType(tps, ClassInfoType(...)) is a type constructor.
A polytype is of kind * iff its resultType is a (nullary) method type.
The API that all polymorphic types support.
An extractor class to create and pattern match with syntax PolyType(typeParams, resultType).
Defines a universe-specific notion of positions.
Defines a universe-specific notion of positions. The main documentation entry about positions is located at scala.reflect.api.Position.
An exception for cyclic references from which we can recover
An exception for cyclic references from which we can recover
The API that all ref trees support
An extractor class to create and pattern match with syntax RefTree(qual, name).
The API that all references support
An extractor class to create and pattern match with syntax ReferenceToBoxed(ident).
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.
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.
The API that all refined types support.
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 mirror that reflects instances and static classes.
As with NamedType, used only when calling isApplicable.
As with NamedType, used only when calling isApplicable. Records that the application has a wildcard star (aka _*) at the end of it.
The API that all returns support
An extractor class to create and pattern match with syntax Return(expr).
A proxy for a type (identified by field underlying) that forwards most
operations to it.
A proxy for a type (identified by field underlying) that forwards most
operations to it. Every operation that is overridden for some kind of types is
forwarded here. Some operations are rewrapped again.
The type of compilation runs.
Compilation run uniquely identifies current invocation of the compiler (e.
An ordinal number for compiler runs.
An ordinal number for compiler runs. First run has number 1.
In runtime reflection universes, runtime representation of a class is java.lang.Class.
In runtime reflection universes, runtime representation of a class is java.lang.Class.
The API of a mirror for a reflective universe.
A specific annotation argument that encodes an array of bytes as an
array of Long.
A specific annotation argument that encodes an array of bytes as an
array of Long. The type of the argument declared in the annotation
must be String. This specialised class is used to encode Scala
signatures for reasons of efficiency, both in term of class-file size
and in term of compiler performance.
Note: constructor is protected to force everyone to use the factory methods newScope or newNestedScope instead.
Note: constructor is protected to force everyone to use the factory methods newScope or newNestedScope instead. This is necessary because when run from reflection every scope needs to have a SynchronizedScope as mixin.
The API that all scopes support
The API that all selects support
An extractor class to create and pattern match with syntax Select(qual, name).
The API that all selects from type trees support
An extractor class to create and pattern match with syntax SelectFromTypeTree(qualifier, name).
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 proxy for a type (identified by field underlying) that forwards most
operations to it (for exceptions, see WrappingProxy, which forwards even more operations).
every operation that is overridden for some kind of types should be forwarded.
A class for singleton types of the form <prefix>.<sym.name>.type.
A class for singleton types of the form <prefix>.<sym.name>.type.
Cannot be created directly; one should always use singleType for creation.
The API that all single types support.
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.
A base class for types that represent a single value (single-types and this-types).
A base class for types that represent a single value (single-types and this-types).
The API that all singleton type trees support
An extractor class to create and pattern match with syntax SingletonTypeTree(ref).
Defines standard types.
The API that all stars support
An extractor class to create and pattern match with syntax Star(elem).
A base class for types that defer some operations to their immediate supertype.
A base class for types that defer some operations to their immediate supertype.
A base class to compute all substitutions
A base class to compute all substitutions
A map to implement the substSym method.
A map to implement the substSym method.
A map to implement the substThis method.
A map to implement the substThis method.
A map to implement the subst method.
A map to implement the subst method.
The API that all supers support
An extractor class to create and pattern match with syntax Super(qual, mix).
The API that all super types support.
An extractor class to create and pattern match with syntax SingleType(thistpe, supertpe)
The API that all sym trees support
The extended API of sym trees that's supported in macro context universes
The class for all symbols
The class for all symbols
The API of symbols.
The extended API of symbols that's supported in macro context universes
The API that all templates support
An extractor class to create and pattern match with syntax Template(parents, self, body).
A mirror that reflects the instance or static parts of a runtime class.
An extractor class to create and pattern match with syntax TermName(s).
Defines standard term names that can be accessed via the nme member.
A class for term symbols
A class for term symbols
The API of term symbols.
The API that all term trees support
The API that all thises support
An extractor class to create and pattern match with syntax This(qual).
Substitute clazz.
Substitute clazz.this with to. to must be an attributed tree.
A class for this-types of the form <sym>.
A class for this-types of the form <sym>.this.type
The API that all this types support.
An extractor class to create and pattern match with syntax ThisType(sym)
where sym is the class prefix of the this type.
The API that all tries support
An extractor class to create and pattern match with syntax Throw(expr).
The standard completer for top-level classes
The standard completer for top-level classes
A class that implement a default tree transformation strategy: breadth-first component-wise cloning.
A class that implement a default tree traversal strategy: breadth-first component-wise.
The API that all trees support.
The extended API of trees that's supported in macro context universes
The type of standard (lazy) tree copiers.
The API of a tree copier.
A transformer that replaces tree from with tree to in a given tree
A transformer that replaces tree from with tree to in a given tree
Substitute symbols in from with symbols in to.
Substitute symbols in from with symbols in to. Returns a new
tree using the new symbols and whose Ident and Select nodes are
name-consistent with the new symbols.
The API that all tries support
An extractor class to create and pattern match with syntax Try(block, catches, finalizer).
The API that all typ trees support
The base class for all types
The base class for all types
The API of types.
The API that all type applies support
An extractor class to create and pattern match with syntax TypeApply(fun, args).
A class for the bounds of abstract types and type parameters
A class for the bounds of abstract types and type parameters
The API that all type bounds support.
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 API that all type bound trees support
An extractor class to create and pattern match with syntax TypeBoundsTree(lo, hi).
A class expressing upper and lower bounds constraints of type variables, as well as their instantiations.
A class expressing upper and lower bounds constraints of type variables, as well as their instantiations.
The API that all type defs support
An extractor class to create and pattern match with syntax TypeDef(mods, name, tparams, rhs).
A throwable signalling a type error
A throwable signalling a type error
A prototype for mapping a function over all possible types
A prototype for mapping a function over all possible types
An extractor class to create and pattern match with syntax TypeName(s).
Defines standard type names that can be accessed via the tpnme member.
A class for named types of the form
<prefix>.<sym.name>[args]
Cannot be created directly; one should always use typeRef
for creation.
A class for named types of the form
<prefix>.<sym.name>[args]
Cannot be created directly; one should always use typeRef
for creation. (@M: Otherwise hashing breaks)
The API that all type refs support.
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 for type parameters viewed from inside their scopes
A class for type parameters viewed from inside their scopes
A class of type symbols.
A class of type symbols. Alias and abstract types are direct instances of this class. Classes are instances of a subclass.
The API of type symbols.
A TypeTag is a scala.reflect.api.TypeTags#WeakTypeTag with the additional
static guarantee that all type references are concrete, i.
The API that all type trees support
The extended API of sym trees that's supported in macro context universes
An extractor class to create and pattern match with syntax TypeTree().
A class representing a type variable: not used after phase typer.
A class representing a type variable: not used after phase typer.
A higher-kinded TypeVar has params (Symbols) and typeArgs (Types). A TypeVar with nonEmpty typeArgs can only be instantiated by a higher-kinded type that can be applied to those args. A TypeVar is much like a TypeRef, except it has special logic for equality and subtyping.
Precondition for this class, enforced structurally: args.isEmpty && params.isEmpty.
The API that all typeds support
An extractor class to create and pattern match with syntax Typed(expr, tpt).
The API that all unapplies support
An extractor class to create and pattern match with syntax UnApply(fun, args).
A type that can be passed to unique(.
A type that can be passed to unique(..) and be stored in the uniques map.
The API that all val defs support
An extractor class to create and pattern match with syntax ValDef(mods, name, tpt, rhs).
The API that all val defs and def defs support
Used in Refchecks.
Used in Refchecks. TODO - eliminate duplication with varianceInType
If an implicit value of type WeakTypeTag[T] is required, the compiler will create one,
and the reflective representation of T can be accessed via the tpe field.
(Since version 2.11.0) Use ModifiersExtractor instead
Test two objects for inequality.
Test two objects for inequality.
true if !(this == that), false otherwise.
Equivalent to x.hashCode except for boxed numeric types and null.
Equivalent to x.hashCode except for boxed numeric types and null.
For numerics, it returns a hash value which is consistent
with value equality: if two value type instances compare
as true, then ## will produce the same hash value for each
of them.
For null returns a hashcode where null.hashCode throws a
NullPointerException.
a hash value consistent with ==
Test two objects for equality.
Test two objects for equality.
The expression x == that is equivalent to if (x eq null) that eq null else x.equals(that).
true if the receiver object is equivalent to the argument; false otherwise.
The constructor/extractor for Alternative instances.
The constructor/extractor for Alternative instances.
A tag that preserves the identity of the Alternative abstract type from erasure.
A tag that preserves the identity of the Alternative abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for Annotated instances.
The constructor/extractor for Annotated instances.
A tag that preserves the identity of the Annotated abstract type from erasure.
A tag that preserves the identity of the Annotated abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for AnnotatedType instances.
The constructor/extractor for AnnotatedType instances.
A tag that preserves the identity of the AnnotatedType abstract type from erasure.
A tag that preserves the identity of the AnnotatedType abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for Annotation instances.
The constructor/extractor for Annotation instances.
A tag that preserves the identity of the Annotation abstract type from erasure.
A tag that preserves the identity of the Annotation abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for AppliedTypeTree instances.
The constructor/extractor for AppliedTypeTree instances.
A tag that preserves the identity of the AppliedTypeTree abstract type from erasure.
A tag that preserves the identity of the AppliedTypeTree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A factory method for Apply nodes.
A factory method for Apply nodes.
The constructor/extractor for Apply instances.
The constructor/extractor for Apply instances.
0-1 argument list new, based on a type tree.
0-1 argument list new, based on a type tree.
A tag that preserves the identity of the Apply abstract type from erasure.
A tag that preserves the identity of the Apply abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for ArrayArgument instances.
The constructor/extractor for ArrayArgument instances.
A tag that preserves the identity of the ArrayArgument abstract type from erasure.
A tag that preserves the identity of the ArrayArgument abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for Assign instances.
The constructor/extractor for Assign instances.
The constructor/extractor for AssignOrNamedArg instances.
The constructor/extractor for AssignOrNamedArg instances.
A tag that preserves the identity of the AssignOrNamedArg abstract type from erasure.
A tag that preserves the identity of the AssignOrNamedArg abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the Assign abstract type from erasure.
A tag that preserves the identity of the Assign abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
When present, indicates that the host Ident has been created from a backquoted identifier.
When present, indicates that the host Ident has been created from a backquoted identifier.
A factory method for Bind nodes.
A factory method for Bind nodes.
The constructor/extractor for Bind instances.
The constructor/extractor for Bind instances.
A tag that preserves the identity of the Bind abstract type from erasure.
A tag that preserves the identity of the Bind abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
Block factory that flattens directly nested blocks.
Block factory that flattens directly nested blocks.
The constructor/extractor for Block instances.
The constructor/extractor for Block instances.
A tag that preserves the identity of the Block abstract type from erasure.
A tag that preserves the identity of the Block abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for BoundedWildcardType instances.
The constructor/extractor for BoundedWildcardType instances.
A tag that preserves the identity of the BoundedWildcardType abstract type from erasure.
A tag that preserves the identity of the BoundedWildcardType abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
casedef shorthand
casedef shorthand
The constructor/extractor for CaseDef instances.
The constructor/extractor for CaseDef instances.
A tag that preserves the identity of the CaseDef abstract type from erasure.
A tag that preserves the identity of the CaseDef abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
the class symbol
the implementation template
The constructor/extractor for ClassDef instances.
The constructor/extractor for ClassDef instances.
A tag that preserves the identity of the ClassDef abstract type from erasure.
A tag that preserves the identity of the ClassDef abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for ClassInfoType instances.
The constructor/extractor for ClassInfoType instances.
A tag that preserves the identity of the ClassInfoType abstract type from erasure.
A tag that preserves the identity of the ClassInfoType abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the ClassSymbol abstract type from erasure.
A tag that preserves the identity of the ClassSymbol abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the CompoundType abstract type from erasure.
A tag that preserves the identity of the CompoundType abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for CompoundTypeTree instances.
The constructor/extractor for CompoundTypeTree instances.
A tag that preserves the identity of the CompoundTypeTree abstract type from erasure.
A tag that preserves the identity of the CompoundTypeTree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A writer that writes to the current Console and is sensitive to replacement of the Console's output stream.
A writer that writes to the current Console and is sensitive to replacement of the Console's output stream.
The constructor/extractor for Constant instances.
The constructor/extractor for Constant instances.
A tag that preserves the identity of the Constant abstract type from erasure.
A tag that preserves the identity of the Constant abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for ConstantType instances.
The constructor/extractor for ConstantType instances.
A tag that preserves the identity of the ConstantType abstract type from erasure.
A tag that preserves the identity of the ConstantType abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A factory method for ValDef nodes.
A factory method for ValDef nodes.
A factory method for ValDef nodes.
A factory method for ValDef nodes.
A DefDef with original trees attached to the TypeTree of each parameter
A DefDef with original trees attached to the TypeTree of each parameter
A factory method for ValDef nodes.
A factory method for ValDef nodes.
A factory method for ValDef nodes.
A factory method for ValDef nodes.
A factory method for ValDef nodes.
A factory method for ValDef nodes.
The constructor/extractor for DefDef instances.
The constructor/extractor for DefDef instances.
A tag that preserves the identity of the DefDef abstract type from erasure.
A tag that preserves the identity of the DefDef abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the DefTree abstract type from erasure.
A tag that preserves the identity of the DefTree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for DependentTypeTree instances.
The constructor/extractor for DependentTypeTree instances.
A tag that preserves the identity of the DependentTypeTree abstract type from erasure.
A tag that preserves the identity of the DependentTypeTree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The empty scope (immutable).
The empty scope (immutable).
The empty tree
The empty tree
A map to implement the contains method.
A map to implement the contains method.
An object representing an erroneous type
An object representing an erroneous type
The constructor/extractor for ExistentialType instances.
The constructor/extractor for ExistentialType instances.
A tag that preserves the identity of the ExistentialType abstract type from erasure.
A tag that preserves the identity of the ExistentialType abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for ExistentialTypeTree instances.
The constructor/extractor for ExistentialTypeTree instances.
A tag that preserves the identity of the ExistentialTypeTree abstract type from erasure.
A tag that preserves the identity of the ExistentialTypeTree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
Constructor/Extractor for Expr.
A module that contains all possible values that can constitute flag sets.
A module that contains all possible values that can constitute flag sets.
A tag that preserves the identity of the FlagSet abstract type from erasure.
A tag that preserves the identity of the FlagSet abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the FreeTermSymbol abstract type from erasure.
A tag that preserves the identity of the FreeTermSymbol abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the FreeTypeSymbol abstract type from erasure.
A tag that preserves the identity of the FreeTypeSymbol abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for Function instances.
The constructor/extractor for Function instances.
A tag that preserves the identity of the Function abstract type from erasure.
A tag that preserves the identity of the Function abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A creator and extractor for type parameterizations that strips empty type parameter lists.
A creator and extractor for type parameterizations that strips empty type parameter lists. Use this factory method to indicate the type has kind * (it's a polymorphic value) until we start tracking explicit kinds equivalent to typeFun (except that the latter requires tparams nonEmpty).
PP to AM: I've co-opted this for where I know tparams may well be empty, and
expecting to get back tpe in such cases. Re being "forgiving" below,
can we instead say this is the canonical creator for polyTypes which
may or may not be poly? (It filched the standard "canonical creator" name.)
A tag that preserves the identity of the GenericApply abstract type from erasure.
A tag that preserves the identity of the GenericApply abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A factory method for Ident nodes.
A factory method for Ident nodes.
A factory method for Ident nodes.
A factory method for Ident nodes.
The constructor/extractor for Ident instances.
The constructor/extractor for Ident instances.
A tag that preserves the identity of the Ident abstract type from erasure.
A tag that preserves the identity of the Ident abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for If instances.
The constructor/extractor for If instances.
A tag that preserves the identity of the If abstract type from erasure.
A tag that preserves the identity of the If abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the ImplDef abstract type from erasure.
A tag that preserves the identity of the ImplDef abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for Import instances.
The constructor/extractor for Import instances.
The constructor/extractor for ImportSelector instances.
The constructor/extractor for ImportSelector instances.
A tag that preserves the identity of the ImportSelector abstract type from erasure.
A tag that preserves the identity of the ImportSelector abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the Import abstract type from erasure.
A tag that preserves the identity of the Import abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the JavaArgument abstract type from erasure.
A tag that preserves the identity of the JavaArgument abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The canonical creator for implicit method types
The canonical creator for implicit method types
A factory method for LabelDef nodes.
A factory method for LabelDef nodes.
The constructor/extractor for LabelDef instances.
The constructor/extractor for LabelDef instances.
A tag that preserves the identity of the LabelDef abstract type from erasure.
A tag that preserves the identity of the LabelDef abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for Literal instances.
The constructor/extractor for Literal instances.
The constructor/extractor for LiteralArgument instances.
The constructor/extractor for LiteralArgument instances.
A tag that preserves the identity of the LiteralArgument abstract type from erasure.
A tag that preserves the identity of the LiteralArgument abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the Literal abstract type from erasure.
A tag that preserves the identity of the Literal abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for Match instances.
The constructor/extractor for Match instances.
A tag that preserves the identity of the Match abstract type from erasure.
A tag that preserves the identity of the Match abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the MemberDef abstract type from erasure.
A tag that preserves the identity of the MemberDef abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the MemberScope abstract type from erasure.
A tag that preserves the identity of the MemberScope abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the MethodSymbol abstract type from erasure.
A tag that preserves the identity of the MethodSymbol abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for MethodType instances.
The constructor/extractor for MethodType instances.
A tag that preserves the identity of the MethodType abstract type from erasure.
A tag that preserves the identity of the MethodType abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The factory for Modifiers instances.
The factory for Modifiers instances.
The factory for Modifiers instances.
The factory for Modifiers instances.
The constructor/extractor for Modifiers instances.
The constructor/extractor for Modifiers instances.
A tag that preserves the identity of the Modifiers abstract type from erasure.
A tag that preserves the identity of the Modifiers abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
the class symbol
the implementation template
The constructor/extractor for ModuleDef instances.
The constructor/extractor for ModuleDef instances.
A tag that preserves the identity of the ModuleDef abstract type from erasure.
A tag that preserves the identity of the ModuleDef abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the ModuleSymbol abstract type from erasure.
A tag that preserves the identity of the ModuleSymbol abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the Name abstract type from erasure.
A tag that preserves the identity of the Name abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the NameTree abstract type from erasure.
A tag that preserves the identity of the NameTree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for NestedArgument instances.
The constructor/extractor for NestedArgument instances.
A tag that preserves the identity of the NestedArgument abstract type from erasure.
A tag that preserves the identity of the NestedArgument abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
0-1 argument list new, based on a symbol.
0-1 argument list new, based on a symbol.
0-1 argument list new, based on a type.
0-1 argument list new, based on a type.
Factory method for object creation new tpt(args_1)...(args_n)
A New(t, as) is expanded to: (new t).<init>(as)
Factory method for object creation new tpt(args_1)...(args_n)
A New(t, as) is expanded to: (new t).<init>(as)
The constructor/extractor for New instances.
The constructor/extractor for New instances.
A tag that preserves the identity of the New abstract type from erasure.
A tag that preserves the identity of the New abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The empty set of flags
The empty set of flags
An empty Modifiers object: no flags, empty visibility annotation and no Scala annotations.
An empty Modifiers object: no flags, empty visibility annotation and no Scala annotations.
A special "missing" position.
A special "missing" position.
An object representing a non-existing prefix
An object representing a non-existing prefix
An object representing a non-existing type
An object representing a non-existing type
The constructor/extractor for NullaryMethodType instances.
The constructor/extractor for NullaryMethodType instances.
A tag that preserves the identity of the NullaryMethodType abstract type from erasure.
A tag that preserves the identity of the NullaryMethodType abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for PackageDef instances.
The constructor/extractor for PackageDef instances.
A tag that preserves the identity of the PackageDef abstract type from erasure.
A tag that preserves the identity of the PackageDef abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for PolyType instances.
The constructor/extractor for PolyType instances.
A tag that preserves the identity of the PolyType abstract type from erasure.
A tag that preserves the identity of the PolyType abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the Position abstract type from erasure.
A tag that preserves the identity of the Position abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for RefTree instances.
The constructor/extractor for RefTree instances.
A tag that preserves the identity of the RefTree abstract type from erasure.
A tag that preserves the identity of the RefTree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for ReferenceToBoxed instances.
The constructor/extractor for ReferenceToBoxed instances.
A tag that preserves the identity of the ReferenceToBoxed abstract type from erasure.
A tag that preserves the identity of the ReferenceToBoxed abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for RefinedType instances.
The constructor/extractor for RefinedType instances.
A tag that preserves the identity of the RefinedType abstract type from erasure.
A tag that preserves the identity of the RefinedType abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for Return instances.
The constructor/extractor for Return instances.
A tag that preserves the identity of the Return abstract type from erasure.
A tag that preserves the identity of the Return abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the Scope abstract type from erasure.
A tag that preserves the identity of the Scope abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A factory method for Select nodes.
A factory method for Select nodes.
A factory method for Select nodes.
The constructor/extractor for Select instances.
The constructor/extractor for Select instances.
The constructor/extractor for SelectFromTypeTree instances.
The constructor/extractor for SelectFromTypeTree instances.
A tag that preserves the identity of the SelectFromTypeTree abstract type from erasure.
A tag that preserves the identity of the SelectFromTypeTree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the Select abstract type from erasure.
A tag that preserves the identity of the Select abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for SingleType instances.
The constructor/extractor for SingleType instances.
A tag that preserves the identity of the SingleType abstract type from erasure.
A tag that preserves the identity of the SingleType abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the SingletonType abstract type from erasure.
A tag that preserves the identity of the SingletonType abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for SingletonTypeTree instances.
The constructor/extractor for SingletonTypeTree instances.
A tag that preserves the identity of the SingletonTypeTree abstract type from erasure.
A tag that preserves the identity of the SingletonTypeTree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for Star instances.
The constructor/extractor for Star instances.
A tag that preserves the identity of the Star abstract type from erasure.
A tag that preserves the identity of the Star abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
Adds the sm String interpolator to a scala.StringContext.
Adds the sm String interpolator to a scala.StringContext.
A factory method for Super nodes.
A factory method for Super nodes.
The constructor/extractor for Super instances.
The constructor/extractor for Super instances.
A tag that preserves the identity of the Super abstract type from erasure.
A tag that preserves the identity of the Super abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for SuperType instances.
The constructor/extractor for SuperType instances.
A tag that preserves the identity of the SuperType abstract type from erasure.
A tag that preserves the identity of the SuperType abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the SymTree abstract type from erasure.
A tag that preserves the identity of the SymTree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the Symbol abstract type from erasure.
A tag that preserves the identity of the Symbol abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for Template instances.
The constructor/extractor for Template instances.
A tag that preserves the identity of the Template abstract type from erasure.
A tag that preserves the identity of the Template abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for TermName instances.
The constructor/extractor for TermName instances.
A tag that preserves the identity of the TermName abstract type from erasure.
A tag that preserves the identity of the TermName abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the TermSymbol abstract type from erasure.
A tag that preserves the identity of the TermSymbol abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the TermTree abstract type from erasure.
A tag that preserves the identity of the TermTree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A factory method for This nodes.
A factory method for This nodes.
The constructor/extractor for This instances.
The constructor/extractor for This instances.
A tag that preserves the identity of the This abstract type from erasure.
A tag that preserves the identity of the This abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for ThisType instances.
The constructor/extractor for ThisType instances.
A tag that preserves the identity of the ThisType abstract type from erasure.
A tag that preserves the identity of the ThisType abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A factory method for Throw nodes.
A factory method for Throw nodes.
The constructor/extractor for Throw instances.
The constructor/extractor for Throw instances.
A tag that preserves the identity of the Throw abstract type from erasure.
A tag that preserves the identity of the Throw abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
Extracts symbol of thrown exception from AnnotationInfo.
Extracts symbol of thrown exception from AnnotationInfo.
Supports both “old-style” @throws(classOf[Exception])
as well as “new-stye” @throws[Exception]("cause") annotations.
A tag that preserves the identity of the Tree abstract type from erasure.
A tag that preserves the identity of the Tree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A factory method for Try nodes.
A factory method for Try nodes.
The constructor/extractor for Try instances.
The constructor/extractor for Try instances.
A tag that preserves the identity of the Try abstract type from erasure.
A tag that preserves the identity of the Try abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the TypTree abstract type from erasure.
A tag that preserves the identity of the TypTree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for TypeApply instances.
The constructor/extractor for TypeApply instances.
A tag that preserves the identity of the TypeApply abstract type from erasure.
A tag that preserves the identity of the TypeApply abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for TypeBounds instances.
The constructor/extractor for TypeBounds instances.
A tag that preserves the identity of the TypeBounds abstract type from erasure.
A tag that preserves the identity of the TypeBounds abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for TypeBoundsTree instances.
The constructor/extractor for TypeBoundsTree instances.
A tag that preserves the identity of the TypeBoundsTree abstract type from erasure.
A tag that preserves the identity of the TypeBoundsTree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A TypeDef node which defines abstract type or type parameter for given sym
A TypeDef node which defines abstract type or type parameter for given sym
A TypeDef node which defines given sym with given tight hand side rhs.
A TypeDef node which defines given sym with given tight hand side rhs.
The constructor/extractor for TypeDef instances.
The constructor/extractor for TypeDef instances.
A tag that preserves the identity of the TypeDef abstract type from erasure.
A tag that preserves the identity of the TypeDef abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for TypeName instances.
The constructor/extractor for TypeName instances.
A tag that preserves the identity of the TypeName abstract type from erasure.
A tag that preserves the identity of the TypeName abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for TypeRef instances.
The constructor/extractor for TypeRef instances.
A tag that preserves the identity of the TypeRef abstract type from erasure.
A tag that preserves the identity of the TypeRef abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the TypeSymbol abstract type from erasure.
A tag that preserves the identity of the TypeSymbol abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
Type tags corresponding to primitive types and constructor/extractor for WeakTypeTags.
A tag that preserves the identity of the Type abstract type from erasure.
A tag that preserves the identity of the Type abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A factory method for TypeTree nodes.
A factory method for TypeTree nodes.
The constructor/extractor for TypeTree instances.
The constructor/extractor for TypeTree instances.
A tag that preserves the identity of the TypeTree abstract type from erasure.
A tag that preserves the identity of the TypeTree abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for Typed instances.
The constructor/extractor for Typed instances.
A tag that preserves the identity of the Typed abstract type from erasure.
A tag that preserves the identity of the Typed abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
The constructor/extractor for UnApply instances.
The constructor/extractor for UnApply instances.
A tag that preserves the identity of the UnApply abstract type from erasure.
A tag that preserves the identity of the UnApply abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A factory method for ValDef nodes.
A factory method for ValDef nodes.
A factory method for ValDef nodes.
A factory method for ValDef nodes.
The constructor/extractor for ValDef instances.
The constructor/extractor for ValDef instances.
A tag that preserves the identity of the ValDef abstract type from erasure.
A tag that preserves the identity of the ValDef abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
A tag that preserves the identity of the ValOrDefDef abstract type from erasure.
A tag that preserves the identity of the ValOrDefDef abstract type from erasure.
Can be used for pattern matching, instance tests, serialization and likes.
Type tags corresponding to primitive types and constructor/extractor for WeakTypeTags.
An object representing an unknown type, used during type inference.
An object representing an unknown type, used during type inference. If you see WildcardType outside of inference it is almost certainly a bug.
Type with all top-level occurrences of abstract types replaced by their bounds
Type with all top-level occurrences of abstract types replaced by their bounds
AnnotationChecker.adaptBoundsToAnnotations
Register an annotation checker.
Register an annotation checker. Typically these are added by compiler plugins.
The API of FlagSet instances.
The API of FlagSet instances.
Make symbol sym a member of scope tp.decls
where thistp is the narrowed owner type of the scope.
Make symbol sym a member of scope tp.decls
where thistp is the narrowed owner type of the scope.
Creator for AnnotatedTypes.
Creator for AnnotatedTypes. It returns the underlying type if annotations.isEmpty rather than walking into the assertion.
AnnotationChecker.annotationsConform
AnnotationChecker.annotationsGlb
AnnotationChecker.annotationsLub
Very convenient.
Very convenient.
A creator for type applications
A creator for type applications
Convert array parameters denoting a repeated parameter of a Java method
to JavaRepeatedParamClass types.
Convert array parameters denoting a repeated parameter of a Java method
to JavaRepeatedParamClass types.
Cast the receiver object to be of type T0.
Cast the receiver object to be of type T0.
Note that the success of a cast at runtime is modulo Scala's erasure semantics.
Therefore the expression 1.asInstanceOf[String] will throw a ClassCastException at
runtime, while the expression List(1).asInstanceOf[List[String]] will not.
In the latter example, because the type argument is erased as part of compilation it is
not possible to check whether the contents of the list are of the requested type.
the receiver object.
if the receiver object is not an instance of the erasure of type T0.
Check that the executing thread is the compiler thread.
Check that the executing thread is the compiler thread. No-op here, overridden in interactive.Global.
Assigns a given position to all position-less nodes of a given AST.
Assigns a given position to all position-less nodes of a given AST.
Turns a path into a String, introducing backquotes as necessary.
Turns a path into a String, introducing backquotes as necessary.
Create a base type sequence consisting of a single type
Create a base type sequence consisting of a single type
Does this type have a prefix that begins with a type variable,
or is it a refinement type? For type prefixes that fulfil this condition,
type selections with the same name of equal (as determined by =:=) prefixes are
considered equal in regard to =:=.
Does this type have a prefix that begins with a type variable,
or is it a refinement type? For type prefixes that fulfil this condition,
type selections with the same name of equal (as determined by =:=) prefixes are
considered equal in regard to =:=.
Java binary names, like scala/runtime/Nothing$.
Java binary names, like scala/runtime/Nothing$.
Mark a variable as captured; i.
Mark a variable as captured; i.e. force boxing in a *Ref type.
Convert type of a captured variable to *Ref type.
Convert type of a captured variable to *Ref type.
Convert type of a captured variable to *Ref type.
Convert type of a captured variable to *Ref type.
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:
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
Memory to store all names sequentially.
Memory to store all names sequentially.
Create a copy of the receiver object.
Convenience functions which derive symbols by cloning.
Convenience functions which derive symbols by cloning.
Clone symbols and apply the given function to each new symbol's info.
Clone symbols and apply the given function to each new symbol's info.
the prototypical symbols
the function to apply to the infos
the newly created, info-adjusted symbols
Return closest enclosing method, unless shadowed by an enclosing class.
Return closest enclosing method, unless shadowed by an enclosing class.
Create the base type sequence of a compound type wuth given tp.
Create the base type sequence of a compound type wuth given tp.parents
Create a new MethodType of the same class as tp, i.
Create a new MethodType of the same class as tp, i.e. keep JavaMethodType
True if all three arguments have the same number of elements and the function is true for all the triples.
True if all three arguments have the same number of elements and the function is true for all the triples.
Functions which perform the standard clone/substituting on the given symbols and type, then call the creator function with the new symbols and type as arguments.
Functions which perform the standard clone/substituting on the given symbols and type, then call the creator function with the new symbols and type as arguments.
The current period.
The current period.
The current compiler run identifier.
The current compiler run identifier.
Prints a stack trace if -Ydebug or equivalent was given, otherwise does nothing.
Prints a stack trace if -Ydebug or equivalent was given, otherwise does nothing.
Override with final implementation for inlining.
Override with final implementation for inlining.
A value containing all standard definitions in DefinitionsApi
A value containing all standard definitions in DefinitionsApi
Map a list of type parameter symbols to skolemized symbols, which can be deskolemized to the original type parameter.
Map a list of type parameter symbols to skolemized symbols, which can be deskolemized to the original type parameter. (A skolem is a representation of a bound variable when viewed inside its scope.) !!!Adriaan: this does not work for hk types.
Derives a new list of symbols from the given list by mapping the given list across the given function.
Derives a new list of symbols from the given list by mapping the given list across the given function. Then fixes the info of all the new symbols by substituting the new symbols for the original symbols.
the prototypical symbols
the function to create new symbols
the new list of info-adjusted symbols
Derives a new Type by first deriving new symbols as in deriveSymbols,
then performing the same oldSyms => newSyms substitution on tpe as is
performed on the symbol infos in deriveSymbols.
Derives a new Type by first deriving new symbols as in deriveSymbols,
then performing the same oldSyms => newSyms substitution on tpe as is
performed on the symbol infos in deriveSymbols.
the prototypical symbols
the function to create new symbols
the prototypical type
the new symbol-subsituted type
Derives a new Type by instantiating the given list of symbols as WildcardTypes.
Derives a new Type by instantiating the given list of symbols as WildcardTypes.
the symbols to replace
the new type with WildcardType replacing those syms
Turn any T* types into Seq[T] except when in method parameter position.
Turn any T* types into Seq[T] except when in method parameter position.
Remove any occurrence of type <singleton> from this type and its parents
Remove any occurrence of type <singleton> from this type and its parents
An empty deferred value definition corresponding to:
val _: _
This is used as a placeholder in the self parameter Template if there is
no definition of a self value of self type.
An empty deferred value definition corresponding to:
val _: _
This is used as a placeholder in the self parameter Template if there is
no definition of a self value of self type.
Ensure that given tree has no positions that overlap with
any of the positions of others.
Ensure that given tree has no positions that overlap with
any of the positions of others. This is done by
shortening the range, assigning TransparentPositions
to some of the nodes in tree or focusing on the position.
Perform given operation at given phase.
Perform given operation at given phase.
Tests whether the argument (arg0) is a reference to the receiver object (this).
Tests whether the argument (arg0) is a reference to the receiver object (this).
The eq method implements an equivalence relation on
non-null instances of AnyRef, and has three additional properties:
x and y of type AnyRef, multiple invocations of
x.eq(y) consistently returns true or consistently returns false.x of type AnyRef, x.eq(null) and null.eq(x) returns false.null.eq(null) returns true. When overriding the equals or hashCode methods, it is important to ensure that their behavior is
consistent with reference equality. Therefore, if two objects are references to each other (o1 eq o2), they
should be equal to each other (o1 == o2) and they should hash to the same value (o1.hashCode == o2.hashCode).
true if the argument is a reference to the receiver object; false otherwise.
The equality method for reference types.
A creator for existential types.
A creator for existential types. This generates:
tpe1 where { tparams }
where tpe1 is the result of extrapolating tpe with respect to tparams.
Extrapolating means that type variables in tparams occurring
in covariant positions are replaced by upper bounds, (minus any
SingletonClass markers), type variables in tparams occurring in
contravariant positions are replaced by upper bounds, provided the
resulting type is legal with regard to stability, and does not contain any type
variable in tparams.
The abstraction drops all type parameters that are not directly or
indirectly referenced by type tpe1. If there are no remaining type
parameters, simply returns result type tpe.
Perform operation p on arguments tp1, arg2 and print trace of computation.
Perform operation p on arguments tp1, arg2 and print trace of computation.
If option explaintypes is set, print a subtype trace for op(found, required).
If option explaintypes is set, print a subtype trace for op(found, required).
If option explaintypes is set, print a subtype trace for found <:< required.
If option explaintypes is set, print a subtype trace for found <:< required.
Called by the garbage collector on the receiver object when there are no more references to the object.
Called by the garbage collector on the receiver object when there are no more references to the object.
The details of when and if the finalize method is invoked, as
well as the interaction between finalize and non-local returns
and exceptions, are all platform dependent.
From a list of types, find any which take type parameters where the type parameter bounds contain references to other any types in the list (including itself.
From a list of types, find any which take type parameters where the type parameter bounds contain references to other any types in the list (including itself.)
List of symbol pairs holding the recursive type parameter and the parameter which references it.
Returns string formatted according to given format string.
Returns string formatted according to given format string.
Format strings are as for String.format
(@see java.lang.String.format).
For fully qualified type names.
For fully qualified type names.
A representation that corresponds to the dynamic class of the receiver object.
A representation that corresponds to the dynamic class of the receiver object.
The nature of the representation is platform dependent.
a representation that corresponds to the dynamic class of the receiver object.
not specified by SLS as a member of AnyRef
The greatest lower bound of a list of types (as determined by <:<).
The greatest lower bound of a list of types (as determined by <:<).
The greatest lower bound of a list of types (as determined by <:<), which have been normalized
with regard to elimSuper.
The greatest lower bound of a list of types (as determined by <:<), which have been normalized
with regard to elimSuper.
Again avoiding calling length, but the lengthCompare interface is clunky.
Again avoiding calling length, but the lengthCompare interface is clunky.
The hashCode method for reference types.
Members which can be imported into other scopes.
Members which can be imported into other scopes.
The set of all installed infotransformers.
The set of all installed infotransformers.
Create a class and a companion object, enter in enclosing scope, and initialize with a lazy type completer.
Create a class and a companion object, enter in enclosing scope, and initialize with a lazy type completer.
The owner of the newly created class and object
The simple name of the newly created class
The completer to be used to set the info of the class and the module
A creator for intersection type where intersections of a single type are replaced by the type itself.
A creator for intersection type where intersections of a single type are replaced by the type itself.
A creator for intersection type where intersections of a single type are replaced by the type itself, and repeated parent classes are merged.
A creator for intersection type where intersections of a single type are replaced by the type itself, and repeated parent classes are merged.
!!! Repeated parent classes are not merged - is this a bug in the comment or in the code?
A map from lists to compound types that have the given list as parents.
A map from lists to compound types that have the given list as parents. This is used to avoid duplication in the computation of base type sequences and baseClasses. It makes use of the fact that these two operations depend only on the parents, not on the refinement.
Are we later than given phase in compilation?
Are we later than given phase in compilation?
Declares that this is a runtime reflection universe.
Declares that this is a runtime reflection universe.
This means that we can make certain assumptions to optimize the universe.
For example, we may auto-initialize symbols on flag and annotation requests
(see shouldTriggerCompleter below for more details).
On the other hand, this also means that usage scenarios of the universe will differ from the conventional ones. For example, we have to do additional cleanup in order to prevent memory leaks: http://groups.google.com/group/scala-internals/browse_thread/thread/eabcf3d406dab8b2.
Test whether the dynamic type of the receiver object is T0.
Test whether the dynamic type of the receiver object is T0.
Note that the result of the test is modulo Scala's erasure semantics.
Therefore the expression 1.isInstanceOf[String] will return false, while the
expression List(1).isInstanceOf[List[String]] will return true.
In the latter example, because the type argument is erased as part of compilation it is
not possible to check whether the contents of the list are of the specified type.
true if the receiver object is an instance of erasure of type T0; false otherwise.
Is the given name valid for a top-level class? We exclude names with embedded $-signs, because these are nested classes or anonymous classes,
Is the given name valid for a top-level class? We exclude names with embedded $-signs, because these are nested classes or anonymous classes,
def isNonValueType(tp: Type) = !isValueElseNonValue(tp)
def isNonValueType(tp: Type) = !isValueElseNonValue(tp)
The isNumericValueType tests appear redundant, but without them test/continuations-neg/function3.
The isNumericValueType tests appear redundant, but without them test/continuations-neg/function3.scala goes into an infinite loop. (Even if the calls are to typeSymbolDirect.)
Is intersection of given types populated? That is, for all types tp1, tp2 in intersection for all common base classes bc of tp1 and tp2 let bt1, bt2 be the base types of tp1, tp2 relative to class bc Then: bt1 and bt2 have the same prefix, and any corresponding non-variant type arguments of bt1 and bt2 are the same
Is intersection of given types populated? That is, for all types tp1, tp2 in intersection for all common base classes bc of tp1 and tp2 let bt1, bt2 be the base types of tp1, tp2 relative to class bc Then: bt1 and bt2 have the same prefix, and any corresponding non-variant type arguments of bt1 and bt2 are the same
Might the given symbol be important when calculating the prefix of a type? When tp.
Might the given symbol be important when calculating the prefix
of a type? When tp.asSeenFrom(pre, clazz) is called on tp,
the result will be tp unchanged if pre is trivial and clazz
is a symbol such that isPossiblePrefix(clazz) == false.
Is type tp a raw type?
Is type tp a raw type?
Is the tree Predef, scala.
Is the tree Predef, scala.Predef, or _root_.scala.Predef?
Do tp1 and tp2 denote equivalent types?
Do tp1 and tp2 denote equivalent types?
Are tps1 and tps2 lists of pairwise equivalent types?
Are tps1 and tps2 lists of pairwise equivalent types?
This is defined and named as it is because the goal is to exclude source level types which are not value types (e.
This is defined and named as it is because the goal is to exclude source level types which are not value types (e.g. MethodType) without excluding necessary internal types such as WildcardType. There are also non-value types which can be used as type arguments (e.g. type constructors.)
Do type arguments targs conform to formal parameters tparams?
Do type arguments targs conform to formal parameters tparams?
Delegates the transformation strategy to scala.reflect.internal.Trees,
because pattern matching on abstract types we have here degrades performance.
Delegates the transformation strategy to scala.reflect.internal.Trees,
because pattern matching on abstract types we have here degrades performance.
Delegates the traversal strategy to scala.reflect.internal.Trees,
because pattern matching on abstract types we have here degrades performance.
Delegates the traversal strategy to scala.reflect.internal.Trees,
because pattern matching on abstract types we have here degrades performance.
An implementation of scala.reflect.api.Universe for runtime reflection using JVM classloaders.
Should not be instantiated directly, use scala.reflect.runtime.universe instead.