首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kiama: dup非法参数异常

Kiama: dup非法参数异常
EN

Stack Overflow用户
提问于 2012-12-28 22:46:15
回答 1查看 155关注 0票数 2

我在下面的代码中获取dup illegal arguments exception

代码语言:javascript
复制
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")
    }
}

例外:

代码语言:javascript
复制
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

我正在使用kiama图书馆。http://code.google.com/p/kiama/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-29 06:04:14

Kiama dup方法负责创建与现有实例类型相同的新实例。dup使用反射来查找构造函数,并抱怨构造函数的参数与给定的参数不匹配。在您的测试中,它试图创建一个具有两个子节点的B节点,但是B构造函数有三个参数,因为BKiamaRewrite的一个内部类。

B等类声明移出KiamaRewrite,测试就通过了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14071238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档