2
我在下面的代码中获得dup illegal arguments exception
。Kiama:dup非法参数异常
package tests.kiama
import org.junit.runner.RunWith
import org.scalatest.FunSuite
import org.scalatest.junit.JUnitRunner
import org.kiama.rewriting.Rewriter._
@RunWith(classOf[JUnitRunner])
class KiamaRewrite extends FunSuite {
test("test1") {
abstract class E
case class B(l: E, r: E) extends E
case class P() extends E
case class Q() extends E
case class PP() extends E
case class QQ() extends E
val t = B(P(), Q())
val d = rule {
case P() => PP()
case Q() => QQ()
}
val s = bottomup(d)(t)
println("done")
}
}
例外:
java.lang.RuntimeException: dup illegal arguments: public tests.kiama.KiamaRewrite$$anonfun$1$B$2(tests.kiama.KiamaRewrite$$anonfun$1,tests.kiama.KiamaRewrite$$anonfun$1$E$1,tests.kiama.KiamaRewrite$$anonfun$1$E$1) (PP(),QQ()), expects 3
我使用的是凯马库。 http://code.google.com/p/kiama/
这是否也适用于内在的特质类? – schlicht
是的,我认为是。最终,您需要将特征混合到一个类中,然后该特征的内部类将具有对该类实例的外部引用。 – inkytonik
谢谢。有没有其他解决这个问题的方法?或者我可以在哪里查看更多细节,以更好地了解这个问题? – schlicht