Quotes
Quotation context provided by a macro expansion or in the scope of scala.quoted.staging.run
. Used to perform all operations on quoted Expr
or Type
.
It contains the low-level Typed AST API metaprogramming API. This API does not have the static type guarantees that Expr
and Type
provide. Quotes
are generated from an enclosing ${ ... }
or scala.staging.run
. For example: scala sc:nocompile import scala.quoted._ inline def myMacro: Expr[T] = ${ /* (quotes: Quotes) ?=> */ myExpr } def myExpr(using Quotes): Expr[T] = '{ f(${ /* (quotes: Quotes) ?=> */ myOtherExpr }) } } def myOtherExpr(using Quotes): Expr[U] = '{ ... }
Attributes
- Source
- Quotes.scala
- Graph
-
- Supertypes
- Self type
Members list
Type members
Classlikes
Low-level Typed AST metaprogramming API.
Low-level Typed AST metaprogramming API.
Provides all functionality related to AST-based metaprogramming.
Each type XYZ
in the API is defined as an abstract type type XYZ
. Methods on XYZ
are provided by a given XYZMethods
which implements extension methods on XYZ
in the trait XYZMethods
. The XYZ
module is defined by a val XYZ: XYZModule
which contains the methods defined in XYZModule
. Type tests (TypeTest
) are also given to perform subtype checks on these types.
Type hierarchy none
+- Tree -+- PackageClause | +- Statement -+- Import | +- Export | +- Definition --+- ClassDef | | +- TypeDef | | +- DefDef | | +- ValDef | | | +- Term --------+- Ref -+- Ident -+- Wildcard | | +- Select | | | +- Literal | +- This | +- New | +- NamedArg | +- Apply | +- TypeApply | +- Super | +- Assign | +- Block | +- Closure | +- If | +- Match | +- SummonFrom | +- Try | +- Return | +- Repeated | +- Inlined | +- SelectOuter | +- While | +---+- Typed | / +- TypedOrTest +----------------· +- Bind +- Unapply +- Alternatives | +- CaseDef +- TypeCaseDef | +- TypeTree ----+- Inferred | +- TypeIdent | +- TypeSelect | +- TypeProjection | +- Singleton | +- Refined | +- Applied | +- Annotated | +- MatchTypeTree | +- ByName | +- LambdaTypeTree | +- TypeBind | +- TypeBlock | +- TypeBoundsTree +- WildcardTypeTree
+- ParamClause -+- TypeParamClause +- TermParamClause
+- TypeRepr -+- NamedType -+- TermRef | +- TypeRef +- ConstantType +- SuperType +- Refinement +- AppliedType +- AnnotatedType +- AndOrType -+- AndType | +- OrType +- MatchType +- ByNameType +- ParamRef +- ThisType +- RecursiveThis +- RecursiveType +- LambdaType -+- MethodOrPoly -+- MethodType | | +- PolyType | +- TypeLambda +- MatchCase +- TypeBounds +- NoPrefix
+- Selector -+- SimpleSelector +- RenameSelector +- OmitSelector +- GivenSelector
+- Signature
+- Position
+- SourceFile
+- Constant -+- BooleanConstant +- ByteConstant +- ShortConstant +- IntConstant +- LongConstant +- FloatConstant +- DoubleConstant +- CharConstant +- StringConstant +- UnitConstant +- NullConstant +- ClassOfConstant +- Symbol
+- Flags
Attributes
- Source
- Quotes.scala
- Supertypes
- Self type
-
reflect.type
Types
Type of a Quotes
provided by a splice within a quote that took this context.
Type of a Quotes
provided by a splice within a quote that took this context.
Attributes
- Source
- Quotes.scala
Value members
Abstract fields
Low-level Typed AST metaprogramming API.
Low-level Typed AST metaprogramming API.
Provides all functionality related to AST-based metaprogramming.
Usage: scala import scala.quoted._ def f(expr: Expr[Int])(using Quotes) = import quotes.reflect._ val ast: Term = expr.asTerm ???
See reflectModule
for full API.
Attributes
- Source
- Quotes.scala
Extensions
Extensions
Convert this to an quoted.Expr[X]
if this expression is a valid expression of type X
or throws
Convert this to an quoted.Expr[X]
if this expression is a valid expression of type X
or throws
Attributes
- Source
- Quotes.scala
Checks is the quoted.Expr[?]
is valid expression of type X
Deprecated extensions
Pattern matches this
against that
.
Pattern matches this
against that
. Effectively performing a deep equality check. It does the equivalent of
case _ => false scala sc:nocompile this match case '{...} => true // where the contents of the pattern are the contents of
that
Attributes
- Source
- Quotes.scala
Show a source code like representation of this expression
Return the value of this expression.
Return the value of this expression.
Returns None
if the expression does not represent a value or possibly contains side effects. Otherwise returns the Some
of the value.
Attributes
- Source
- Quotes.scala
Return the value of this expression.
Return the value of this expression.
Emits an error and aborts if the expression does not represent a value or possibly contains side effects. Otherwise returns the value.
Attributes
- Source
- Quotes.scala
Return the value of this expression.
Return the value of this expression.
Emits an error and throws if the expression does not represent a value or possibly contains side effects. Otherwise returns the value.
Attributes
- Deprecated
- true
- Source
- Quotes.scala