33 lines
590 B
Kotlin
Vendored
33 lines
590 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
// WITH_STDLIB
|
|
// WITH_REFLECT
|
|
|
|
// MODULE: lib
|
|
// FILE: A.kt
|
|
|
|
class A {
|
|
val o = object {
|
|
@JvmName("jvmGetO")
|
|
fun getO(): String = "O"
|
|
}
|
|
|
|
val k = object {
|
|
@get:JvmName("jvmGetK")
|
|
val k: String = "K"
|
|
}
|
|
}
|
|
|
|
// MODULE: main(lib)
|
|
// FILE: B.kt
|
|
|
|
import kotlin.reflect.full.*
|
|
|
|
fun box(): String {
|
|
val a = A()
|
|
val obj1 = a.o
|
|
val o = obj1::class.declaredMemberFunctions.single().call(obj1) as String
|
|
val obj2 = a.k
|
|
val k = obj2::class.declaredMemberProperties.single().call(obj2) as String
|
|
return o + k
|
|
}
|