Closed
Description
The following code prints "foo" 4 times with stable and beta, but prints nothing with rustc 1.33.0-nightly (93c2f05 2018-12-15).
fn main() {
std::iter::once(0).cycle().skip(1).take(4).for_each(|_| println!("foo"));
}
Replacing once()
by something else or replacing for_each()
with map()
exhibits the same behaviour.
Activity
bluss commentedon Dec 16, 2018
It looks like the
try_fold
impl for Cycle in commit fbe5aa5 is is not correct, this is probably the cause. PR #56630samueltardieu commentedon Dec 16, 2018
Indeed, it looks like if you try to fold after you have just exhausted a copy of your original iterator, you are out of luck and will exit immediately with the initial value.
Auto merge of #56904 - sinkuu:cycle_fold, r=bluss