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 8e63fdb91e0b..6e42269132bb 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 @@ -1163,7 +1163,7 @@ class ControlFlowAnalyzer extends JavaElementVisitor { if (!shortCircuit) { if (i > 0) { - combineStackBooleans(false, operand); + combineStackBooleans(true, operand); } continue; } diff --git a/java/java-tests/testData/inspection/dataFlow/boxingBoolean/expected.xml b/java/java-tests/testData/inspection/dataFlow/boxingBoolean/expected.xml index eb4d42c5bf86..d04ea2815d43 100644 --- a/java/java-tests/testData/inspection/dataFlow/boxingBoolean/expected.xml +++ b/java/java-tests/testData/inspection/dataFlow/boxingBoolean/expected.xml @@ -36,9 +36,4 @@ Condition <code>o</code> at the left side of assignment expression is always <code>false</code>. Can be simplified to normal assignment. - - Test.java - 52 - Condition <code>o</code> is always <code>true</code> - diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/LongCircuitOperations.java b/java/java-tests/testData/inspection/dataFlow/fixture/LongCircuitOperations.java index e05c670be6af..d9e998461aaf 100644 --- a/java/java-tests/testData/inspection/dataFlow/fixture/LongCircuitOperations.java +++ b/java/java-tests/testData/inspection/dataFlow/fixture/LongCircuitOperations.java @@ -1,3 +1,5 @@ +import org.jetbrains.annotations.NotNull; + class X { int foo(String d1, String d2) { @@ -7,7 +9,7 @@ class X { } void foo2(String d1, String d2) { - if(d1 == null & d1 != null) + if(d1 == null & d1 != null) System.out.println("impossible"); } @@ -17,3 +19,16 @@ class X { } } +class Doo { + + void zoo(@NotNull Object t, @NotNull Object s) { + } + + + private void goo(Object t, Object t2) { + if (t != null & t2 != null) { + zoo(t, t2); + } + } + +}