diff --git a/src/take_while_inclusive.rs b/src/take_while_inclusive.rs index 420da9847..660a0e0d3 100644 --- a/src/take_while_inclusive.rs +++ b/src/take_while_inclusive.rs @@ -90,7 +90,7 @@ where impl FusedIterator for TakeWhileInclusive where - I: Iterator, + I: FusedIterator, F: FnMut(&I::Item) -> bool, { } diff --git a/tests/quick.rs b/tests/quick.rs index d33f425af..b4129a305 100644 --- a/tests/quick.rs +++ b/tests/quick.rs @@ -1986,6 +1986,12 @@ quickcheck! { is_fused(a.fuse().interleave_shortest(b.fuse())) } + fn fused_take_while_inclusive(a: Iter) -> bool + { + !is_fused(a.clone().take_while_inclusive(|_| true)) && + is_fused(a.fuse().take_while_inclusive(|_| true)) + } + fn fused_product(a: Iter, b: Iter) -> bool { is_fused(a.fuse().cartesian_product(b.fuse()))