blob: 0d3d5ba1131d82a2772ed936aa231ba8b1aff6cc [file]
@file:OptIn(ExperimentalVersionOverloading::class)
@PublishedApi
internal fun invokeTransform(value: Int, transform: (Int) -> String): String = transform(value)
inline fun crossinlineTrailing(
@IntroducedAt("1") value: Int = 1,
crossinline transform: (Int) -> String,
): String = invokeTransform(value) { transform(it) }
inline fun noinlineTrailing(
@IntroducedAt("1") value: Int = 2,
noinline transform: (Int) -> String,
): String = transform(value)
fun box(): String {
if (crossinlineTrailing { "C$it" } != "C1") return "FAIL crossinline default"
if (crossinlineTrailing(3) { "C$it" } != "C3") return "FAIL crossinline explicit"
if (noinlineTrailing { "N$it" } != "N2") return "FAIL noinline default"
if (noinlineTrailing(4) { "N$it" } != "N4") return "FAIL noinline explicit"
return "OK"
}