diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java
index 2dd7c447e020..de52a5db2c56 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java
@@ -1710,6 +1710,11 @@ public class ControlFlowAnalyzer extends JavaElementVisitor {
anchor = reference;
}
else {
+ if (ExpressionUtils.isVoidContext(expression) && ContainerUtil.all(contracts, c ->
+ c.getReturnValue() != ContractReturnValue.fail() && !(c.getReturnValue() instanceof ContractReturnValue.ParameterReturnValue))) {
+ // Do not track contracts if return value is not used
+ contracts = Collections.emptyList();
+ }
addInstruction(new MethodCallInstruction(expression, myFactory.createValue(expression), contracts));
anchor = expression;
}
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/FlushedNullableOnUnknownCall.java b/java/java-tests/testData/inspection/dataFlow/fixture/FlushedNullableOnUnknownCall.java
new file mode 100644
index 000000000000..ef963ae18304
--- /dev/null
+++ b/java/java-tests/testData/inspection/dataFlow/fixture/FlushedNullableOnUnknownCall.java
@@ -0,0 +1,26 @@
+import org.jetbrains.annotations.*;
+
+class Inspection {
+
+ @Nullable
+ private Object o;
+
+ public void test1() {
+ check(o);
+ foo(o);
+ }
+
+ public static Object check(@Nullable final Object o) {
+ if (o != null && is()) {
+ }
+ return null;
+ }
+
+ private static boolean is() {
+ System.out.println();
+ return true;
+ }
+
+ private static void foo(@NotNull final Object obj) {
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowInspectionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowInspectionTest.java
index 7b9c2f2266fd..d89e591109eb 100644
--- a/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowInspectionTest.java
+++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowInspectionTest.java
@@ -693,4 +693,5 @@ public class DataFlowInspectionTest extends DataFlowInspectionTestCase {
public void testFinalStaticFields() { doTest(); }
public void testReassignInConstructor() { doTest(); }
public void testCollectionViewsSize() { doTest(); }
+ public void testFlushedNullableOnUnknownCall() { doTest(); }
}