Files
kotlin-fork/compiler/testData/codegen/box/reified/defaultJavaClass.kt
T
vladislav.grechko cfcdc6f0ae [JVM_IR] Box primitive types in class literals of reified type arguments
Bytecode inliner boxes primitive types in class literals of reified type
arguments. This is by design, and we should backport this behaviour to
IR inliner.

^KT-60144: Fixed
2023-08-02 10:48:22 +00:00

21 lines
551 B
Kotlin
Vendored

// TARGET_BACKEND: JVM
// WITH_STDLIB
import kotlin.test.assertEquals
inline fun <reified T : Any> foo(x: Class<T> = T::class.java): String = x.getName()
inline fun <reified R : Any> bar(x: R): String = foo<R>()
fun box(): String {
assertEquals("java.lang.String", foo<String>())
assertEquals("java.lang.Integer", foo<Int>())
assertEquals("java.lang.Object", foo<Any>())
assertEquals("java.lang.String", bar("abc"))
assertEquals("java.lang.Integer", bar(1))
assertEquals("java.lang.Object", bar(Any()))
return "OK"
}