无法在宏中找到...的代理

问题描述 投票:2回答:1

我一直在追逐以下问题很长一段时间,我希望有一个比我更有经验的人可以帮我解决它。

在我的测试用例中,确切的错误如下:

java.lang.IllegalArgumentException:找不到val用户的代理:specs.BasicSpec#List中的用户(值用户,方法applyOrElse,方法$ anonfun $ new $ 97,value fiveLetterNames,方法$ anonfun $ new $ 90,方法$ anonfun $新的20美元,价值,类BasicSpec,包规格,包)(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

没有错误的更多信息我不知道如何解决这个问题。非常感谢任何帮助。

scala compiler-errors macros sbt scalac
1个回答
2
投票

我的项目遇到了同样的问题。解决方案是不要在宏中多次使用相同的“lambda”*。

“lambda”如下:

def macroSample[A, B](c: blackbox.Context)
                     (lambda: c.Expr[A => B] /* <- lambda */) = { ... }

附:实际上我现在看不到您的原始代码。这是我的案例中的解决方案

© www.soinside.com 2019 - 2024. All rights reserved.