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.
16 lines
511 B
Kotlin
Vendored
16 lines
511 B
Kotlin
Vendored
// KT-5956 java.lang.AbstractMethodError: test.Thing.subSequence(II)Ljava/lang/CharSequence
|
|
|
|
class Thing(val delegate: CharSequence) : CharSequence {
|
|
override fun get(index: Int): Char {
|
|
throw UnsupportedOperationException()
|
|
}
|
|
override val length: Int get() = 0
|
|
override fun subSequence(start: Int, end: Int) = delegate.subSequence(start, end)
|
|
}
|
|
|
|
fun box(): String {
|
|
val txt = Thing("hello there")
|
|
val s = txt.subSequence(0, 1)
|
|
return if ("$s" == "h") "OK" else "Fail: $s"
|
|
}
|