diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/PreliminaryLoopVisitor.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/PreliminaryLoopVisitor.kt index da63de0ce91..9bdbd01cf08 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/PreliminaryLoopVisitor.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/PreliminaryLoopVisitor.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.fir.resolve.dfa +import org.jetbrains.kotlin.KtFakeSourceElementKind import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.expressions.* @@ -41,6 +42,8 @@ class PreliminaryLoopVisitor { } override fun visitVariableAssignment(variableAssignment: FirVariableAssignment, data: FirStatement?) { + if (variableAssignment.source?.kind == KtFakeSourceElementKind.DesugaredIncrementOrDecrement) return + val reference = variableAssignment.lValue as? FirNamedReference if (reference != null) { requireNotNull(data) diff --git a/compiler/testData/diagnostics/tests/smartCasts/variables/varNotChangedInLoop.fir.kt b/compiler/testData/diagnostics/tests/smartCasts/variables/varNotChangedInLoop.fir.kt index 4c61f334a5c..8127910c036 100644 --- a/compiler/testData/diagnostics/tests/smartCasts/variables/varNotChangedInLoop.fir.kt +++ b/compiler/testData/diagnostics/tests/smartCasts/variables/varNotChangedInLoop.fir.kt @@ -2,7 +2,7 @@ public fun foo() { var i: Any = 1 if (i is Int) { while (i != 10) { - i++ + i++ } } } diff --git a/compiler/testData/diagnostics/tests/smartCasts/varnotnull/varNotChangedInLoop.fir.kt b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/varNotChangedInLoop.fir.kt index 30698d4327c..bf54f66b125 100644 --- a/compiler/testData/diagnostics/tests/smartCasts/varnotnull/varNotChangedInLoop.fir.kt +++ b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/varNotChangedInLoop.fir.kt @@ -2,7 +2,7 @@ public fun foo() { var i: Int? = 1 if (i != null) { while (i != 10) { - i++ + i++ } } }