IDEA-165108 Objects.requireNonNull with argument of primitive type should be reported as warning

This commit is contained in:
Tagir Valeev
2017-05-15 13:08:30 +07:00
parent 58de421e8a
commit b3339b7cfd
13 changed files with 323 additions and 2 deletions
@@ -0,0 +1,29 @@
import org.jetbrains.annotations.*;
import java.util.*;
abstract class ObviousNullCheck {
abstract String getFoo();
abstract String getBar();
void test() {
assertNotNull(<warning descr="Useless null-check: a value of primitive type is never null">5 + 6</warning>);
Objects.requireNonNull(<warning descr="Useless null-check: literal is never null">"xyz"</warning>, "xyz");
Objects.requireNonNull((<warning descr="Useless null-check: concatenation is never null">getFoo() + getBar()</warning>));
Objects.requireNonNull(<warning descr="Useless null-check: newly created object is never null">new ArrayList()</warning>, () -> "new returned null");
String s = Objects.requireNonNull(<warning descr="Useless null-check: literal is never null">" x "</warning>);
String s1 = trim(" x ");
}
@Contract(value="null -> fail", pure=true)
String trim(String s) {
return s.trim();
}
@Contract(value="null -> fail", pure=true)
static void assertNotNull(Object obj) {
if(obj == null) throw new NullPointerException();
}
}