| /* | |
| * Copy of JVM-backend test | |
| * Found at: compiler/testData/codegen/boxInline/simple/classObject.1.kt | |
| */ | |
| // FILE: lib.kt | |
| package foo | |
| 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: main.kt | |
| package foo | |
| // CHECK_BREAKS_COUNT: function=testClassObjectCall count=0 | |
| // CHECK_LABELS_COUNT: function=testClassObjectCall name=$l$block count=0 | |
| fun testClassObjectCall(): String { | |
| return InlineAll.inline({"classobject"}) | |
| } | |
| // CHECK_BREAKS_COUNT: function=testInstanceCall count=0 | |
| // CHECK_LABELS_COUNT: function=testInstanceCall name=$l$block count=0 | |
| fun testInstanceCall(): String { | |
| val inlineX = InlineAll() | |
| return inlineX.inline({"instance"}) | |
| } | |
| // CHECK_BREAKS_COUNT: function=testPackageCall count=0 | |
| // CHECK_LABELS_COUNT: function=testPackageCall name=$l$block count=0 | |
| 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" | |
| } |