Files
openide/java/java-tests/testData/inspection/obviousNotNull/ObviousNullCheck.java
T
Tagir Valeev 9301835979 ObviousNullCheckInspection: support assertNull-like methods
Fixes IDEA-174782 "Useless null checks": highlight always-(not-)null arguments to assertNull/assertNotNull
2017-06-27 08:25:19 +03:00

39 lines
1.4 KiB
Java

import org.jetbrains.annotations.*;
import java.util.*;
abstract class ObviousNullCheck {
abstract String getFoo();
abstract String getBar();
void test(String param) {
assertNotNull(<warning descr="Useless null-check: a value of primitive type is never null">5 + 6</warning>);
assertNull("Null!", param);
assertNull(param, <warning descr="Null-check will always fail: literal is never null">"Null!"</warning>);
Objects.requireNonNull(null);
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();
}
@Contract(value="_,!null -> fail", pure=true)
static void assertNull(String msg, Object obj) {
if(obj != null) throw new NullPointerException(msg);
}
}