5c62ee4ba8
It might be not only <ExpressionWithSmartCast>(a).foo(), but also id(<ExpressionWithSmartCast>(a)).foo() and many other cases
27 lines
359 B
Kotlin
Vendored
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())
|
|
}
|