import kotlin.test.assertEquals inline fun foo(x: Class = javaClass()): String = x.getName() inline fun bar(x: R): String = foo() fun box(): String { assertEquals("java.lang.String", foo()) assertEquals("java.lang.Integer", foo()) assertEquals("java.lang.Object", foo()) assertEquals("java.lang.String", bar("abc")) assertEquals("java.lang.Integer", bar(1)) assertEquals("java.lang.Object", bar(Any())) return "OK" }