Files
kotlin-fork/compiler/testData/codegen/box/smartCasts/kt19058.kt
T
Dmitry Petrov bf3e896464 Update 'this' extension receiver when there's a smart cast
If 'this' (implicit or explicit) was used as an extension receiver,
and the corresponding call required a smart-cast,
this information was effectively lost in "old" resolution & inference,
but is required by "old" JVM BE to generate proper CHECKCASTs.
2017-07-21 08:58:52 +03:00

19 lines
330 B
Kotlin
Vendored

// TARGET_BACKEND: JVM
// FILE: Test.kt
open class KFoo {
fun foo(): String {
if (this is KFooBar) return bar
throw AssertionError()
}
}
class KFooBar : KFoo(), JBar
fun box(): String = KFooBar().foo()
// FILE: JBar.java
public interface JBar {
default String getBar() {
return "OK";
}
}