Alternatives of patterns.
The API that all alternatives support
An extractor class to create and pattern match with syntax Alternative(trees)
.
A tree that has an annotation attached to it.
The API that all annotateds support
An extractor class to create and pattern match with syntax Annotated(annot, arg)
.
The AnnotatedType
type signature is used for annotated types of the
for <type> @<annotation>
.
The API that all annotated types support.
An extractor class to create and pattern match with syntax
AnnotatedType(annotations, underlying)
.
Information about an annotation.
The API of Annotation
instances.
An extractor class to create and pattern match with syntax Annotation(tpe, scalaArgs, javaArgs)
.
Applied type <tpt> [ <args> ], eliminated by RefCheck
The API that all applied type trees support
An extractor class to create and pattern match with syntax AppliedTypeTree(tpt, args)
.
Value application
The API that all applies support
An extractor class to create and pattern match with syntax Apply(fun, args)
.
Assignment
The API that all assigns support
An extractor class to create and pattern match with syntax Assign(lhs, rhs)
.
Either an assignment or a named argument.
The API that all assigns support
An extractor class to create and pattern match with syntax AssignOrNamedArg(lhs, rhs)
.
Bind a variable to a rhs pattern.
The API that all binds support
An extractor class to create and pattern match with syntax Bind(name, body)
.
Block of expressions (semicolon separated expressions)
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:
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.
Case clause in a pattern match.
The API that all case defs support
An extractor class to create and pattern match with syntax CaseDef(pat, guard, body)
.
A class definition.
The API that all class defs support
An extractor class to create and pattern match with syntax ClassDef(mods, name, tparams, impl)
.
The ClassInfo
type signature is used to define parents and declarations
of classes, traits, and objects.
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.
The type of class symbols representing class and trait definitions.
The API of class symbols.
Presence of an implicit value of this type in scope indicates that source compatibility with Scala 2.
A subtype of Type representing refined types as well as ClassInfo
signatures.
Has no special methods.
Intersection type <parent1> with .
The API that all compound type trees support
An extractor class to create and pattern match with syntax CompoundTypeTree(templ)
.
This "virtual" case class represents the reflection interface for literal expressions which can not be further broken down or evaluated, such as "true", "0", "classOf[List]".
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.
The ConstantType
type is not directly written in user programs, but arises as the type of a constant.
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 method or macro definition.
The API that all def defs support
An extractor class to create and pattern match with syntax DefDef(mods, name, tparams, vparamss, tpt, rhs)
.
A tree representing a symbol-defining entity:
1) A declaration or a definition (type, class, object, package, val, var, or def)
2) Bind
that is used to represent binding occurrences in pattern matches
3) LabelDef
that is used internally to represent while loops
The API that all def trees support
Defines standard symbols (and types via its base trait).
The ExistentialType
type signature is used for existential types and
wildcard types.
The API that all existential types support.
An extractor class to create and pattern match with syntax
ExistentialType(quantified, underlying)
.
Existential type tree node
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.
The API of FlagSet
instances.
An abstract type representing sets of flags (like private, final, etc.
All possible values that can constitute flag sets.
The type of free terms introduced by reification.
The API of free term symbols.
The type of free types introduced by reification.
The API of free type symbols.
Anonymous function, eliminated by compiler phase lambdalift
The API that all functions support
An extractor class to create and pattern match with syntax Function(vparams, body)
.
Common base class for Apply and TypeApply.
The API that all applies support
A reference to identifier name
.
The API that all idents support
An extractor class to create and pattern match with syntax Ident(qual, name)
.
Conditional expression
The API that all ifs support
An extractor class to create and pattern match with syntax If(cond, thenp, elsep)
.
A common base class for class and object definitions.
The API that all impl defs support
Import clause
The API that all imports support
An extractor class to create and pattern match with syntax Import(expr, selectors)
.
Import selector (not a tree, but a component of the Import
tree)
The API that all import selectors support
An extractor class to create and pattern match with syntax ImportSelector(name:, namePos, rename, renamePos)
.
This trait provides support for importers, a facility to migrate reflection artifacts between universes.
A mirror that reflects a runtime value.
Reflection API exhibits a tension inherent to experimental things: on the one hand we want it to grow into a beautiful and robust API, but on the other hand we have to deal with immaturity of underlying mechanisms by providing not very pretty solutions to enable important use cases.
A labelled expression.
The API that all label defs support
An extractor class to create and pattern match with syntax LabelDef(name, params, rhs)
.
A type class that defines a representation of T
as a Tree
.
Literal
The API that all literals support
An extractor class to create and pattern match with syntax Literal(value)
.
<invalid inheritdoc annotation>
- Pattern matching expression (before compiler phase explicitouter before 2.
The API that all matches support
An extractor class to create and pattern match with syntax Match(selector, cases)
.
Common base class for all member definitions: types, classes, objects, packages, vals and vars, defs.
The API that all member defs support
The type of member scopes, as in class definitions, for example.
The API that all member scopes support
A mirror that reflects a method.
The type of method symbols representing def declarations.
The API of method symbols.
The MethodType
type signature is used to indicate parameters and result type of a method
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.
The base type of all mirrors of this universe.
The base type of all mirrors of this universe.
This abstract type conforms the base interface for all mirrors defined in scala.reflect.api.Mirror
and is gradually refined in specific universes (e.g. Mirror
of a scala.reflect.api.JavaUniverse is capable of reflection).
The type of tree modifiers (not a tree, but rather part of DefTrees).
The type of tree modifiers (not a tree, but rather part of DefTrees).
The API that all Modifiers support
An extractor class to create and pattern match with syntax Modifiers(flags, privateWithin, annotations)
.
An object definition, e.
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.
The type of module symbols representing object declarations.
The API of module symbols.
The abstract type of names.
The abstract type of names.
The API of Name instances.
A tree that carries a name, e.
The API that all name trees support
Defines standard names, common for term and type names: These can be accessed via the nme and tpnme members.
Object instantiation
The API that all news support
An extractor class to create and pattern match with syntax New(tpt)
.
The NullaryMethodType
type signature is used for parameterless methods
with declarations of the form def foo: T
The API that all nullary method types support.
An extractor class to create and pattern match with syntax NullaryMethodType(resultType)
.
A packaging, such as package pid { stats }
The API that all package defs support
An extractor class to create and pattern match with syntax PackageDef(pid, stats)
.
The PolyType
type signature is used for polymorphic methods
that have at least one type parameter.
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.
Implicit class that introduces q
, tq
, cq,
p
and fq
string interpolators
that are also known as quasiquotes.
A tree which references a symbol-carrying entity.
The API that all ref trees support
An extractor class to create and pattern match with syntax RefTree(qual, name)
.
Marks underlying reference to id as boxed.
The API that all references support
An extractor class to create and pattern match with syntax ReferenceToBoxed(ident)
.
The RefinedType
type defines types of any of the forms on the left,
with their RefinedType representations to the right.
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.
This is an internal implementation class.
Return expression
The API that all returns support
An extractor class to create and pattern match with syntax Return(expr)
.
Abstracts the runtime representation of a class on the underlying platform.
Abstracts the runtime representation of a class on the underlying platform.
Has no special methods.
The API of a mirror for a reflective universe.
The base type of all scopes.
The API that all scopes support
A member selection <qualifier> .
The API that all selects support
An extractor class to create and pattern match with syntax Select(qual, name)
.
Type selection <qualifier> # <name>, eliminated by RefCheck
The API that all selects from type trees support
An extractor class to create and pattern match with syntax SelectFromTypeTree(qualifier, name)
.
The SingleType
type describes types of any of the forms on the left,
with their TypeRef representations to the right.
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.
The type of Scala singleton types, i.
Has no special methods.
Singleton type, eliminated by RefCheck
The API that all singleton type trees support
An extractor class to create and pattern match with syntax SingletonTypeTree(ref)
.
Defines standard types.
Repetition of pattern.
The API that all stars support
An extractor class to create and pattern match with syntax Star(elem)
.
Super reference, where qual
is the corresponding this
reference.
The API that all supers support
An extractor class to create and pattern match with syntax Super(qual, mix)
.
The SuperType
type is not directly written, but arises when C.super
is used
as a prefix in a TypeRef
or SingleType
.
The API that all super types support.
An extractor class to create and pattern match with syntax SingleType(thistpe, supertpe)
A tree that carries a symbol, e.
The API that all sym trees support
The type of symbols representing declarations.
The API of symbols.
Instantiation template of a class or trait
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.
The abstract type of names representing types.
The abstract type of names representing types.
Has no special methods.
An extractor class to create and pattern match with syntax TermName(s)
.
Defines standard term names that can be accessed via the nme member.
The type of term symbols representing val, var, def, and object declarations as well as packages and value parameters.
The API of term symbols.
A tree for a term.
The API that all term trees support
Self reference
The API that all thises support
An extractor class to create and pattern match with syntax This(qual)
.
A singleton type that describes types of the form on the left with the
corresponding ThisType
representation to the right:
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.
Throw expression
The API that all tries support
An extractor class to create and pattern match with syntax Throw(expr)
.
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 type of Scala abstract syntax trees.
The API that all trees support.
The type of standard (lazy) tree copiers.
The API of a tree copier.
Try catch node
The API that all tries support
An extractor class to create and pattern match with syntax Try(block, catches, finalizer)
.
A tree for a type.
The API that all typ trees support
The type of Scala types, and also Scala type signatures.
The API of types.
Explicit type application.
The API that all type applies support
An extractor class to create and pattern match with syntax TypeApply(fun, args)
.
The TypeBounds
type signature is used to indicate lower and upper type bounds
of type parameters and abstract types.
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.
Type bounds tree node
The API that all type bound trees support
An extractor class to create and pattern match with syntax TypeBoundsTree(lo, hi)
.
An abstract type, a type parameter, or a type alias.
The API that all type defs support
An extractor class to create and pattern match with syntax TypeDef(mods, name, tparams, rhs)
.
The abstract type of names representing terms.
The abstract type of names representing terms.
Has no special methods.
An extractor class to create and pattern match with syntax TypeName(s)
.
Defines standard type names that can be accessed via the tpnme member.
The TypeRef
type describes types of any of the forms on the left,
with their TypeRef representations to the right.
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.
The type of type symbols representing type, class, and trait declarations, as well as type parameters.
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.
A synthetic tree holding an arbitrary type.
The API that all type trees support
An extractor class to create and pattern match with syntax TypeTree()
.
Type annotation, eliminated by compiler phase cleanup
The API that all typeds support
An extractor class to create and pattern match with syntax Typed(expr, tpt)
.
Used to represent unapply
methods in pattern matching.
The API that all unapplies support
An extractor class to create and pattern match with syntax UnApply(fun, args)
.
A type class that defines a way to extract instance of T
from a Tree
.
Broadly speaking, a value definition.
The API that all val defs support
An extractor class to create and pattern match with syntax ValDef(mods, name, tpt, rhs)
.
A common base class for ValDefs and DefDefs.
The API that all val defs and def defs support
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.
An array argument to a Java annotation as in @Target(value={TYPE,FIELD,METHOD,PARAMETER})
API of ArrayArgument
instances.
An extractor class to create and pattern match with syntax ArrayArgument(args)
where args
is the argument array.
(Since version 2.11.0) Use internal.ReificationSupportApi
instead
The type of compilation units.
Compilation unit describes a unit of work of the compilation run.
A Java annotation argument
Has no special methods.
A literal argument to a Java annotation as "Use X instead"
in @Deprecated("Use X instead")
The API of LiteralArgument
instances.
An extractor class to create and pattern match with syntax LiteralArgument(value)
where value
is the constant argument.
(Since version 2.11.0) Use ModifiersExtractor instead
A nested annotation argument to a Java annotation as @Nested
in @Outer(@Nested)
.
API of NestedArgument
instances.
An extractor class to create and pattern match with syntax NestedArgument(annotation)
where annotation
is the nested annotation.
The type of compilation runs.
Compilation run uniquely identifies current invocation of the compiler (e.
The constructor/extractor for Alternative
instances.
The constructor/extractor for Alternative
instances.
The constructor/extractor for Annotated
instances.
The constructor/extractor for Annotated
instances.
The constructor/extractor for AnnotatedType
instances.
The constructor/extractor for AnnotatedType
instances.
The constructor/extractor for Annotation
instances.
The constructor/extractor for Annotation
instances.
The constructor/extractor for AppliedTypeTree
instances.
The constructor/extractor for AppliedTypeTree
instances.
The constructor/extractor for Apply
instances.
The constructor/extractor for Apply
instances.
The constructor/extractor for Assign
instances.
The constructor/extractor for Assign
instances.
The constructor/extractor for AssignOrNamedArg
instances.
The constructor/extractor for AssignOrNamedArg
instances.
The constructor/extractor for Bind
instances.
The constructor/extractor for Bind
instances.
The constructor/extractor for Block
instances.
The constructor/extractor for Block
instances.
The constructor/extractor for BoundedWildcardType
instances.
The constructor/extractor for BoundedWildcardType
instances.
The constructor/extractor for CaseDef
instances.
The constructor/extractor for CaseDef
instances.
The constructor/extractor for ClassDef
instances.
The constructor/extractor for ClassDef
instances.
The constructor/extractor for ClassInfoType
instances.
The constructor/extractor for ClassInfoType
instances.
The constructor/extractor for CompoundTypeTree
instances.
The constructor/extractor for CompoundTypeTree
instances.
The constructor/extractor for Constant
instances.
The constructor/extractor for Constant
instances.
The constructor/extractor for ConstantType
instances.
The constructor/extractor for ConstantType
instances.
The constructor/extractor for DefDef
instances.
The constructor/extractor for DefDef
instances.
The empty tree
The empty tree
The constructor/extractor for ExistentialType
instances.
The constructor/extractor for ExistentialType
instances.
The constructor/extractor for ExistentialTypeTree
instances.
The constructor/extractor for ExistentialTypeTree
instances.
A module that contains all possible values that can constitute flag sets.
A module that contains all possible values that can constitute flag sets.
Tag that preserves the identity of FreeTermSymbol
in the face of erasure.
Tag that preserves the identity of FreeTermSymbol
in the face of erasure.
Can be used for pattern matching, instance tests, serialization and the like.
Tag that preserves the identity of FreeTermSymbol
in the face of erasure.
Tag that preserves the identity of FreeTermSymbol
in the face of erasure.
Can be used for pattern matching, instance tests, serialization and the like.
The constructor/extractor for Function
instances.
The constructor/extractor for Function
instances.
A factory method for Ident
nodes.
A factory method for Ident
nodes.
The constructor/extractor for Ident
instances.
The constructor/extractor for Ident
instances.
The constructor/extractor for If
instances.
The constructor/extractor for If
instances.
The constructor/extractor for Import
instances.
The constructor/extractor for Import
instances.
The constructor/extractor for ImportSelector
instances.
The constructor/extractor for ImportSelector
instances.
The constructor/extractor for LabelDef
instances.
The constructor/extractor for LabelDef
instances.
The constructor/extractor for Literal
instances.
The constructor/extractor for Literal
instances.
The constructor/extractor for Match
instances.
The constructor/extractor for Match
instances.
The constructor/extractor for MethodType
instances.
The constructor/extractor for MethodType
instances.
The constructor/extractor for Modifiers
instances.
The constructor/extractor for Modifiers
instances.
The constructor/extractor for ModuleDef
instances.
The constructor/extractor for ModuleDef
instances.
The constructor/extractor for New
instances.
The constructor/extractor for New
instances.
The empty set of flags
The empty set of flags
A special "missing" position.
A special "missing" position.
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
.
A special "missing" symbol.
A special "missing" symbol. Commonly used in the API to denote a default or empty value.
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/extractor for NullaryMethodType
instances.
The constructor/extractor for NullaryMethodType
instances.
The constructor/extractor for PackageDef
instances.
The constructor/extractor for PackageDef
instances.
The constructor/extractor for PolyType
instances.
The constructor/extractor for PolyType
instances.
The constructor/extractor for RefTree
instances.
The constructor/extractor for RefTree
instances.
The constructor/extractor for ReferenceToBoxed
instances.
The constructor/extractor for ReferenceToBoxed
instances.
Tag that preserves the identity of ReferenceToBoxed
in the face of erasure.
Tag that preserves the identity of ReferenceToBoxed
in the face of erasure.
Can be used for pattern matching, instance tests, serialization and the like.
The constructor/extractor for RefinedType
instances.
The constructor/extractor for RefinedType
instances.
The constructor/extractor for Return
instances.
The constructor/extractor for Return
instances.
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.
The constructor/extractor for SingleType
instances.
The constructor/extractor for SingleType
instances.
The constructor/extractor for SingletonTypeTree
instances.
The constructor/extractor for SingletonTypeTree
instances.
The constructor/extractor for Star
instances.
The constructor/extractor for Star
instances.
The constructor/extractor for Super
instances.
The constructor/extractor for Super
instances.
The constructor/extractor for SuperType
instances.
The constructor/extractor for SuperType
instances.
The constructor/extractor for Template
instances.
The constructor/extractor for Template
instances.
The constructor/extractor for TermName
instances.
The constructor/extractor for TermName
instances.
A factory method for This
nodes.
A factory method for This
nodes.
The constructor/extractor for This
instances.
The constructor/extractor for This
instances.
The constructor/extractor for ThisType
instances.
The constructor/extractor for ThisType
instances.
The constructor/extractor for Throw
instances.
The constructor/extractor for Throw
instances.
The constructor/extractor for Try
instances.
The constructor/extractor for Try
instances.
The constructor/extractor for TypeApply
instances.
The constructor/extractor for TypeApply
instances.
The constructor/extractor for TypeBounds
instances.
The constructor/extractor for TypeBounds
instances.
The constructor/extractor for TypeBoundsTree
instances.
The constructor/extractor for TypeBoundsTree
instances.
The constructor/extractor for TypeDef
instances.
The constructor/extractor for TypeDef
instances.
The constructor/extractor for TypeName
instances.
The constructor/extractor for TypeName
instances.
The constructor/extractor for TypeRef
instances.
The constructor/extractor for TypeRef
instances.
A factory method for TypeTree
nodes.
A factory method for TypeTree
nodes.
The constructor/extractor for TypeTree
instances.
The constructor/extractor for TypeTree
instances.
The constructor/extractor for Typed
instances.
The constructor/extractor for Typed
instances.
The constructor/extractor for UnApply
instances.
The constructor/extractor for UnApply
instances.
The constructor/extractor for ValDef
instances.
The constructor/extractor for ValDef
instances.
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.
The API of FlagSet
instances.
The API of FlagSet
instances.
A creator for type applications
A creator for type applications
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.
Provides enrichments to ensure source compatibility between Scala 2.
Provides enrichments to ensure source compatibility between Scala 2.10 and Scala 2.11.
If in your reflective program for Scala 2.10 you've used something that's now become an internal API,
a single compat._
import will fix things for you.
A value containing all standard definitions in DefinitionsApi
A value containing all standard definitions in DefinitionsApi
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 least upper bound of a list of types, as determined by <:<
.
The least upper bound of a list of types, as determined by <:<
.
Hook to define what showCode(...)
means.
Hook to define what showCode(...)
means.
Creates a lazy tree copier.
Creates a lazy tree copier.
Hook to define what showRaw(...)
means.
Hook to define what showRaw(...)
means.
Creates a strict tree copier.
Creates a strict tree copier.
Hook to define what show(...)
means.
Hook to define what show(...)
means.
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.
An empty superclass constructor call corresponding to: super.
An empty superclass constructor call corresponding to: super.<init>() This is used as a placeholder in the primary constructor body in class templates to denote the insertion point of a call to superclass constructor after the typechecker figures out the superclass of a given template.
The root mirror of this universe.
The root mirror of this universe. This mirror contains standard Scala classes and types such as Any
, AnyRef
, AnyVal
,
Nothing
, Null
, and all classes loaded from scala-library, which are shared across all mirrors within the enclosing universe.
Renders a prettified representation of a position.
Renders a prettified representation of a position.
Renders a prettified representation of a flag set.
Renders a prettified representation of a flag set.
Renders a prettified representation of a name.
Renders a prettified representation of a name.
Renders a string that represents a declaration of this symbol written in Scala.
Renders a string that represents a declaration of this symbol written in Scala.
Type symbol of x
as derived from a type tag.
Type symbol of x
as derived from a type tag.
A value containing all standard term names.
A value containing all standard term names.
A value containing all standard type names.
A value containing all standard type names.
A position that wraps the non-empty set of trees.
A position that wraps the non-empty set of trees. The point of the wrapping position is the point of the first trees' position. If all some the trees are non-synthetic, returns a range position enclosing the non-synthetic trees Otherwise returns a synthetic offset position to point.
A position that wraps a set of trees.
A position that wraps a set of trees. The point of the wrapping position is the point of the default position. If some of the trees are ranges, returns a range position enclosing all ranges Otherwise returns default position.
A factory method for Apply
nodes.
A factory method for Apply
nodes.
(Since version 2.10.1) Use q"$sym(..$args)" instead
0-1 argument list new, based on a type tree.
0-1 argument list new, based on a type tree.
(Since version 2.10.1) Use q"new $tpt(..$args)" instead
The constructor/extractor for ArrayArgument
instances.
The constructor/extractor for ArrayArgument
instances.
(Since version 2.11.0) Use Annotation.tree
to inspect annotation arguments
A factory method for Bind
nodes.
A factory method for Bind
nodes.
(Since version 2.10.1) Use the canonical Bind constructor to create a bind and then initialize its symbol manually
A factory method for Block
nodes.
A factory method for Block
nodes.
Flattens directly nested blocks.
(Since version 2.10.1) Use q"{..$stats}" instead. Flatten directly nested blocks manually if needed
A factory method for CaseDef
nodes.
A factory method for CaseDef
nodes.
(Since version 2.10.1) Use cq"$pat => $body" instead
A factory method for Ident
nodes.
A factory method for Ident
nodes.
(Since version 2.10.1) Use Ident(TermName(name)) instead
The constructor/extractor for LiteralArgument
instances.
The constructor/extractor for LiteralArgument
instances.
(Since version 2.11.0) Use Annotation.tree
to inspect annotation arguments
The constructor/extractor for NestedArgument
instances.
The constructor/extractor for NestedArgument
instances.
(Since version 2.11.0) Use Annotation.tree
to inspect annotation arguments
0-1 argument list new, based on a symbol.
0-1 argument list new, based on a symbol.
(Since version 2.10.1) Use q"new ${sym.toType}(..$args)" instead
0-1 argument list new, based on a type.
0-1 argument list new, based on a type.
(Since version 2.10.1) Use q"new $tpe(..$args)" instead
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)
(Since version 2.10.1) Use q"new $tpt(...$argss)" instead
A factory method for Select
nodes.
A factory method for Super
nodes.
A factory method for Super
nodes.
(Since version 2.10.1) Use q"$sym.super[$mix].x".qualifier instead
A factory method for Throw
nodes.
A factory method for Throw
nodes.
(Since version 2.10.1) Use q"throw new $tpe(..$args)" instead
A factory method for Try
nodes.
A factory method for Try
nodes.
(Since version 2.10.1) Convert cases into casedefs and use q"try $body catch { case ..$newcases }" instead
(Since version 2.11.0) Use internal.reificationSupport
instead
(Since version 2.11.0) Use noSelfType
instead
Create a new term name.
Create a new term name.
(Since version 2.11.0) Use TermName instead
Creates a new type name.
Creates a new type name.
(Since version 2.11.0) Use TypeName instead
(Since version 2.11.0) Use termNames
instead
(Since version 2.11.0) Use typeNames
instead
(Since version 2.11.0) Use internal.gen
instead
internal.gen
Constructor/Extractor for Expr.
Companion to Liftable
type class that contains standard instances
and provides a helper apply
method to simplify creation of new ones.
The factory for Modifiers
instances.
The factory for Modifiers
instances.
The factory for Modifiers
instances.
The factory for Modifiers
instances.
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.
Type tags corresponding to primitive types and constructor/extractor for WeakTypeTags.
Companion to Unliftable
type class that contains standard instances
and provides a helper apply
method to simplify creation of new ones.
Type tags corresponding to primitive types and constructor/extractor for WeakTypeTags.
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.
Use reify
to produce the abstract syntax tree representing a given Scala expression.
Use reify
to produce the abstract syntax tree representing a given Scala expression.
For example:
val five = reify{ 5 } // Literal(Constant(5)) reify{ 5.toString } // Apply(Select(Literal(Constant(5)), TermName("toString")), List()) reify{ five.splice.toString } // Apply(Select(five, TermName("toString")), List())
The produced tree is path dependent on the Universe reify
was called from.
Use scala.reflect.api.Exprs#Expr.splice to embed an existing expression into a reify
call. Use Expr to turn a Tree into an expression that can be spliced.
Renders a representation of a reflection artifact as desugared Scala code.
Renders a representation of a reflection artifact as desugared Scala code.
Renders the code of the passed tree, so that: 1) it can be later compiled by scalac retaining the same meaning, 2) it looks pretty.
Renders the code of the passed tree, so that: 1) it can be later compiled by scalac retaining the same meaning, 2) it looks pretty. #1 is available for unattributed trees and attributed trees #2 is more or less okay indentation-wise, but at the moment there's a lot of desugaring left in place, and that's what we plan to improve in the future. printTypes, printIds, printPositions options have the same meaning as for TreePrinter printRootPkg option is available only for attributed trees.
Renders internal structure of a position.
Renders internal structure of a position.
Renders internal structure of a flag set.
Renders internal structure of a flag set.
Renders internal structure of a name.
Renders internal structure of a name.
Renders internal structure of a reflection artifact as the visualization of a Scala syntax tree.
Renders internal structure of a reflection artifact as the visualization of a Scala syntax tree.
The standard (lazy) tree copier.
The standard (lazy) tree copier.
By default trees are printed with show
By default trees are printed with show
Shortcut for implicitly[TypeTag[T]].tpe
Shortcut for implicitly[TypeTag[T]].tpe
Shortcut for implicitly[TypeTag[T]]
Shortcut for implicitly[TypeTag[T]]
Shortcut for implicitly[WeakTypeTag[T]].tpe
Shortcut for implicitly[WeakTypeTag[T]].tpe
Shortcut for implicitly[WeakTypeTag[T]]
Shortcut for implicitly[WeakTypeTag[T]]
Provides an extension hook for the transformation strategy.
Provides an extension hook for the transformation strategy. Future-proofs against new node types.
Provides an extension hook for the traversal strategy.
Provides an extension hook for the traversal strategy. Future-proofs against new node types.
(Since version 2.11.0) Use internal.createImporter
instead
An implicit conversion from String to TermName.
An implicit conversion from String to TermName.
Enables an alternative notation "map": TermName
as opposed to newTermName("map")
.
(Since version 2.11.0) Use explicit TermName(s)
instead
An implicit conversion from String to TypeName.
An implicit conversion from String to TypeName.
Enables an alternative notation "List": TypeName
as opposed to newTypeName("List")
.
(Since version 2.11.0) Use explicit TypeName(s)
instead
EXPERIMENTAL
The refinement of scala.reflect.api.Universe for the use by macro writers.
This universe provides mutability for reflection artifacts (e.g. macros can change types of compiler trees, add annotation to symbols representing definitions, etc) and exposes some internal compiler functionality such as
Symbol.deSkolemize
orTree.attachments
.