// FILE: 1.kt package test inline fun inline(s: () -> String): String { return s() } class InlineAll { inline fun inline(s: () -> String): String { return s() } companion object { inline fun inline(s: () -> String): String { return s() } } } // FILE: 2.kt import test.* fun testClassObjectCall(): String { return InlineAll.inline({"classobject"}) } fun testInstanceCall(): String { val inlineX = InlineAll() return inlineX.inline({"instance"}) } fun testPackageCall(): String { return inline({"package"}) } fun box(): String { if (testClassObjectCall() != "classobject") return "test1: ${testClassObjectCall()}" if (testInstanceCall() != "instance") return "test2: ${testInstanceCall()}" if (testPackageCall() != "package") return "test3: ${testPackageCall()}" return "OK" }