diff --git a/java/java-impl/src/com/intellij/codeInspection/dataFlow/DfaMemoryStateImpl.java b/java/java-impl/src/com/intellij/codeInspection/dataFlow/DfaMemoryStateImpl.java index f28f743b041f..e291c92f2bcd 100644 --- a/java/java-impl/src/com/intellij/codeInspection/dataFlow/DfaMemoryStateImpl.java +++ b/java/java-impl/src/com/intellij/codeInspection/dataFlow/DfaMemoryStateImpl.java @@ -257,6 +257,8 @@ public class DfaMemoryStateImpl implements DfaMemoryState { } public void setVarValue(DfaVariableValue var, DfaValue value) { + if (var == value) return; + flushVariable(var); if (value instanceof DfaUnknownValue) return; diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV78370/expected.xml b/java/java-tests/testData/inspection/dataFlow/IDEADEV78370/expected.xml new file mode 100644 index 000000000000..ec272abeaa3a --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/IDEADEV78370/expected.xml @@ -0,0 +1,3 @@ + + + diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV78370/src/NoWarnings.java b/java/java-tests/testData/inspection/dataFlow/IDEADEV78370/src/NoWarnings.java new file mode 100644 index 000000000000..ace2d06e1df9 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/IDEADEV78370/src/NoWarnings.java @@ -0,0 +1,8 @@ +import org.jetbrains.annotations.Nullable; + +public class NoWarnings { + int f(@Nullable String value) { + value = value == null ? "" : value; + return value.hashCode(); + } +} diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java index c2b1a252839e..dc0428ae3fa8 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java @@ -81,6 +81,7 @@ public class DataFlowInspectionTest extends InspectionTestCase { public void testIDEADEV74518() throws Exception { doTest(); } public void testIDEADEV74518_2() throws Exception { doTest(); } public void testIDEADEV77819() throws Exception { doTest(); } + public void testIDEADEV78370() throws Exception { doTest(); } public void testRegressionByPti() throws Exception { doTest(); }