Files
openide/java/java-tests/testData/inspection/dataFlow/fixture/SkipAssertions.java
Tagir Valeev 7c45b3d106 [java-dfa] IDEA-307955 "Constant values" should only warn on the outer most constant expression
GitOrigin-RevId: 6ca85640d4d20ca72b7262a7a8f1733ee60ffa07
2022-12-13 18:58:48 +00:00

95 lines
2.8 KiB
Java

import org.jetbrains.annotations.NotNull;
class Test {
private static void test(@NotNull Object foo) {
assert foo != null;
}
private static void testParens(@NotNull Object foo) {
assert (foo != null);
}
private static void testNegation(boolean b) {
if(!b) {
assert !b;
}
}
private static void testAnd(boolean a, boolean b, boolean c) {
if(b) {
assert a && b && c;
}
}
private static void testOr(boolean a, boolean b, boolean c) {
if(b) {
// c is never checked: probably not intended; report
assert a || <warning descr="Condition 'b' is always 'true'">b</warning> || c;
assert a || c || b;
}
}
private static void testOrNot(boolean a, boolean b, boolean c) {
if(!b) {
assert !(a || b || c);
}
}
private static void testOrNotFail(boolean a, boolean b, boolean c) {
if(b) {
assert <warning descr="Condition '!(a || b || c)' is always 'false'">!(a || <warning descr="Condition 'b' is always 'true'">b</warning> || c)</warning>;
}
}
private static void testAndNotFail(boolean a, boolean b, boolean c) {
if(b) {
assert !(a && <warning descr="Condition 'b' is always 'true'">b</warning> && c);
}
}
private static void testInstanceOf(java.util.List<String> list) {
Object s = list.get(0);
System.out.println(s.hashCode());
assert s instanceof String;
assert <warning descr="Condition 'list.get(1) instanceof String' is redundant and can be replaced with a null check">list.get(1) instanceof String</warning>;
assert <warning descr="Condition 's instanceof Number' is always 'false'">s instanceof Number</warning>;
}
private static void test2(@NotNull Object foo) {
if (foo == null) {
throw new IllegalArgumentException();
}
}
private static void test3(@NotNull Object foo) {
if (foo == null) throw new IllegalArgumentException();
}
private static void test4(@NotNull Object foo) {
if (<warning descr="Condition 'foo != null' is always 'true'">foo != null</warning>) throw new IllegalArgumentException();
}
private static void assertMethod(@NotNull Object foo) {
assertTrue(foo != null);
assertFalse(foo == null);
}
private static void assertMethodFail(@NotNull Object foo) {
<warning descr="The call to 'assertTrue' always fails, according to its method contracts">assertTrue</warning>(<warning descr="Condition 'foo == null' is always 'false'">foo == null</warning>);
}
private static void testNull(Object obj) {
if(obj != null) return;
assertNull(obj);
}
static final void assertTrue(boolean x) {
if(!x) throw new AssertionError();
}
static final void assertFalse(boolean x) {
if(x) throw new AssertionError();
}
static final void assertNull(Object x) { if(x != null) throw new AssertionError(); }
}