Re: VerifyError ascribing java annotations to scala.annotation.Annotation

Daniel Armak <[email protected]> Mon, 1 Feb 2016 21:10:17 +0200
Newsgroups gmane.comp.lang.scala
Message-ID <CADtYB+mnQQz21xgqgNjcVswyVKAr-NHUi6+RKGDXsuW76KA88g@mail.gmail.com>
Even weirder:

scala> val x: Deprecated = null
x: Deprecated = null

scala> x: StaticAnnotation
res14: scala.annotation.StaticAnnotation = null

scala> (x: StaticAnnotation): Annotation
res15: scala.annotation.Annotation = null

scala> x: Annotation
java.lang.VerifyError: Bad type on operand stack

​
-- 
Daniel Armak

On Mon, Feb 1, 2016 at 8:50 PM, Daniel Armak <[email protected]> wrote:

> scala> import scala.reflect.runtime.universe.typeOf
> scala> import scala.annotation.Annotation
> scala> import java.lang.Deprecated
> ​
> scala> typeOf[Deprecated] <:< typeOf[Annotation]
> res0: Boolean = true
> ​
> scala> val x: Deprecated = null
> x: Deprecated = null
> ​
> scala> x: Annotation
> java.lang.VerifyError: Bad type on operand stack
>
> The same happens with any Java annotation, Deprecated isn’t special.
>
> What is the intention? Why should Java annotations subtype
> scala.annotation.Annotation?
>
> This is mentioned in a comment in SI-9400, but that’s about a different
> issue and I think if this is a bug it deserves its own ticket.
> ​
> --
> Daniel Armak
>

-- 
You received this message because you are subscribed to the Google Groups "scala-language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.