diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/SimplifyForIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/SimplifyForIntention.kt index e1369d1b80f..dbbc803f382 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/SimplifyForIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/SimplifyForIntention.kt @@ -185,6 +185,7 @@ class SimplifyForIntention : SelfTargetingRangeIntention( } val property = parentCall.parent as? KtProperty + if (property != null && property.isVar) return null val resolvedCall = parentCall.getResolvedCall(context) ?: return null val descriptor = resolvedCall.resultingDescriptor diff --git a/idea/testData/intentions/iterationOverMap/DataClassWithLocalPropertyModified.kt b/idea/testData/intentions/iterationOverMap/DataClassWithLocalPropertyModified.kt new file mode 100644 index 00000000000..265783121ea --- /dev/null +++ b/idea/testData/intentions/iterationOverMap/DataClassWithLocalPropertyModified.kt @@ -0,0 +1,13 @@ +// IS_APPLICABLE: false +// WITH_RUNTIME + +data class XY(val x: String, val y: Int) +fun test(xys: Array) { + for (xy in xys) { + val x = xy.x + var y = xy.y + println(x + y) + y-- + println(y) + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index d4caec2a16a..65919a11d6c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -6603,6 +6603,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest { doTest(fileName); } + @TestMetadata("DataClassWithLocalPropertyModified.kt") + public void testDataClassWithLocalPropertyModified() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/iterationOverMap/DataClassWithLocalPropertyModified.kt"); + doTest(fileName); + } + @TestMetadata("EntriesCallIsMissing.kt") public void testEntriesCallIsMissing() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/iterationOverMap/EntriesCallIsMissing.kt");