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.
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
open class KFoo {
|
||||
fun foo(): String {
|
||||
if (this is KFooQux) return qux
|
||||
throw AssertionError()
|
||||
}
|
||||
}
|
||||
|
||||
class KFooQux : KFoo()
|
||||
|
||||
val KFooQux.qux get() = "OK"
|
||||
|
||||
fun box() = KFooQux().foo()
|
||||
Reference in New Issue
Block a user