[JS IR] Add reflection tests

This commit is contained in:
Alexander Korepanov
2023-11-13 15:05:47 +01:00
committed by Space Team
parent c13cc38758
commit 85b2daf41d
7 changed files with 217 additions and 0 deletions
@@ -0,0 +1,33 @@
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"
}