Files
kotlin-fork/compiler/testData/codegen/box/smartCasts/complexExplicitReceiver.kt
T
Denis.Zharkov 5c62ee4ba8 FIR2IR: Fix complex cases of smart cast expressions used as dispatch receiver
It might be not only <ExpressionWithSmartCast>(a).foo(), but also
id(<ExpressionWithSmartCast>(a)).foo() and many other cases
2021-01-29 10:50:22 +03:00

27 lines
359 B
Kotlin
Vendored

abstract class A {
abstract fun o(): String
}
interface B {
fun k(): String
}
fun <T> id(x: T): T = x
fun foo(a: A?): String {
if (a is B) {
return id(a).o() + a!!.k()
}
return "fail"
}
class Impl : A(), B {
override fun o(): String = "O"
override fun k(): String = "K"
}
fun box(): String {
return foo(Impl())
}