JVM: inline default lambda coercions from bridge invoke

The type of the default lambda may be a subtype of the parameter type,
so we can't really generate our own coercions at all as we don't know
the precise Kotlin type of the `invoke` method.
This commit is contained in:
pyos
2021-06-27 22:02:39 +02:00
committed by max-kammerer
parent d0b9c4ae6b
commit 100d2d629c
18 changed files with 213 additions and 221 deletions
@@ -0,0 +1,14 @@
// SKIP_INLINE_CHECK_IN: inlineFun$default
// FILE: 1.kt
package test
inline class C(val value: Any?)
fun foo(x: Any?): C = x as C
inline fun inlineFun(s: (C) -> Any? = ::foo): Any? = s(C("OK"))
// FILE: 2.kt
import test.*
fun box(): String = (inlineFun() as C).value as String