奇妙な実行時エラーに頭を悩ませています:
// File: build.sbt
scalaVersion := "2.10.1"
// File: src/main/scala/bug/Bug.scala
package bug
class Foo(val args: Any*)
case class Bar(id: Int) extends Foo(id)
object Bug extends App {
val msg = Bar(666)
val id = msg.id // boom!
}
これをsbt run
"
[error] (run-main) java.lang.ClassCastException:
scala.collection.mutable.WrappedArray$ofRef cannot be cast to java.lang.Integer
java.lang.ClassCastException: scala.collection.mutable.WrappedArray$ofRef cannot be
cast to java.lang.Integer
at scala.runtime.BoxesRunTime.unboxToInt(Unknown Source)
at bug.Bar.id(Test.scala:4)
at bug.Bug$delayedInit$body.apply(Test.scala:8)
at scala.Function0$class.apply$mcV$sp(Function0.scala:40)
...
何じゃこりゃ?これは Scala 2.10.1 の新しいバグのようです。 に変更するscalaVersion := "2.10.0"
と問題なく実行されるためです。
回避策のアイデアはありますか?(例: マジック コンパイラ フラグ)