【发布时间】:2021-03-24 02:52:27
【问题描述】:
考虑微不足道的宏:
def test[A](a: A): Unit = macro testImpl[A]
def testImpl[A: c.WeakTypeTag](c: blackbox.Context)(a: c.Expr[A]): c.Expr[Unit] = {
import c.universe._
println("Test running")
c.Expr[Unit](q"")
}
及其调用
def foo(a: String)(implicit b: Int): Unit = ???
test(foo("123"))
它给出了一个错误
[error] Main.scala:19:18: could not find implicit value for parameter b: Int
[error] test(foo("123"))
是否可以将隐式解析推迟到宏扩展时间或在这种情况下需要编写宏注释?
【问题讨论】:
标签: scala metaprogramming implicit scala-macros