blob: d9e759febd0728a5d104ede55ccd1beee53553ae [file]
@file:OptIn(ExperimentalVersionOverloading::class)
fun callableReferenceTarget(value: String): Int = value.length
fun callableReferenceDefault(
value: String = "a",
@IntroducedAt("1") transform: (String) -> Int = ::callableReferenceTarget,
@IntroducedAt("2") result: Int = transform(value),
): Int = result
fun box(): String {
if (callableReferenceDefault() != 1) return "FAIL default"
if (callableReferenceDefault("OK") != 2) return "FAIL first"
val reference: (String, (String) -> Int, Int) -> Int = ::callableReferenceDefault
if (reference("OK", ::callableReferenceTarget, 42) != 42) return "FAIL reference"
return "OK"
}