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 daca79be201e..35afab6ed13c 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 @@ -1891,7 +1891,7 @@ public class ControlFlowAnalyzer extends JavaElementVisitor { @Override public void visitPrefixExpression(PsiPrefixExpression expression) { startElement(expression); - DfaValue dfaValue = myFactory.createValue(expression); + DfaValue dfaValue = expression.getOperationTokenType() == JavaTokenType.EXCL ? null : myFactory.createValue(expression); if (dfaValue != null) { // Constant expression is computed: just push the result addInstruction(new PushInstruction(dfaValue, expression)); diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/DoubleNaN.java b/java/java-tests/testData/inspection/dataFlow/fixture/DoubleNaN.java index 714035000412..f363d23a257f 100644 --- a/java/java-tests/testData/inspection/dataFlow/fixture/DoubleNaN.java +++ b/java/java-tests/testData/inspection/dataFlow/fixture/DoubleNaN.java @@ -6,4 +6,9 @@ public class DoubleNaN { System.out.println("oops"); } } + + void test2() { + System.out.println(1.0 == Double.NaN); + System.out.println(!(1.0 < Double.NaN)); + } } \ No newline at end of file