Support Array<KClass> in instantiated annotations
#KT-47703 Fixed
This commit is contained in:
@@ -60,7 +60,7 @@ fun box(): String {
|
||||
assert(anno.intArr.contentEquals(intArrayOf(1, 2)))
|
||||
assert(anno.arrOfE.contentEquals(arrayOf(E.E0)))
|
||||
assert(anno.arrOfA.size == 1)
|
||||
// assert(anno.arrOfK.size == 2) TODO(KT-47703): Array<KClass> to Array<j.l.Class> conversion
|
||||
assert(anno.arrOfK.size == 2)
|
||||
val ann = anno.a
|
||||
assertEquals(ann.b, 1.toByte())
|
||||
assertEquals(ann.s, 1.toShort())
|
||||
|
||||
+2
@@ -21,6 +21,7 @@ annotation class C(
|
||||
val i: Int = 42,
|
||||
val b: B = B(),
|
||||
val kClass: KClass<*> = B::class,
|
||||
val kClassArray: Array<KClass<*>> = [E::class, A::class],
|
||||
val e: E = E.B,
|
||||
val aS: Array<String> = arrayOf("a", "b"),
|
||||
val aI: IntArray = intArrayOf(1, 2)
|
||||
@@ -37,6 +38,7 @@ fun box(): String {
|
||||
assertEquals(42, c.i)
|
||||
assertEquals(A(), c.b.a)
|
||||
assertEquals(B::class, c.kClass)
|
||||
assertEquals(2, c.kClassArray.size)
|
||||
assertEquals(E.B, c.e)
|
||||
assert(arrayOf("a", "b").contentEquals(c.aS))
|
||||
assert(intArrayOf(1, 2).contentEquals(c.aI))
|
||||
|
||||
@@ -45,7 +45,7 @@ fun box(): String {
|
||||
)
|
||||
val s = anno.toString()
|
||||
val targetJVM = "@test.Anno(s=OK, i=42, f=2.718281828, u=43, e=E0, a=@test.A(b=1, s=1, i=1, f=1.0, d=1.0, l=1, c=c, bool=true), " +
|
||||
"k=interface test.A (Kotlin reflection is not available), arr=[], intArr=[1, 2], arrOfE=[E0], arrOfA=[@test.Empty()])"
|
||||
"k=interface test.A, arr=[], intArr=[1, 2], arrOfE=[E0], arrOfA=[@test.Empty()])"
|
||||
val targetJS = "@test.Anno(s=OK, i=42, f=2.718281828, u=43, e=E0, a=@test.A(b=1, s=1, i=1, f=1, d=1, l=1, c=c, bool=true), k=class A, arr=[...], intArr=[...], arrOfE=[...], arrOfA=[...])"
|
||||
val targetNative = targetJVM
|
||||
.replace(" (Kotlin reflection is not available)", "")
|
||||
|
||||
Reference in New Issue
Block a user