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.
33 lines
708 B
Kotlin
Vendored
33 lines
708 B
Kotlin
Vendored
public class A {
|
|
fun getFromClass(): Boolean {
|
|
try {
|
|
val a = str
|
|
return false
|
|
} catch (e: RuntimeException) {
|
|
return true
|
|
}
|
|
}
|
|
|
|
fun getFromCompanion() = Companion.getFromCompanion()
|
|
|
|
private companion object {
|
|
private lateinit var str: String
|
|
|
|
fun getFromCompanion(): Boolean {
|
|
try {
|
|
val a = str
|
|
return false
|
|
} catch (e: RuntimeException) {
|
|
return true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
if (!A().getFromClass()) return "Fail getFromClass"
|
|
if (!A().getFromCompanion()) return "Fail getFromCompanion"
|
|
|
|
return "OK"
|
|
}
|