f3a7312ee6
K1 uses CLASS, and libraries like kotlinx-metadata-jvm and kotlin-reflect already rely on it. #KT-57641 Fixed
36 lines
679 B
Kotlin
Vendored
36 lines
679 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
// WITH_REFLECT
|
|
|
|
import kotlin.test.assertEquals
|
|
|
|
object Obj {
|
|
fun foo() = 1
|
|
}
|
|
|
|
class A {
|
|
companion object {
|
|
fun foo() = 2
|
|
}
|
|
}
|
|
|
|
class B {
|
|
companion object Factory {
|
|
fun foo() = 3
|
|
}
|
|
}
|
|
|
|
class C
|
|
|
|
fun box(): String {
|
|
assertEquals(1, Obj::class.objectInstance!!.foo())
|
|
assertEquals(2, A.Companion::class.objectInstance!!.foo())
|
|
assertEquals(3, B.Factory::class.objectInstance!!.foo())
|
|
|
|
assertEquals(null, C::class.objectInstance)
|
|
assertEquals(null, String::class.objectInstance)
|
|
assertEquals(Unit, Unit::class.objectInstance)
|
|
assertEquals(null, object {}::class.objectInstance)
|
|
|
|
return "OK"
|
|
}
|