miniboxing-plugin icon indicating copy to clipboard operation
miniboxing-plugin copied to clipboard

new Array[AnyRef](...).asInstanceOf[Array[T]] not supported

Open VladUreche opened this issue 9 years ago • 0 comments

... for a good reason. But we need to either issue errors of handle it:

scala> def foo[T](t: T) = {
     |   val arr = new Array[AnyRef](10).asInstanceOf[Array[T]]
     |   arr(0) = t
     | }
foo: [T](t: T)Unit

scala> foo(4)

But when we add the @miniboxed annotation:

scala> def foo[@miniboxed T](t: T) = {
     |   val arr = new Array[AnyRef](10).asInstanceOf[Array[T]]
     |   arr(0) = t
     | }
foo: [T](t: T)Unit

scala> foo(4)
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [I
  at miniboxing.runtime.MiniboxArrayLong.mbarray_update_minibox(MiniboxArrayLong.java:57)
  at .foo$n$J(<console>:9)
  ... 33 elided

VladUreche avatar Jun 16 '15 01:06 VladUreche