Files
kotlin-fork/compiler/testData/codegen/box/callableReference/kt55138.kt
T
Dmitriy Novozhilov aef9b129d2 [FIR] Add regression tests for number of issues fixed in K2
List of issues:
KT-4113,  KT-6822,  KT-7389,  KT-17817, KT-20223
KT-21463, KT-24503, KT-24737, KT-24779, KT-24901
KT-27261, KT-28668, KT-30497, KT-30756, KT-36958
KT-37365, KT-37490, KT-38288, KT-41038, KT-41721
KT-42136, KT-42169, KT-42449, KT-42715, KT-43553
KT-43603, KT-43846, KT-43936, KT-46288, KT-46301
KT-47373, KT-47484, KT-47490, KT-47495, KT-47750
KT-47815, KT-47870, KT-48975, KT-49024, KT-49045
KT-50134, KT-50160, KT-50550, KT-51045, KT-51143
KT-51796, KT-52262, KT-52424, KT-52860, KT-52934
KT-53086, KT-53494, KT-53671, KT-53752, KT-53819
KT-54478, KT-54518, KT-54931, KT-54990, KT-55138
KT-55379, KT-55555, KT-56243
2023-02-14 17:08:55 +00:00

45 lines
927 B
Kotlin
Vendored

// TARGET_BACKEND: JVM_IR
// IGNORE_BACKEND_K1: JVM_IR
// WITH_STDLIB
// ISSUE: KT-55138
interface Operation {
fun exec(input: Long): Long
}
class Add(private val addValue: Long) : Operation {
override fun exec(input: Long): Long {
return input + addValue
}
}
class Squared : Operation {
override fun exec(input: Long): Long {
return input * input
}
}
fun test(op: String, x: Long): Long {
var result = 0L
listOf(1L).forEach {
val operation2 = when (op) {
"*" -> {
Squared()::exec
}
"+" -> {
Add(42)::exec
}
else -> {
throw IllegalArgumentException("Unexpected op: $op")
}
}
result = operation2(x)
}
return result
}
fun box(): String {
val result = test("+", 4L)
return if (result == 46L) "OK" else "Error: $result"
}