我正在使用作为 Scala 宏天堂一部分的宏注释(链接)。
在他们的示例中,他们使用了一个名为的宏注释identity
,它不带参数。但是,我尝试实现的宏注释确实需要一个参数:
@compileTimeOnly("enable macro paradise to expand macro annotations")
class f(id: String) extends StaticAnnotation {
def macroTransform(annottees: Any*) = macro identityMacro.impl
}
object identityMacro extends App {
def impl(c: Context)(annottees: c.Expr[Any]*) = {
import c.universe._
// how to access id here?
}
}
我的问题:如何在宏id
的实现中访问 的值?identityMacro.impl
我尝试将它作为额外参数传递给,macroTransform
但这不起作用。我假设我必须通过上下文访问它?