diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt index 9659c29254e..9c399084127 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt @@ -316,7 +316,14 @@ class CallAndReferenceGenerator( val calleeReference = variableAssignment.calleeReference val symbol = 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 -> val assignedValue = visitor.convertToIrExpression(variableAssignment.rValue) when (symbol) { diff --git a/compiler/testData/codegen/bytecodeText/prefixIntVarIncrement.kt b/compiler/testData/codegen/bytecodeText/prefixIntVarIncrement.kt index ff725ab0e19..13e5070405f 100644 --- a/compiler/testData/codegen/bytecodeText/prefixIntVarIncrement.kt +++ b/compiler/testData/codegen/bytecodeText/prefixIntVarIncrement.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR fun main(args: Array) { var i = 10 ++i