[FIR] Track inc and dec operator calls in preliminary loop visitor, ^KT-44879 Fixed

This commit is contained in:
Ivan Kochurkin
2022-03-30 19:21:47 +03:00
committed by teamcity
parent fc77d0d26b
commit e9b9322672
3 changed files with 5 additions and 2 deletions
@@ -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)
@@ -2,7 +2,7 @@ public fun foo() {
var i: Any = 1
if (i is Int) {
while (i != 10) {
i<!UNRESOLVED_REFERENCE!>++<!>
i++
}
}
}
@@ -2,7 +2,7 @@ public fun foo() {
var i: Int? = 1
if (i != null) {
while (i != 10) {
i<!UNSAFE_CALL!>++<!>
i++
}
}
}