summaryrefslogtreecommitdiff
path: root/src/main/java/au/id/zancanaro/javacheck/ShrinkTree.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/au/id/zancanaro/javacheck/ShrinkTree.java')
-rw-r--r--src/main/java/au/id/zancanaro/javacheck/ShrinkTree.java20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/main/java/au/id/zancanaro/javacheck/ShrinkTree.java b/src/main/java/au/id/zancanaro/javacheck/ShrinkTree.java
index 4f4eb62..6e21f27 100644
--- a/src/main/java/au/id/zancanaro/javacheck/ShrinkTree.java
+++ b/src/main/java/au/id/zancanaro/javacheck/ShrinkTree.java
@@ -52,7 +52,7 @@ public class ShrinkTree<T> {
return heads;
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({"unchecked", "SuspiciousUninitializedArray"})
public static <T> Stream<ShrinkTree<T>[]> promoteChildren(ShrinkTree<? super T>[] trees) {
return IntStream.range(0, trees.length)
.mapToObj(index -> trees[index].getChildren().map(child ->
@@ -65,10 +65,11 @@ public class ShrinkTree<T> {
public static <T> Stream<ShrinkTree<T>[]> removeChildren(ShrinkTree<? super T>[] trees) {
return IntStream.range(0, trees.length)
- .mapToObj(index -> IntStream.range(0, trees.length)
- .filter(i -> i != index)
- .mapToObj(i -> trees[i])
- .toArray(ShrinkTree[]::new));
+ .mapToObj(index ->
+ IntStream.range(0, trees.length)
+ .filter(i -> i != index)
+ .mapToObj(i -> trees[i])
+ .toArray(ShrinkTree[]::new));
}
public static <T> Stream<ShrinkTree<T>[]> removeAndPromoteChildren(ShrinkTree<? super T>[] trees) {
@@ -90,14 +91,15 @@ public class ShrinkTree<T> {
() -> this.getChildren().map(tree -> tree.map(f)));
}
- public <R> ShrinkTree<R> flatMap(Function<?super T, ? extends ShrinkTree<R>> f) {
+ public <R> ShrinkTree<R> flatMap(Function<? super T, ? extends ShrinkTree<R>> f) {
return ShrinkTree.join(this.map(f));
}
public ShrinkTree<T> filter(Predicate<? super T> predicate) {
- if (predicate.test(this.getValue())) {
+ T value = this.getValue();
+ if (predicate.test(value)) {
return new ShrinkTree<>(
- this.getValue(),
+ value,
() -> this.getChildren()
.filter(tree -> predicate.test(tree.getValue()))
.map(tree -> tree.filter(predicate)));
@@ -112,7 +114,7 @@ public class ShrinkTree<T> {
private static <T> Stream<ShrinkTree<T>> strategyStream(final T value, final ShrinkStrategy<T> strategy) {
return strategy.shrink(value)
- .map(v -> new ShrinkTree<T>(v, () -> strategyStream(v, strategy)));
+ .map(v -> new ShrinkTree<>(v, () -> strategyStream(v, strategy)));
}
public void print(Writer output) throws IOException {