@@ -515,9 +515,7 @@ macro_rules! spec_int_ranges_r {
515
515
unsafe impl StepByBackImpl <Range <$t>> for StepBy <Range <$t>> {
516
516
517
517
#[ inline]
518
- fn spec_next_back( & mut self ) -> Option <Self :: Item >
519
- where Range <$t>: DoubleEndedIterator + ExactSizeIterator ,
520
- {
518
+ fn spec_next_back( & mut self ) -> Option <Self :: Item > {
521
519
let step = self . original_step( ) . get( ) as $t;
522
520
let remaining = self . iter. end;
523
521
if remaining > 0 {
@@ -533,9 +531,7 @@ macro_rules! spec_int_ranges_r {
533
531
// We have to repeat them here so that the specialization overrides the StepByImplBack defaults
534
532
535
533
#[ inline]
536
- fn spec_nth_back( & mut self , n: usize ) -> Option <Self :: Item >
537
- where Self : DoubleEndedIterator ,
538
- {
534
+ fn spec_nth_back( & mut self , n: usize ) -> Option <Self :: Item > {
539
535
if self . advance_back_by( n) . is_err( ) {
540
536
return None ;
541
537
}
@@ -544,10 +540,9 @@ macro_rules! spec_int_ranges_r {
544
540
545
541
#[ inline]
546
542
fn spec_try_rfold<Acc , F , R >( & mut self , init: Acc , mut f: F ) -> R
547
- where
548
- Self : DoubleEndedIterator ,
549
- F : FnMut ( Acc , Self :: Item ) -> R ,
550
- R : Try <Output = Acc >
543
+ where
544
+ F : FnMut ( Acc , Self :: Item ) -> R ,
545
+ R : Try <Output = Acc >
551
546
{
552
547
let mut accum = init;
553
548
while let Some ( x) = self . next_back( ) {
@@ -558,9 +553,8 @@ macro_rules! spec_int_ranges_r {
558
553
559
554
#[ inline]
560
555
fn spec_rfold<Acc , F >( mut self , init: Acc , mut f: F ) -> Acc
561
- where
562
- Self : DoubleEndedIterator ,
563
- F : FnMut ( Acc , Self :: Item ) -> Acc
556
+ where
557
+ F : FnMut ( Acc , Self :: Item ) -> Acc
564
558
{
565
559
let mut accum = init;
566
560
while let Some ( x) = self . next_back( ) {
0 commit comments