JVM_IR: Do not unbox Result argument inside SAM adapters

#KT-45259 Fixed
This commit is contained in:
Ilmir Usmanov
2021-03-12 19:25:12 +01:00
parent 6fab1305e9
commit 4099dfc7e0
11 changed files with 223 additions and 1 deletions
@@ -0,0 +1,20 @@
// WITH_RUNTIME
// KJS_WITH_FULL_RUNTIME
inline class Result<T>(val isSuccess: Boolean)
fun interface ResultHandler<T> {
fun onResult(result: Result<T>)
}
fun doSmth(resultHandler: ResultHandler<Boolean>) {
resultHandler.onResult(Result(true))
}
fun box(): String {
var res = "FAIL"
doSmth { result ->
res = if (result.isSuccess) "OK" else "FAIL 1"
}
return res
}
@@ -0,0 +1,19 @@
// WITH_RUNTIME
// KJS_WITH_FULL_RUNTIME
// IGNORE_BACKEND: JVM
fun interface ResultHandler<T> {
fun onResult(result: Result<T>)
}
fun doSmth(resultHandler: ResultHandler<Boolean>) {
resultHandler.onResult(Result.success(true))
}
fun box(): String {
var res = "FAIL"
doSmth { result ->
res = if (result.isSuccess) "OK" else "FAIL 1"
}
return res
}