FIC: propagate info about conversions for deserialized classes

This commit is contained in:
Mikhail Zarechenskiy
2019-11-18 13:25:17 +03:00
parent 0fdebdfeba
commit 0e90d538df
13 changed files with 66 additions and 15 deletions
@@ -0,0 +1,29 @@
// !LANGUAGE: +NewInference +FunctionInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions
// FILE: A.kt
fun interface KRunnable {
fun invoke(): String
}
fun inA(k: KRunnable): String = k.invoke()
// FILE: B.kt
fun inB(k: KRunnable): String = k.invoke()
fun box(): String {
val first = inA(KRunnable { "O" }) + inB(KRunnable { "K" })
if (first != "OK") return "fail1: $first"
val second = inA { "O" } + inB { "K" }
if (second != "OK") return "fail2: $second"
val f1: () -> String = { "O" }
val f2: () -> String = { "K" }
val third = inA(f1) + inB(f2)
if (third != "OK") return "fail3: $third"
return "OK"
}