| // FILE: 1.kt |
| |
| package test |
| |
| interface InlineTrait { |
| |
| private inline fun privateInline(s: () -> String): String { |
| return s() |
| } |
| |
| fun testPrivateInline(): String { |
| return privateInline { "private" } |
| } |
| |
| fun testPrivateInline2(): String { |
| return privateInline { "private2" } |
| } |
| |
| companion object { |
| inline final fun finalInline(s: () -> String): String { |
| return s() |
| } |
| } |
| } |
| |
| class Z : InlineTrait { |
| |
| } |
| |
| // FILE: 2.kt |
| |
| import test.* |
| |
| fun testClassObject(): String { |
| return InlineTrait.finalInline({ "classobject" }) |
| } |
| |
| fun box(): String { |
| if (Z().testPrivateInline() != "private") return "test1: ${Z().testPrivateInline()}" |
| if (Z().testPrivateInline2() != "private2") return "test2: ${Z().testPrivateInline2()}" |
| if (testClassObject() != "classobject") return "test3: ${testClassObject()}" |
| |
| return "OK" |
| } |