Files
openide/java/java-tests/testData/inspection/dataFlow/fixture/EmptySingletonMap.java
T

59 lines
1.6 KiB
Java

import java.util.*;
import org.jetbrains.annotations.*;
public class EmptySingletonMap {
void testMixed(int x) {
Collection<String> strings;
if(x > 10) {
strings = Collections.singleton("foo");
} else if(x > 6) {
strings = Collections.emptyList();
} else if(x > 2) {
strings = Collections.singletonList("bar");
} else {
strings = Arrays.asList("a", "b", "c");
}
if(<warning descr="Condition 'strings.size() >= 2 && x > 3' is always 'false'">strings.size() >= 2 && <warning descr="Condition 'x > 3' is always 'false' when reached">x > 3</warning></warning>) {
System.out.println("never");
}
}
void testMap(boolean b) {
Map<String, String> map;
if (b) {
map = Collections.emptyMap();
}
else {
map = Collections.singletonMap("a", "b");
}
if(b && <warning descr="Condition 'map.isEmpty()' is always 'true' when reached">map.isEmpty()</warning>) {
System.out.println("true");
}
if(!b && <warning descr="Condition 'map.size() == 1' is always 'true' when reached">map.size() == 1</warning>) {
System.out.println("??");
}
}
@Contract(pure = true)
static Map<String, String> newMap() {
return new HashMap<>();
}
void testDoubleEmpty() {
Map<String, String> m1 = newMap();
Map<String, String> m2 = newMap();
fill(m1, m2);
if(m1.isEmpty() && m2.isEmpty()) {
System.out.println("both empty");
}
}
void testNonEqual() {
if(EmptySingletonMap.newMap() == EmptySingletonMap.newMap()) {
System.out.println("who knows");
}
}
native void fill(Object m1, Object m2);
}