Files
openide/java/java-tests/testData/inspection/dataFlow/fixture/OptionalStreamInlining.java
T
Mikhail Pyltsinandintellij-monorepo-bot dced7d86d0 [java-inspections] IDEA-332629 Support Optional.stream() in DFA
- added inlining for Optional.stream, based n SpecialField.OPTIONAL_VALUE

GitOrigin-RevId: 50287ae63b11083c133f9af54373310bf1b818f8
2023-09-18 23:01:32 +00:00

42 lines
1.3 KiB
Java

import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.*;
import java.util.function.*;
import java.util.stream.*;
public class OptionalStreamInlining {
public static void testOptionalStream(String s) {
Optional<List<String>> strings = Optional.ofNullable(s)
.map(OptionalStreamInlining::getLetters);
Optional<String> s1 = strings
.stream()
.flatMap(Collection::stream)
.min(Comparator.naturalOrder());
if (s1.isPresent()) {
System.out.println(s.length());
} else {
System.out.println();
System.out.println(s.<warning descr="Method invocation 'length' may produce 'NullPointerException'">length</warning>());
}
}
public static void testOptionalStream2(String s) {
Optional<String> s1 = Optional.ofNullable(s)
.map(OptionalStreamInlining::getLetters)
.stream()
.flatMap(Collection::stream)
.min(Comparator.naturalOrder());
if (s1.isPresent()) {
System.out.println(s.length());
} else {
System.out.println();
System.out.println(s.<warning descr="Method invocation 'length' may produce 'NullPointerException'">length</warning>());
}
}
private static List<String> getLetters(String t){
ArrayList<String> strings = new ArrayList<>();
strings.add("1");
return strings;
}
}