blob: 261f6c314b61ea9d7cb279fce2581f59f2e49e88 [file]
@file:OptIn(ExperimentalVersionOverloading::class)
fun invokeVersionedBlock(block: () -> String): String = block()
inline fun crossinlineVersioned(
@IntroducedAt("1") crossinline block: () -> String = { "O" },
): String = invokeVersionedBlock { block() }
inline fun noinlineVersioned(
@IntroducedAt("1") noinline block: () -> String = { "K" },
): String = block()
fun box(): String {
if (crossinlineVersioned() != "O") return "FAIL crossinline default"
if (crossinlineVersioned { "C" } != "C") return "FAIL crossinline explicit"
if (noinlineVersioned() != "K") return "FAIL noinline default"
if (noinlineVersioned { "N" } != "N") return "FAIL noinline explicit"
return "OK"
}