IDEA-176397 Warn about pointless rewrapping of Optional value

Also fixed CommonDataflow: facts must be united, not intersected
This commit is contained in:
Tagir Valeev
2017-09-08 10:41:51 +07:00
parent 56b43742d6
commit 90fa05f67b
10 changed files with 123 additions and 21 deletions
@@ -0,0 +1,10 @@
// "Unwrap" "true"
import java.util.*;
public class Tests {
void test2(Optional<String> optional) {
if (optional.isPresent()) {
System.out.println(optional);
}
}
}
@@ -0,0 +1,9 @@
// "Unwrap" "true"
import java.util.*;
public class Tests {
void test3(Optional<String> optional) {
System.out.println(Optional.of(optional.get()));
System.out.println(optional);
}
}
@@ -0,0 +1,10 @@
// "Unwrap" "true"
import java.util.*;
public class Tests {
void test2(Optional<String> optional) {
if (optional.isPresent()) {
System.out.println(Optional.o<caret>f(optional.get()));
}
}
}
@@ -0,0 +1,9 @@
// "Unwrap" "false"
import java.util.*;
public class Tests {
void test3(Optional<String> optional) {
System.out.println(Optional.o<caret>f(optional.get()));
System.out.println(Optional.of(optional.get()));
}
}
@@ -0,0 +1,9 @@
// "Unwrap" "true"
import java.util.*;
public class Tests {
void test3(Optional<String> optional) {
System.out.println(Optional.of(optional.get()));
System.out.println(Optional.o<caret>f(optional.get()));
}
}
@@ -0,0 +1,10 @@
// "Unwrap" "false"
import java.util.*;
public class Tests {
void test(Optional<String> optional, boolean b) {
if (b || optional.isPresent()) {
System.out.println(Optional.o<caret>f(optional.get()));
}
}
}