// WITH_STDLIB // TARGET_BACKEND: JVM_IR // ISSUE: KT-62578 // MODULE: lib // FILE: lib.kt interface Base class Derived : Base data class Box(val className: String) val emptyBox: Box get() = Box("Nothing") @Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") inline fun foo(x: @kotlin.internal.NoInfer T): Box? { val klass = T::class return Box(klass.simpleName ?: "") } fun test_1(): Box { return foo(Derived()) ?: emptyBox } // MODULE: main(lib) // FILE: main.kt fun test_2(): Box { return foo(Derived()) ?: emptyBox } fun box(): String { val expectedName = "Base" val box1 = test_1() if (box1.className != expectedName) return "Fail 1: $box1" val box2 = test_2() if (box2.className != expectedName) return "Fail 2: $box2" return "OK" }