573188bdc4
Currently FirThisReceiverExpression of instance methods are translated to references of the class' thisReceiver, not the method's dispatch receiver, which causes problems with IrFrameMap::typeOf, as the class' thisReceiver is not in the typeMap. This commit translates non-qualified "this" references of instance methods to references of the methods' dispatch receiver.
12 lines
313 B
Kotlin
Vendored
12 lines
313 B
Kotlin
Vendored
// KT-16291 Smart cast doesn't work when getting class of instance
|
|
|
|
class Foo(val s: String) {
|
|
override fun equals(other: Any?): Boolean {
|
|
return other != null && other::class == this::class && s == (other as Foo).s
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
return if (Foo("a") == Foo("a")) "OK" else "Fail"
|
|
}
|