Skip to content

Commit b5fb01d

Browse files
committed
Call this a "type checker" with a straight face, I dare you
1 parent cfa6317 commit b5fb01d

File tree

1 file changed

+11
-8
lines changed
  • src/main/java/com/jnape/palatable/lambda/io

1 file changed

+11
-8
lines changed

src/main/java/com/jnape/palatable/lambda/io/IO.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,17 @@ public final IO<A> exceptionallyIO(Fn1<? super Throwable, ? extends IO<A>> recov
9898
return new IO<A>() {
9999
@Override
100100
public A unsafePerformIO() {
101-
return trying(IO.this::unsafePerformIO)
102-
.recover(t -> trying(recoveryFn.apply(t)::unsafePerformIO)
103-
.fmap(Try::success)
104-
.recover(t2 -> {
105-
t.addSuppressed(t2);
106-
return failure(t);
107-
})
108-
.orThrow());
101+
return trying(fn0(IO.this::unsafePerformIO))
102+
.recover(t -> {
103+
IO<A> recoveryIO = recoveryFn.apply(t);
104+
return trying(fn0(recoveryIO::unsafePerformIO))
105+
.fmap(Try::success)
106+
.recover(t2 -> {
107+
t.addSuppressed(t2);
108+
return failure(t);
109+
})
110+
.orThrow();
111+
});
109112
}
110113

111114
@Override

0 commit comments

Comments
 (0)