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.
34 lines
606 B
Kotlin
Vendored
34 lines
606 B
Kotlin
Vendored
var holder = ""
|
|
|
|
var mainShape: Shape? = null
|
|
|
|
fun getShape(): Shape? {
|
|
holder += "getShape1()"
|
|
mainShape = Shape("fail")
|
|
return mainShape
|
|
}
|
|
|
|
fun getOK(): String {
|
|
holder += "->OK"
|
|
return "OK"
|
|
}
|
|
|
|
|
|
class Shape(var result: String) {
|
|
|
|
var innerShape: Shape? = null
|
|
|
|
fun getShape2(): Shape? {
|
|
holder += "->getShape2()"
|
|
innerShape = Shape(result)
|
|
return innerShape
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
getShape()?.getShape2()?.result = getOK();
|
|
|
|
if (holder != "getShape1()->getShape2()->OK") return "fail $holder"
|
|
|
|
return mainShape!!.innerShape!!.result
|
|
} |