Support array of annotation in KotlinJvmBinaryClass

KotlinJvmBinaryClass.AnnotationArrayArgumentVisitor didn't cover the
case when the element type is an Annotation. Therefore, when the
compiler read an array of annotations from JVM binary classes built from
Kotlin sources, it got an empty array regardless of what was written in
the bytecode.

For example, Foo.value below is read as an empty array when SomeClass
resides in another Kotlin module.

  @Foo(
    value = [Bar(1), Bar(2)]
  )
  class SomeClass
This commit is contained in:
Ting-Yuan Huang
2021-03-25 22:34:47 -07:00
committed by Alexander Udalov
parent 5e392a511f
commit 6c989bfd4b
17 changed files with 133 additions and 0 deletions
@@ -0,0 +1,16 @@
// ALLOW_AST_ACCESS
package test
annotation class Anno(
val value: Array<Bnno>
)
annotation class Bnno(
val value: String
)
@Anno(
value = [Bnno("x"), Bnno("y")]
)
public class AnnotationInArray