Support reflection tests on Android
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
|
||||
// WITH_RUNTIME
|
||||
|
||||
package test
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
abstract class A<R> {
|
||||
@@ -20,6 +22,6 @@ inline fun<reified T> foo(): A<T> {
|
||||
fun box(): String {
|
||||
val y = foo<String>();
|
||||
assertEquals("OK", y.f())
|
||||
assertEquals("A<java.lang.String>", y.javaClass.getGenericSuperclass()?.toString())
|
||||
assertEquals("test.A<java.lang.String>", y.javaClass.getGenericSuperclass()?.toString())
|
||||
return "OK"
|
||||
}
|
||||
|
||||
@@ -3,12 +3,14 @@
|
||||
|
||||
// WITH_RUNTIME
|
||||
// Basically this test checks that no captured type used as argument for signature mapping
|
||||
|
||||
package test
|
||||
|
||||
class SwOperator<T>: Operator<List<T>, T>
|
||||
|
||||
interface Operator<R, T>
|
||||
|
||||
open class Inv<T>
|
||||
|
||||
class Obs<Y> {
|
||||
inline fun <reified X> lift(lift: Operator<out X, in Y>) = object : Inv<X>() {}
|
||||
}
|
||||
@@ -19,7 +21,7 @@ fun box(): String {
|
||||
val inv = o.lift(SwOperator())
|
||||
val signature = inv.javaClass.genericSuperclass.toString()
|
||||
|
||||
if (signature != "Inv<java.util.List<? extends java.lang.CharSequence>>") return "fail 1: $signature"
|
||||
if (signature != "test.Inv<java.util.List<? extends java.lang.CharSequence>>") return "fail 1: $signature"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
|
||||
// WITH_RUNTIME
|
||||
package test
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
@@ -27,6 +28,6 @@ inline fun<reified T> foo(): G {
|
||||
fun box(): String {
|
||||
val y = foo<String>().bar();
|
||||
assertEquals("OK", y.toString())
|
||||
assertEquals("A<java.lang.String>", y.javaClass.getGenericSuperclass()?.toString())
|
||||
assertEquals("test.A<java.lang.String>", y.javaClass.getGenericSuperclass()?.toString())
|
||||
return "OK"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
// WITH_RUNTIME
|
||||
|
||||
package test
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
open class A<T1, T2, T3>
|
||||
@@ -27,7 +29,7 @@ fun box(): String {
|
||||
Triple("java.lang.Integer", "java.lang.Double", "java.lang.Integer"),
|
||||
Triple("java.lang.Boolean", "java.lang.Double", "java.lang.Integer"),
|
||||
Triple("java.lang.Double", "java.lang.Boolean", "java.lang.Integer")
|
||||
).map { "A<${it.first}, ${it.second}, ${it.third}>" }
|
||||
).map { "test.A<${it.first}, ${it.second}, ${it.third}>" }
|
||||
|
||||
for (i in expected.indices) {
|
||||
assertEquals(expected[i], result[i].javaClass.getGenericSuperclass()?.toString(), "$i-th element")
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
|
||||
// WITH_RUNTIME
|
||||
package test
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
@@ -34,7 +35,7 @@ fun box(): String {
|
||||
val x2 = res.second.bar()
|
||||
assertEquals("OK", x1.toString())
|
||||
assertEquals("OK", x2.toString())
|
||||
assertEquals("A<java.lang.Integer>", x1.javaClass.getGenericSuperclass()?.toString())
|
||||
assertEquals("A<java.lang.String>", x2.javaClass.getGenericSuperclass()?.toString())
|
||||
assertEquals("test.A<java.lang.Integer>", x1.javaClass.getGenericSuperclass()?.toString())
|
||||
assertEquals("test.A<java.lang.String>", x2.javaClass.getGenericSuperclass()?.toString())
|
||||
return "OK"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user