Files
kotlin-fork/compiler/testData/codegen/box/callableReference/bound/equals/reflectionReference.kt
T
Vladimir Sukharev 3d60ed8874 [Test] Convert IGNORE: NATIVE directives in box tests from A to C
^KT-59057

Merge-request: KT-MR-10747
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-06-22 08:39:20 +00:00

36 lines
1.1 KiB
Kotlin
Vendored

// TARGET_BACKEND: JVM
// TARGET_BACKEND: JVM_IR
// WITH_REFLECT
import kotlin.reflect.full.*
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"
}