Skip to content

Commit adbfec2

Browse files
committed
Auto merge of #56904 - sinkuu:cycle_fold, r=bluss
Remove Cycle::try_fold override Fixes #56883
2 parents 54f3cd6 + f0483f7 commit adbfec2

File tree

2 files changed

+2
-13
lines changed

2 files changed

+2
-13
lines changed

src/libcore/iter/mod.rs

-13
Original file line numberDiff line numberDiff line change
@@ -649,19 +649,6 @@ impl<I> Iterator for Cycle<I> where I: Clone + Iterator {
649649
_ => (usize::MAX, None)
650650
}
651651
}
652-
653-
#[inline]
654-
fn try_fold<Acc, F, R>(&mut self, init: Acc, mut f: F) -> R where
655-
Self: Sized, F: FnMut(Acc, Self::Item) -> R, R: Try<Ok=Acc>
656-
{
657-
let mut accum = init;
658-
while let Some(x) = self.iter.next() {
659-
accum = f(accum, x)?;
660-
accum = self.iter.try_fold(accum, &mut f)?;
661-
self.iter = self.orig.clone();
662-
}
663-
Try::from_ok(accum)
664-
}
665652
}
666653

667654
#[stable(feature = "fused", since = "1.26.0")]

src/libcore/tests/iter.rs

+2
Original file line numberDiff line numberDiff line change
@@ -1003,6 +1003,8 @@ fn test_cycle() {
10031003
assert_eq!(it.next(), None);
10041004

10051005
assert_eq!(empty::<i32>().cycle().fold(0, |acc, x| acc + x), 0);
1006+
1007+
assert_eq!(once(1).cycle().skip(1).take(4).fold(0, |acc, x| acc + x), 4);
10061008
}
10071009

10081010
#[test]

0 commit comments

Comments
 (0)