Support reflection tests on Android

This commit is contained in:
Mikhael Bogdanov
2019-01-22 17:48:45 +01:00
parent 91980c5293
commit f2a51d3b80
49 changed files with 235 additions and 174 deletions
@@ -1,5 +1,6 @@
// TARGET_BACKEND: JVM
// WITH_REFLECT
package test
import kotlin.reflect.jvm.javaMethod
import kotlin.test.assertEquals
@@ -20,8 +21,8 @@ interface C : B2
abstract class D : B1, C
fun box(): String {
assertEquals("public abstract void A1.a1()", D::a1.javaMethod!!.toString())
assertEquals("public abstract void A2.a2()", D::a2.javaMethod!!.toString())
assertEquals("public abstract void test.A1.a1()", D::a1.javaMethod!!.toString())
assertEquals("public abstract void test.A2.a2()", D::a2.javaMethod!!.toString())
return "OK"
}
@@ -1,6 +1,7 @@
// IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM
// WITH_REFLECT
package test
import kotlin.reflect.KCallable
import kotlin.reflect.jvm.*
@@ -33,26 +34,26 @@ fun KCallable<*>.getJavaTypesOfParams() = parameters.map { it.type.javaType }.to
fun KCallable<*>.getJavaTypeOfResult() = returnType.javaType.toString()
fun box(): String {
assertEquals("[class Z1]", Z1.publicXRef.getJavaTypesOfParams())
assertEquals("int", Z1.publicXRef.getJavaTypeOfResult())
assertEquals("[class test.Z1]", Z1.publicXRef.getJavaTypesOfParams())
assertEquals("int", Z1.publicXRef.getJavaTypeOfResult())
assertEquals("[]", Z1.publicXBoundRef.getJavaTypesOfParams())
assertEquals("int", Z1.publicXBoundRef.getJavaTypeOfResult())
assertEquals("[class Z2]", Z2.internalXRef.getJavaTypesOfParams())
assertEquals("int", Z2.internalXRef.getJavaTypeOfResult())
assertEquals("[class test.Z2]", Z2.internalXRef.getJavaTypesOfParams())
assertEquals("int", Z2.internalXRef.getJavaTypeOfResult())
assertEquals("[]", Z2.internalXBoundRef.getJavaTypesOfParams())
assertEquals("int", Z2.internalXBoundRef.getJavaTypeOfResult())
assertEquals("[class Z3]", Z3.privateXRef.getJavaTypesOfParams())
assertEquals("int", Z3.privateXRef.getJavaTypeOfResult())
assertEquals("[class test.Z3]", Z3.privateXRef.getJavaTypesOfParams())
assertEquals("int", Z3.privateXRef.getJavaTypeOfResult())
assertEquals("[]", Z3.privateXBoundRef.getJavaTypesOfParams())
assertEquals("int", Z3.privateXBoundRef.getJavaTypeOfResult())
assertEquals("[class ZZ]", ZZ::x.getJavaTypesOfParams())
assertEquals("[class test.ZZ]", ZZ::x.getJavaTypesOfParams())
// KT-28170
assertEquals("int", ZZ::x.getJavaTypeOfResult())