| import kotlin.test.* | |
| 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" | |
| } |