blob: f8512c444dfbfaf3e9ed8f5dccc4b93ef13e4233 [file]
// DUMP_IR
import org.jetbrains.kotlin.plugin.sandbox.MyInlineable
fun runUsual(block: () -> Unit) { block.invoke() }
fun runInlineable(block: @MyInlineable () -> Unit) { block.invoke() }
fun test_1(): Int {
var x = 0
val l0 = { x++; Unit }
val l1: some.MyInlineableFunction0<Unit> = { x++; Unit }
val l2: @MyInlineable (() -> Unit) = { x++ }
val l3 = @MyInlineable { x++; Unit }
runUsual(l0)
runUsual { x++ }
runInlineable(l0)
runInlineable(l1)
runInlineable(l2)
runInlineable(l3)
runInlineable { x++ }
runInlineable @MyInlineable { x++ }
return x
}
fun runInlineable2(block: some.MyInlineableFunction1<String, String>): String {
return block.invoke("O")
}
fun test_2(): String {
return runInlineable2 { it + "K" }
}
fun box(): String {
val res1 = test_1()
if (res1 != 8) return "Fail 1: $res1"
val res2 = test_2()
if (res2 != "OK") return "Fail 2: $res2"
return "OK"
}