LambdaModule (original) (raw)
scala.quoted.Quotes.reflectModule.LambdaModule
Methods of the module object val Lambda
Attributes
Source
Graph
Supertypes
Self type
Members list
Generates a lambda with the given method type.
Generates a lambda with the given method type.
Block((DefDef(_, _, params :: Nil, _, Some(rhsFn(meth, paramRefs)))) :: Nil, Closure(meth, _))
Usage:
val mtpe = MethodType(List("arg1"))(_ => List(TypeRepr.of[Int]), _ => TypeRepr.of[Int])
Lambda(owner, mtpe, {
case (methSym, List(arg1: Term)) =>
ValDef.let(methSym, f(arg1)) { ... }
}
)
Usage with quotes:
val mtpe = MethodType(List("arg1"))(_ => List(TypeRepr.of[Int]), _ => TypeRepr.of[Int])
Lambda(owner, mtpe, {
case (methSym, List(arg1: Term)) =>
given Quotes = methSym.asQuotes
'{ ... }
}
)
Value parameters
owner
owner of the generated meth
symbol
rhsFn
Function that receives the meth
symbol and the a list of references to the params
tpe
Type of the definition
Attributes
Source
Matches a lambda definition of the form
Matches a lambda definition of the form
Block((DefDef(_, _, params :: Nil, _, Some(body))) :: Nil, Closure(meth, _))
Extracts the parameter definitions and body.
Attributes
Source
In this article