From a0fb6a5a63c23be92ba5c730c2315ab7a6c5b98a Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 25 Sep 2013 18:30:20 +0200 Subject: [PATCH] let IsNullCheck mean null->true, the former !null->false meaning was useless --- .../codeInspection/dataFlow/ControlFlowAnalyzer.java | 6 +++--- .../testData/inspection/dataFlow/fixture/IsNullCheck.java | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) 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 0c6b9e5e625b..fed5b5b2e54a 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 @@ -1507,9 +1507,9 @@ class ControlFlowAnalyzer extends JavaElementVisitor { if (type == ASSERT_IS_NULL_METHOD || type == ASSERT_IS_NOT_NULL_METHOD) { constraints[checkedParam] = type == ASSERT_IS_NOT_NULL_METHOD ? ValueConstraint.NULL_VALUE : ValueConstraint.NOT_NULL_VALUE; return Collections.singletonList(new MethodContract(constraints, ValueConstraint.THROW_EXCEPTION)); - } else if (type == IS_NULL_METHOD || type == IS_NOT_NULL_METHOD) { - constraints[checkedParam] = type == IS_NULL_METHOD ? ValueConstraint.NOT_NULL_VALUE : ValueConstraint.NULL_VALUE; - return Collections.singletonList(new MethodContract(constraints, ValueConstraint.FALSE_VALUE)); + } else if (type == IS_NOT_NULL_METHOD || type == IS_NULL_METHOD) { + constraints[checkedParam] = ValueConstraint.NULL_VALUE; + return Collections.singletonList(new MethodContract(constraints, type == IS_NULL_METHOD ? ValueConstraint.TRUE_VALUE : ValueConstraint.FALSE_VALUE)); } else { //assertTrue or assertFalse constraints[checkedParam] = type == ASSERT_FALSE_METHOD ? ValueConstraint.TRUE_VALUE : ValueConstraint.FALSE_VALUE; return Collections.singletonList(new MethodContract(constraints, ValueConstraint.THROW_EXCEPTION)); diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/IsNullCheck.java b/java/java-tests/testData/inspection/dataFlow/fixture/IsNullCheck.java index 1b2c48593a16..f87e0de62022 100644 --- a/java/java-tests/testData/inspection/dataFlow/fixture/IsNullCheck.java +++ b/java/java-tests/testData/inspection/dataFlow/fixture/IsNullCheck.java @@ -2,8 +2,9 @@ public class IsNullCheck { void bar() { final Value v = call(); if (Value.isNull(v)) { - if(v == null) {} + return; } + if(v == null) {} } Value call() {return new Value();} }