mirror of
https://github.com/jlengrand/error-prone-support.git
synced 2026-03-10 08:11:25 +00:00
Extend OptionalIdentity Refaster rule (#951)
By flagging expressions of the form `optional.or(() -> Optional.empty())` and `optional.or(Optional::empty)`.
This commit is contained in:
@@ -388,6 +388,7 @@ final class OptionalRules {
|
||||
@BeforeTemplate
|
||||
Optional<T> before(Optional<T> optional, Comparator<? super T> comparator) {
|
||||
return Refaster.anyOf(
|
||||
optional.or(Refaster.anyOf(() -> Optional.empty(), Optional::empty)),
|
||||
optional.stream().findFirst(),
|
||||
optional.stream().findAny(),
|
||||
optional.stream().min(comparator),
|
||||
|
||||
@@ -118,10 +118,12 @@ final class OptionalRulesTest implements RefasterRuleCollectionTestCase {
|
||||
|
||||
ImmutableSet<Optional<String>> testOptionalIdentity() {
|
||||
return ImmutableSet.of(
|
||||
Optional.of("foo").stream().findFirst(),
|
||||
Optional.of("bar").stream().findAny(),
|
||||
Optional.of("baz").stream().min(String::compareTo),
|
||||
Optional.of("qux").stream().max(String::compareTo));
|
||||
Optional.of("foo").or(() -> Optional.empty()),
|
||||
Optional.of("bar").or(Optional::empty),
|
||||
Optional.of("baz").stream().findFirst(),
|
||||
Optional.of("qux").stream().findAny(),
|
||||
Optional.of("quux").stream().min(String::compareTo),
|
||||
Optional.of("quuz").stream().max(String::compareTo));
|
||||
}
|
||||
|
||||
ImmutableSet<Optional<String>> testOptionalFilter() {
|
||||
|
||||
@@ -115,7 +115,12 @@ final class OptionalRulesTest implements RefasterRuleCollectionTestCase {
|
||||
|
||||
ImmutableSet<Optional<String>> testOptionalIdentity() {
|
||||
return ImmutableSet.of(
|
||||
Optional.of("foo"), Optional.of("bar"), Optional.of("baz"), Optional.of("qux"));
|
||||
Optional.of("foo"),
|
||||
Optional.of("bar"),
|
||||
Optional.of("baz"),
|
||||
Optional.of("qux"),
|
||||
Optional.of("quux"),
|
||||
Optional.of("quuz"));
|
||||
}
|
||||
|
||||
ImmutableSet<Optional<String>> testOptionalFilter() {
|
||||
|
||||
Reference in New Issue
Block a user