Skip to content

Commit 861ae62

Browse files
fix: Use ifThenElse_void for Result as well
1 parent df8318f commit 861ae62

2 files changed

Lines changed: 6 additions & 4 deletions

File tree

src/main/java/net/marcellperger/mathexpr/util/rs/Result.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,9 @@ default <E2> Result<T, E2> mapErr(Function<? super E, ? extends E2> op) {
110110
}
111111

112112
// not a Rust function. Similar to mapOrElse but reversed arguments
113-
default void ifThenElse(Consumer<? super T> okFn, Consumer<? super E> errFn) {
113+
default void ifThenElse_void(Consumer<? super T> okFn, Consumer<? super E> errFn) {
114+
// This _void variant exists (instead of an overload) to avoid Java complaining
115+
// about ambiguous arguments when passing method references
114116
mapOrElse(Util.consumerToFunction(errFn), Util.consumerToFunction(okFn));
115117
}
116118
default <U> U ifThenElse(Function<? super T, ? extends U> okFn, Function<? super E, ? extends U> errFn) {

src/test/java/net/marcellperger/mathexpr/util/rs/ResultTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,18 +124,18 @@ void mapErr() {
124124
}
125125

126126
@Test
127-
void ifThenElse_consumer() {
127+
void ifThenElse_void() {
128128
MockedConsumer<Integer> intConsumer = new MockedConsumer<>();
129129
MockedConsumer<String> strConsumer = new MockedConsumer<>();
130130
{
131-
getOk().ifThenElse(intConsumer, strConsumer);
131+
getOk().ifThenElse_void(intConsumer, strConsumer);
132132
intConsumer.assertCalledOnceWith(314);
133133
strConsumer.assertNotCalled();
134134
}
135135
intConsumer.reset();
136136
strConsumer.reset();
137137
{
138-
getErr().ifThenElse(intConsumer, strConsumer);
138+
getErr().ifThenElse_void(intConsumer, strConsumer);
139139
intConsumer.assertNotCalled();
140140
strConsumer.assertCalledOnceWith("TESTING_ERROR");
141141
}

0 commit comments

Comments
 (0)