[FIR] Track inc and dec operator calls in preliminary loop visitor, ^KT-44879 Fixed
This commit is contained in:
+3
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.resolve.dfa
|
package org.jetbrains.kotlin.fir.resolve.dfa
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.KtFakeSourceElementKind
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.expressions.*
|
import org.jetbrains.kotlin.fir.expressions.*
|
||||||
@@ -41,6 +42,8 @@ class PreliminaryLoopVisitor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitVariableAssignment(variableAssignment: FirVariableAssignment, data: FirStatement?) {
|
override fun visitVariableAssignment(variableAssignment: FirVariableAssignment, data: FirStatement?) {
|
||||||
|
if (variableAssignment.source?.kind == KtFakeSourceElementKind.DesugaredIncrementOrDecrement) return
|
||||||
|
|
||||||
val reference = variableAssignment.lValue as? FirNamedReference
|
val reference = variableAssignment.lValue as? FirNamedReference
|
||||||
if (reference != null) {
|
if (reference != null) {
|
||||||
requireNotNull(data)
|
requireNotNull(data)
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ public fun foo() {
|
|||||||
var i: Any = 1
|
var i: Any = 1
|
||||||
if (i is Int) {
|
if (i is Int) {
|
||||||
while (i != 10) {
|
while (i != 10) {
|
||||||
i<!UNRESOLVED_REFERENCE!>++<!>
|
i++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ public fun foo() {
|
|||||||
var i: Int? = 1
|
var i: Int? = 1
|
||||||
if (i != null) {
|
if (i != null) {
|
||||||
while (i != 10) {
|
while (i != 10) {
|
||||||
i<!UNSAFE_CALL!>++<!>
|
i++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user