我一直在追逐以下问题已经有一段时间了,希望有一个比我自己有更多经验的人可以帮助我解决这个问题。
在我的测试用例中,确切的错误如下:
java.lang.IllegalArgumentException: Could not find proxy for val user: specs.BasicSpec#User in List(value user, method applyOrElse, , method $anonfun$new$97, value fiveLetterNames, method $anonfun$new$90, method $anonfun$new$20, value , class BasicSpec, package specs, package ) (currentOwner= value fiveLetterNames )
该测试可以在这里找到:
https://github.com/outr/reactify/blob/master/shared/src/test/scala/specs/BasicSpec.scala#L227
这是令人反感的宏:
https://github.com/outr/reactify/blob/master/shared/src/main/scala/com/outr/reactify/Macros.scala#L72
没有错误的更多信息,我无所适从。非常感谢您的协助。
最佳答案
我的项目中有同样的问题。解决方案是不要在宏中多次使用同一“lambda” *。
“lambda”如下:
def macroSample[A, B](c: blackbox.Context)
(lambda: c.Expr[A => B] /* <- lambda */) = { ... }
ps。实际上我现在看不到您的原始代码。在我的情况下这是一个解决方案
关于scala - 在宏中找不到…的代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42334608/