Files
kotlin-fork/js/js.translator/testData/box/reflection/kClassCompanion.kt
T
2023-11-22 09:21:44 +00:00

34 lines
968 B
Kotlin
Vendored

class A {
companion object {
fun getSimpleName() = this::class.simpleName
}
}
class B {
companion object MyCompanion {
fun getSimpleName() = this::class.simpleName
}
}
fun getSimpleName(x: Any) = x::class.simpleName
inline fun <reified T> getSimpleNameReified(x: T) = T::class.simpleName
fun box(): String {
assertEquals("Companion", A.getSimpleName())
assertEquals("MyCompanion", B.getSimpleName())
assertEquals("Companion", A.Companion.getSimpleName())
assertEquals("MyCompanion", B.MyCompanion.getSimpleName())
assertEquals("Companion", getSimpleName(A.Companion))
assertEquals("MyCompanion", getSimpleName(B.MyCompanion))
assertEquals("Companion", getSimpleNameReified(A.Companion))
assertEquals("MyCompanion", getSimpleNameReified(B.MyCompanion))
assertEquals("Companion", A.Companion::class.simpleName)
assertEquals("MyCompanion", B.MyCompanion::class.simpleName)
return "OK"
}