scala.quoted (original) (raw)
Members list
Quoted expression of type T
.
Quoted expression of type T
.
Expr
has extension methods that are defined in scala.quoted.Quotes
.
Attributes
Companion
Source
Supertypes
Constructors for expressions
Constructors for expressions
Attributes
Companion
Source
Supertypes
Self type
A type class for types that can convert a quoted.Expr[T]
to a T
.
A type class for types that can convert a quoted.Expr[T]
to a T
.
- Converts expression containing literal values to their values:
'{1}
->1
,'{2}
->2
, ...- For all primitive types and
String
- Converts an expression that constructs a copy of its value.
- This expression must be some kind of data structure (
Some
,List
,Either
, ...) - Calls to
new X
orX.apply
can be lifted into its value - Arguments of constructors can be recursively unlifted
- This expression must be some kind of data structure (
Attributes
Companion
Source
Supertypes
Known subtypes
Default given instances of FromExpr
Default given instances of FromExpr
Attributes
Companion
Source
Supertypes
Self type
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
.
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:
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
Supertypes
Self type
A type class for types that can convert a value of T
into quoted.Expr[T]
an expression that will create a copy of the value.
A type class for types that can convert a value of T
into quoted.Expr[T]
an expression that will create a copy of the value.
Attributes
Companion
Source
Supertypes
Known subtypes
Default given instances of ToExpr
Default given instances of ToExpr
Attributes
Companion
Source
Supertypes
Self type
Type (or type constructor) T
needed contextually when using T
in a quoted expression '{... T ...}
Type (or type constructor) T
needed contextually when using T
in a quoted expression '{... T ...}
Attributes
Companion
Source
Supertypes
Methods to interact with the current Type[T]
in scope
Methods to interact with the current Type[T]
in scope
Attributes
Companion
Source
Supertypes
Self type
Expression representation of literal sequence of expressions.
Expression representation of literal sequence of expressions.
Varargs
can be used to create the an expression args
that will be used as varargs '{ f($args: _*) }
or it can be used to extract all the arguments of the a varargs.
Attributes
Source
Supertypes
Self type
Current Quotes in scope
Current Quotes in scope
Usage:
import scala.quoted.*
def myExpr[T](using Quotes): Expr[T] = {
import quotes.reflect.*
???
}
Attributes
Source
In this article