Skip to content

Commit 6cfdd63

Browse files
authored
Override .mapTo and .mapToVoid to narrow types (#3090)
1 parent ea5afe3 commit 6cfdd63

28 files changed

+271
-5
lines changed

vavr/src/main/java/io/vavr/Lazy.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,16 @@ public <U> Lazy<U> map(Function<? super T, ? extends U> mapper) {
223223
return Lazy.of(() -> mapper.apply(get()));
224224
}
225225

226+
@Override
227+
public <U> Lazy<U> mapTo(U value) {
228+
return map(ignored -> value);
229+
}
230+
231+
@Override
232+
public Lazy<Void> mapToVoid() {
233+
return map(ignored -> null);
234+
}
235+
226236
@Override
227237
public Lazy<T> peek(Consumer<? super T> action) {
228238
action.accept(get());

vavr/src/main/java/io/vavr/Value.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@
7070
* <li>{@link #getOrElseTry(CheckedFunction0)}</li>
7171
* <li>{@link #getOrNull()}</li>
7272
* <li>{@link #map(Function)}</li>
73+
* <li>{@link #mapTo(Object)}</li>
74+
* <li>{@link #mapToVoid()}</li>
7375
* <li>{@link #stringPrefix()}</li>
7476
* </ul>
7577
*

vavr/src/main/java/io/vavr/collection/Array.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -971,6 +971,16 @@ public <U> Array<U> map(Function<? super T, ? extends U> mapper) {
971971
return wrap(arr);
972972
}
973973

974+
@Override
975+
public <U> Array<U> mapTo(U value) {
976+
return map(ignored -> value);
977+
}
978+
979+
@Override
980+
public Array<Void> mapToVoid() {
981+
return map(ignored -> null);
982+
}
983+
974984
@Override
975985
public Array<T> orElse(Iterable<? extends T> other) {
976986
return isEmpty() ? ofAll(other) : this;

vavr/src/main/java/io/vavr/collection/BitSet.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,16 @@ default <U> SortedSet<U> map(Function<? super T, ? extends U> mapper) {
588588
return map(Comparators.naturalComparator(), mapper);
589589
}
590590

591+
@Override
592+
default <U> SortedSet<U> mapTo(U value) {
593+
return map(ignored -> value);
594+
}
595+
596+
@Override
597+
default SortedSet<Void> mapToVoid() {
598+
return map(ignored -> null);
599+
}
600+
591601
@Override
592602
BitSet<T> remove(T element);
593603

vavr/src/main/java/io/vavr/collection/CharSeq.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -668,6 +668,16 @@ public <U> IndexedSeq<U> map(Function<? super Character, ? extends U> mapper) {
668668
return result;
669669
}
670670

671+
@Override
672+
public <U> IndexedSeq<U> mapTo(U value) {
673+
return map(ignored -> value);
674+
}
675+
676+
@Override
677+
public IndexedSeq<Void> mapToVoid() {
678+
return map(ignored -> null);
679+
}
680+
671681
@Override
672682
public String mkString() {
673683
return back;

vavr/src/main/java/io/vavr/collection/HashSet.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -714,6 +714,16 @@ public <U> HashSet<U> map(Function<? super T, ? extends U> mapper) {
714714
}
715715
}
716716

717+
@Override
718+
public <U> HashSet<U> mapTo(U value) {
719+
return map(ignored -> value);
720+
}
721+
722+
@Override
723+
public HashSet<Void> mapToVoid() {
724+
return map(ignored -> null);
725+
}
726+
717727
@Override
718728
public String mkString(CharSequence prefix, CharSequence delimiter, CharSequence suffix) {
719729
return iterator().mkString(prefix, delimiter, suffix);

vavr/src/main/java/io/vavr/collection/IndexedSeq.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,16 @@ default int lastIndexWhere(Predicate<? super T> predicate, int end) {
230230
@Override
231231
<U> IndexedSeq<U> map(Function<? super T, ? extends U> mapper);
232232

233+
@Override
234+
default <U> IndexedSeq<U> mapTo(U value) {
235+
return map(ignored -> value);
236+
}
237+
238+
@Override
239+
default IndexedSeq<Void> mapToVoid() {
240+
return map(ignored -> null);
241+
}
242+
233243
@Override
234244
IndexedSeq<T> orElse(Iterable<? extends T> other);
235245

vavr/src/main/java/io/vavr/collection/Iterator.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1701,6 +1701,16 @@ public U getNext() {
17011701
}
17021702
}
17031703

1704+
@Override
1705+
default <U> Iterator<U> mapTo(U value) {
1706+
return map(ignored -> value);
1707+
}
1708+
1709+
@Override
1710+
default Iterator<Void> mapToVoid() {
1711+
return map(ignored -> null);
1712+
}
1713+
17041714
@Override
17051715
default Iterator<T> orElse(Iterable<? extends T> other) {
17061716
return isEmpty() ? ofAll(other) : this;

vavr/src/main/java/io/vavr/collection/LinearSeq.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,16 @@ default int lastIndexWhere(Predicate<? super T> predicate, int end) {
212212
@Override
213213
<U> LinearSeq<U> map(Function<? super T, ? extends U> mapper);
214214

215+
@Override
216+
default <U> LinearSeq<U> mapTo(U value) {
217+
return map(ignored -> value);
218+
}
219+
220+
@Override
221+
default LinearSeq<Void> mapToVoid() {
222+
return map(ignored -> null);
223+
}
224+
215225
@Override
216226
LinearSeq<T> orElse(Iterable<? extends T> other);
217227

vavr/src/main/java/io/vavr/collection/LinkedHashSet.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,16 @@ public <U> LinkedHashSet<U> map(Function<? super T, ? extends U> mapper) {
735735
}
736736
}
737737

738+
@Override
739+
public <U> LinkedHashSet<U> mapTo(U value) {
740+
return map(ignored -> value);
741+
}
742+
743+
@Override
744+
public LinkedHashSet<Void> mapToVoid() {
745+
return map(ignored -> null);
746+
}
747+
738748
@Override
739749
public String mkString(CharSequence prefix, CharSequence delimiter, CharSequence suffix) {
740750
return iterator().mkString(prefix, delimiter, suffix);

0 commit comments

Comments
 (0)