FIR2IR: Fix complex cases of smart cast expressions used as dispatch receiver

It might be not only <ExpressionWithSmartCast>(a).foo(), but also
id(<ExpressionWithSmartCast>(a)).foo() and many other cases
This commit is contained in:
Denis.Zharkov
2021-01-27 19:51:14 +03:00
parent b3b1eb57ae
commit 5c62ee4ba8
45 changed files with 193 additions and 91 deletions
@@ -10,7 +10,7 @@ private fun Reader.nextChar(): Char? {
)
when {
EQEQ(arg0 = tmp0_safe_receiver, arg1 = null) -> null
else -> tmp0_safe_receiver.toChar()
else -> tmp0_safe_receiver /*as Int */.toChar()
}
}
}
@@ -26,7 +26,7 @@ fun Reader.consumeRestOfQuotedSequence(sb: StringBuilder, quote: Char) {
val tmp1_safe_receiver: Char? = <this>.nextChar()
when {
EQEQ(arg0 = tmp1_safe_receiver, arg1 = null) -> null
else -> tmp1_safe_receiver.let<Char, StringBuilder?>(block = local fun <anonymous>(it: Char): StringBuilder? {
else -> tmp1_safe_receiver /*as Char */.let<Char, StringBuilder?>(block = local fun <anonymous>(it: Char): StringBuilder? {
return sb.append(p0 = it)
}
)