IDEA-88777 equlas() and == should be taken into account by nullability check

This commit is contained in:
peter
2012-07-17 18:54:47 +02:00
parent d92c416d82
commit ff89600364
6 changed files with 100 additions and 12 deletions
@@ -0,0 +1,59 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class Main {
@NotNull
private Object test1(@NotNull Object defVal, @Nullable final Object val) {
return defVal;
}
@NotNull
private Object test11(@NotNull Object defVal, @Nullable final Object val) {
if (val != null) {
return val;
}
return defVal;
}
@NotNull
private Object test5(@NotNull Object defVal, @Nullable final Object val) {
if (defVal == val) {
return val;
}
return defVal;
}
@NotNull
private Object test6(@NotNull Object defVal, @Nullable final Object val) {
if (val == defVal) {
return val;
}
return defVal;
}
@NotNull
private Object test7(@NotNull Object defVal, @Nullable final Object val) {
if (<warning descr="Method invocation 'val.equals(defVal)' may produce 'java.lang.NullPointerException'">val.equals(defVal)</warning>) {
return defVal;
}
return defVal;
}
@NotNull
private Object test8(@NotNull Object defVal, @Nullable final Object val) {
if (defVal.equals(val)) {
return val;
}
return defVal;
}
@NotNull private Object test9(@NotNull Object defVal, @Nullable final Object val) {
if (equals(val)) {
return val;
}
return defVal;
}
@NotNull private Object test10(@NotNull Object defVal, @Nullable final Object val) {
if (val != null) {
return val;
}
if (defVal.equals(val)) {
return <warning descr="Expression 'val' might evaluate to null but is returned by the method declared as @NotNull">val</warning>;
}
return defVal;
}
}
@@ -70,4 +70,6 @@ public class DataFlowInspectionFixtureTest extends JavaCodeInsightFixtureTestCas
public void testMultiCatch() throws Throwable { doTest(); }
public void testContinueFlushesLoopVariable() throws Throwable { doTest(); }
public void testEqualsNotNull() throws Throwable { doTest(); }
}