mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-11 08:31:30 +00:00
35 lines
1.2 KiB
Kotlin
Vendored
35 lines
1.2 KiB
Kotlin
Vendored
// TODO: investigate should it be ran for JS or not
|
|
// IGNORE_BACKEND: JS
|
|
|
|
// WITH_REFLECT
|
|
|
|
import kotlin.reflect.*
|
|
|
|
class C {
|
|
fun foo() {}
|
|
val bar = 42
|
|
}
|
|
|
|
val C_fooReflect = C::class.functions.find { it.name == "foo" }!!
|
|
val C_foo = C::foo
|
|
val cFoo = C()::foo
|
|
|
|
val C_barReflect = C::class.memberProperties.find { it.name == "bar" }!!
|
|
val C_bar = C::bar
|
|
val cBar= C()::bar
|
|
|
|
val Any.className: String
|
|
get() = this::class.qualifiedName!!
|
|
|
|
fun box(): String =
|
|
when {
|
|
C_fooReflect != C_foo -> "C_fooReflect != C_foo, ${C_fooReflect.className}"
|
|
C_foo != C_fooReflect -> "C_foo != C_fooReflect, ${C_foo.className}"
|
|
C_fooReflect == cFoo -> "C_fooReflect == cFoo, ${C_fooReflect.className}"
|
|
cFoo == C_fooReflect -> "cFoo == C_fooReflect, ${cFoo.className}"
|
|
C_barReflect != C_bar -> "C_barReflect != C_bar, ${C_barReflect.className}"
|
|
C_bar != C_barReflect -> "C_bar != C_barReflect, ${C_bar.className}"
|
|
C_barReflect == cBar -> "C_barReflect == cBar, ${C_barReflect.className}"
|
|
cBar == C_barReflect -> "cBar == C_barReflect, ${cBar.className}"
|
|
else -> "OK"
|
|
} |