| import org.jetbrains.annotations.Contract; |
| import org.jetbrains.annotations.Nullable; |
| |
| import java.lang.*; |
| import java.lang.AssertionError; |
| import java.lang.IllegalArgumentException; |
| |
| class AssertIsNotNull { |
| void bar(String s, String s1) { |
| if (<warning descr="Condition 's == null && trimIfNotNull(s) != null' is always 'false'">s == null && <warning descr="Condition 'trimIfNotNull(s) != null' is always 'false' when reached">trimIfNotNull(s) != null</warning></warning>) { |
| throw new AssertionError(); |
| } |
| |
| final Object o = call(); |
| assertIsNotNull(o); |
| System.out.println(o.toString()); |
| if(<warning descr="Condition 'o == null' is always 'false'">o == null</warning>) {} |
| |
| if (trimIfNotNull(s1) != null) { |
| System.out.println(s1.charAt(0)); |
| if (<warning descr="Condition 's1 == null' is always 'false'">s1 == null</warning>) { |
| |
| } |
| } |
| } |
| |
| @Contract("null -> fail") |
| static void assertIsNotNull(Object o) { |
| if (o == null) { |
| throw new IllegalArgumentException(); |
| } |
| } |
| |
| @Contract("null -> null; !null -> !null") |
| @Nullable static String trimIfNotNull(@Nullable String s) { |
| if (s == null) { |
| return null; |
| } |
| return s.trim(); |
| } |
| |
| Object call() {return new Object();} |
| |
| } |