[FIR2IR] Fix generating of IINC instruction with FIR for inc/dec operations
This commit is contained in:
committed by
TeamCityServer
parent
3148913e60
commit
98596eaa08
+8
-1
@@ -316,7 +316,14 @@ class CallAndReferenceGenerator(
|
|||||||
val calleeReference = variableAssignment.calleeReference
|
val calleeReference = variableAssignment.calleeReference
|
||||||
val symbol =
|
val symbol =
|
||||||
calleeReference.toSymbolForCall(session, classifierStorage, declarationStorage, conversionScope, preferGetter = false)
|
calleeReference.toSymbolForCall(session, classifierStorage, declarationStorage, conversionScope, preferGetter = false)
|
||||||
val origin = IrStatementOrigin.EQ
|
val origin = if (variableAssignment.source?.kind is FirFakeSourceElementKind.DesugaredIncrementOrDecrement) {
|
||||||
|
if ((variableAssignment.rValue as? FirFunctionCall)?.calleeReference?.name?.asString() == "inc")
|
||||||
|
IrStatementOrigin.PREFIX_INCR
|
||||||
|
else
|
||||||
|
IrStatementOrigin.PREFIX_DECR
|
||||||
|
} else {
|
||||||
|
IrStatementOrigin.EQ
|
||||||
|
}
|
||||||
return variableAssignment.convertWithOffsets { startOffset, endOffset ->
|
return variableAssignment.convertWithOffsets { startOffset, endOffset ->
|
||||||
val assignedValue = visitor.convertToIrExpression(variableAssignment.rValue)
|
val assignedValue = visitor.convertToIrExpression(variableAssignment.rValue)
|
||||||
when (symbol) {
|
when (symbol) {
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
fun main(args: Array<String>) {
|
fun main(args: Array<String>) {
|
||||||
var i = 10
|
var i = 10
|
||||||
++i
|
++i
|
||||||
|
|||||||
Reference in New Issue
Block a user