| // 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" |
| } |