Files
Tagir Valeev 838cf2d73c [java-incomplete-model] Assume that any unresolved class-type is assignable to java.lang.Object
Partially improves inference in incomplete mode

GitOrigin-RevId: 1d9c7c75afd524ea02980be8f96c19fba1eaaf54
2024-06-25 13:54:11 +00:00

142 lines
4.1 KiB
Java

// "Fix all 'Stream API call chain can be replaced with loop' problems in file" "true"
import static java.util.Arrays.asList;
import java.util.*;
import java.util.stream.*;
public class Main {
public void testAveragingDouble(String... list) {
double sum = 0;
long count = 0;
for (String s : list) {
if (s != null) {
sum += 1.0 / s.length();
count++;
}
}
System.out.println(count > 0 ? sum / count : 0.0);
}
public void testAveragingInt(String... list) {
long sum = 0;
long count = 0;
for (String s : list) {
if (s != null) {
sum += s.length();
count++;
}
}
System.out.println(count > 0 ? (double) sum / count : 0.0);
}
public static long testCounting(List<String> strings) {
long count = 0L;
for (String s : strings) {
if (!s.isEmpty()) {
count++;
}
}
return count;
}
public static Optional<String> testMaxBy(List<String> strings) {
boolean seen = false;
String best = null;
for (String s : strings) {
if (!s.isEmpty()) {
if (!seen || s.compareTo(best) > 0) {
seen = true;
best = s;
}
}
}
return seen ? Optional.of(best) : Optional.empty();
}
public static Optional<String> testReducing1(List<String> list) {
boolean seen = false;
String acc = null;
for (String s : list) {
if (!seen) {
seen = true;
acc = s;
} else {
acc = acc + s;
}
}
return seen ? Optional.of(acc) : Optional.empty();
}
public static String testReducing2(List<String> list) {
String acc = "";
for (String s : list) {
acc = acc + s;
}
return acc;
}
static Integer testReducing3() {
Integer totalLength = 0;
for (String s : asList("a", "bb", "ccc")) {
Integer length = s.length();
totalLength = totalLength + length;
}
return totalLength;
}
public static DoubleSummaryStatistics testSummarizingDouble(List<String> strings) {
DoubleSummaryStatistics stat = new DoubleSummaryStatistics();
for (String str : strings) {
if (str != null) {
stat.accept(str.length() / 2.0);
}
}
return stat;
}
public static Double testSummingDouble(List<String> strings) {
double sum = 0.0;
for (String string : strings) {
if (string != null) {
sum += string.length();
}
}
return sum;
}
private static TreeSet<Integer> testToCollection() {
TreeSet<Integer> integers = new TreeSet<>();
for (int i : new int[]{4, 2, 1}) {
Integer integer = i;
integers.add(integer);
}
return integers;
}
// Unresolved reference
void f(Collection<? extends Foo> c) {
TreeSet treeSet = new TreeSet();
for (Foo foo : c) {
treeSet.add(foo);
}
Set<Foo> uniqueDescriptors = treeSet;
}
public static void main(String[] args) {
new Main().testAveragingDouble("a", "bbb", null, "cc", "dd", "eedasfasdfs");
new Main().testAveragingInt("a", "bbb", null, "cc", "dd", "eedasfasdfs");
System.out.println(testCounting(Arrays.asList()));
System.out.println(testCounting(Arrays.asList("a", "bbb", "cc", "d", "eee", "")));
System.out.println(testMaxBy(Arrays.asList()));
System.out.println(testMaxBy(Arrays.asList("a", "bbb", "cc", "d", "eee", "")));
System.out.println(testReducing1(asList("a", "b", "c")));
System.out.println(testReducing2(asList("a", "b", "c")));
System.out.println(testReducing3());
System.out.println(testSummarizingDouble(Arrays.asList(null, null)));
System.out.println(testSummarizingDouble(Arrays.asList("a", "bbb", "cc", "d", "eee", "")));
System.out.println(testSummingDouble(Arrays.asList(null, null)));
System.out.println(testSummingDouble(Arrays.asList("a", "bbb", "cc", "d", "eee", "")));
System.out.println(testToCollection());
}
}