Skip to content

Commit 3da9097

Browse files
committed
RecursiveResult#invert returns a new RecursiveResult
1 parent dfbc3fa commit 3da9097

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/).
66
## [Unreleased]
77
### Changed
88
- `ToMap` accepts an `Iterable` covariant in `Map.Entry`
9+
- `RecursiveResult#invert` is also a `RecursiveResult`
910

1011
### Added
1112
- `Upcast` for safely casting up a type hierarchy

src/main/java/com/jnape/palatable/lambda/functions/recursion/RecursiveResult.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ public abstract class RecursiveResult<A, B> implements CoProduct2<A, B, Recursiv
2323
private RecursiveResult() {
2424
}
2525

26+
@Override
27+
public RecursiveResult<B, A> invert() {
28+
return match(RecursiveResult::terminate, RecursiveResult::recurse);
29+
}
30+
2631
@Override
2732
@SuppressWarnings("unchecked")
2833
public <C> RecursiveResult<C, B> biMapL(Function<? super A, ? extends C> fn) {

src/test/java/com/jnape/palatable/lambda/functions/recursion/RecursiveResultTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.jnape.palatable.lambda.functions.recursion;
22

3-
import com.jnape.palatable.lambda.functions.recursion.RecursiveResult;
43
import com.jnape.palatable.traitor.annotations.TestTraits;
54
import com.jnape.palatable.traitor.framework.Subjects;
65
import com.jnape.palatable.traitor.runners.Traits;
@@ -10,9 +9,9 @@
109
import testsupport.traits.MonadLaws;
1110
import testsupport.traits.TraversableLaws;
1211

13-
import static com.jnape.palatable.traitor.framework.Subjects.subjects;
1412
import static com.jnape.palatable.lambda.functions.recursion.RecursiveResult.recurse;
1513
import static com.jnape.palatable.lambda.functions.recursion.RecursiveResult.terminate;
14+
import static com.jnape.palatable.traitor.framework.Subjects.subjects;
1615

1716
@RunWith(Traits.class)
1817
public class RecursiveResultTest {

0 commit comments

Comments
 (0)