4

这是编译器错误吗?

class A(val pf: PartialFunction[Int, Int])
class B extends A({
  case 5 => 3
  case _ => 2
})

println(new B)

java.lang.VerifyError: (class: Main$$anon$1$B, method: <init> signature: (LMain$$anon$1;)V) Expecting to find object/array on stack

我正在使用 Scala 2.10 RC3 和 Java 7u9

编辑:忘记了我的代码末尾的“新 B”。没有那个错误不会发生

4

2 回答 2

1

这是一个看起来非常相似的问题,包括 As 和 Bs。我通常保存 As for type params,这就是我知道我不是用 Java 编码的方式。

于 2012-12-13T23:35:18.397 回答
-1

升级到 Scala-2.10-RC3 - 它在这里工作!

编辑

class B extends A (new PartialFunction[Int, Int]{
  def apply(v: Int) = v match {
    case 3 => 4
    case _ => 0
  }
  def isDefinedAt(v: Int) = true 
})
于 2012-12-14T01:41:24.527 回答