Skip to content

Commit 410abab

Browse files
committed
Fix Sequence for Option<Empty>
1 parent 929b68a commit 410abab

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

enum-iterator/src/lib.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ impl<T: Sequence> Sequence for Option<T> {
572572

573573
fn next(&self) -> Option<Self> {
574574
match self {
575-
None => Some(T::first()),
575+
None => T::first().map(Some),
576576
Some(x) => x.next().map(Some),
577577
}
578578
}
@@ -934,6 +934,21 @@ mod tests {
934934
assert!(all::<Option<bool>>().eq([None, Some(false), Some(true)]));
935935
}
936936

937+
#[test]
938+
fn all_bool_option_items_are_yielded_in_reverse() {
939+
assert!(reverse_all::<Option<bool>>().eq([Some(true), Some(false), None]));
940+
}
941+
942+
#[test]
943+
fn all_infallible_option_items_are_yielded() {
944+
assert!(all::<Option<Infallible>>().eq([None]));
945+
}
946+
947+
#[test]
948+
fn all_infallible_option_items_are_yielded_in_reverse() {
949+
assert!(reverse_all::<Option<Infallible>>().eq([None]));
950+
}
951+
937952
#[test]
938953
fn cardinality_equals_item_count_for_ordering() {
939954
cardinality_equals_item_count::<Ordering>();

0 commit comments

Comments
 (0)