Support mapping between Java and Kotlin reflection objects

This commit is contained in:
Alexander Udalov
2014-06-20 19:22:02 +04:00
parent c575ad9fb0
commit 704de8992e
33 changed files with 434 additions and 93 deletions
@@ -0,0 +1,29 @@
package test
class G<T>(val s: T) {
}
public trait ErrorsJvmTrait {
class object {
public val param : G<String> = G("STRING")
}
}
public class ErrorsJvmClass {
class object {
public val param : G<String> = G("STRING")
}
}
fun box(): String {
val genericTypeInTrait = javaClass<ErrorsJvmTrait>().getField("param").getGenericType()
if (genericTypeInTrait.toString() != "test.G<java.lang.String>") return "fail1: $genericTypeInTrait"
val genericTypeInClassObject = ErrorsJvmTrait.javaClass.getDeclaredField("param").getGenericType()
if (genericTypeInClassObject.toString() != "test.G<java.lang.String>") return "fail1: $genericTypeInClassObject"
val genericTypeInClass = javaClass<ErrorsJvmClass>().getField("param").getGenericType()
if (genericTypeInClass.toString() != "test.G<java.lang.String>") return "fail1: genericTypeInClass"
return "OK"
}