You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Xamarin.Android.Tools.Bytecode] Support Runtime[In]VisibleAnnotations
Context: #466
While investigating issue #466, I ran across an "oddity" within the
type `kotlin/collections/AbstractCollection\$toString\$1.class`:
<api api-source="class-parse">
<package name="kotlin.collections" jni-name="kotlin/collections">
<class
name="AbstractCollection.toString.1"
jni-signature="Lkotlin/collections/AbstractCollection$toString$1;">
<implements
name="kotlin.jvm.functions.Function1"
name-generic-aware="kotlin.jvm.functions.Function1<E, java.lang.CharSequence>"
jni-type="Lkotlin/jvm/functions/Function1<TE;Ljava/lang/CharSequence;>;" />
<method
name="invoke"
jni-signature="(Ljava/lang/Object;)Ljava/lang/CharSequence;">
<parameter
name="it"
type="E"
jni-type="TE;" />
</method>
</class>
</package>
</api>
(Abbreviated output).
What's *bizarre* is that the `invoke()` method references the type
`E`, but there is no declaration of what `E` *is*.
*Normally*, there'd be a `<typeParameters/>` element, which is
provided by the `Signature` annotation.
Note that the above does *not* contain `<typeParameters/>`!
On the vague thought that maybe `RuntimeVisibleAnnotations` were being
used to store generic type information, add support to `class-parse`
to extract `RuntimeVisibleAnnotations` and
`RuntimeInvisibleAnnotations` annotation blobs.
0 commit comments