@@ -1150,19 +1150,7 @@ impl<A: Step> Iterator for ops::RangeInclusive<A> {
11501150 self . spec_try_fold ( init, f)
11511151 }
11521152
1153- #[ inline]
1154- fn fold < B , F > ( mut self , init : B , f : F ) -> B
1155- where
1156- Self : Sized ,
1157- F : FnMut ( B , Self :: Item ) -> B ,
1158- {
1159- #[ inline]
1160- fn ok < B , T > ( mut f : impl FnMut ( B , T ) -> B ) -> impl FnMut ( B , T ) -> Result < B , !> {
1161- move |acc, x| Ok ( f ( acc, x) )
1162- }
1163-
1164- self . try_fold ( init, ok ( f) ) . unwrap ( )
1165- }
1153+ impl_fold_via_try_fold ! { fold -> try_fold }
11661154
11671155 #[ inline]
11681156 fn last ( mut self ) -> Option < A > {
@@ -1230,19 +1218,7 @@ impl<A: Step> DoubleEndedIterator for ops::RangeInclusive<A> {
12301218 self . spec_try_rfold ( init, f)
12311219 }
12321220
1233- #[ inline]
1234- fn rfold < B , F > ( mut self , init : B , f : F ) -> B
1235- where
1236- Self : Sized ,
1237- F : FnMut ( B , Self :: Item ) -> B ,
1238- {
1239- #[ inline]
1240- fn ok < B , T > ( mut f : impl FnMut ( B , T ) -> B ) -> impl FnMut ( B , T ) -> Result < B , !> {
1241- move |acc, x| Ok ( f ( acc, x) )
1242- }
1243-
1244- self . try_rfold ( init, ok ( f) ) . unwrap ( )
1245- }
1221+ impl_fold_via_try_fold ! { rfold -> try_rfold }
12461222}
12471223
12481224// Safety: See above implementation for `ops::Range<A>`
0 commit comments