@@ -655,8 +655,13 @@ impl<A: Step> DoubleEndedIterator for ops::Range<A> {
655
655
}
656
656
}
657
657
658
- #[ unstable( feature = "trusted_len" , issue = "37572" ) ]
659
- unsafe impl < A : Step > TrustedLen for ops:: Range < A > { }
658
+ macro_rules! impl_trusted_len_for_range {
659
+ ( $( $type: ty) * ) => { $(
660
+ #[ unstable( feature = "trusted_len" , issue = "37572" ) ]
661
+ unsafe impl TrustedLen for ops:: Range <$type> { }
662
+ ) * }
663
+ }
664
+ impl_trusted_len_for_range ! [ char i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize ] ;
660
665
661
666
#[ stable( feature = "fused" , since = "1.26.0" ) ]
662
667
impl < A : Step > FusedIterator for ops:: Range < A > { }
@@ -687,8 +692,13 @@ impl<A: Step> Iterator for ops::RangeFrom<A> {
687
692
#[ stable( feature = "fused" , since = "1.26.0" ) ]
688
693
impl < A : Step > FusedIterator for ops:: RangeFrom < A > { }
689
694
690
- #[ unstable( feature = "trusted_len" , issue = "37572" ) ]
691
- unsafe impl < A : Step > TrustedLen for ops:: RangeFrom < A > { }
695
+ macro_rules! impl_trusted_len_for_range_from {
696
+ ( $( $type: ty) * ) => { $(
697
+ #[ unstable( feature = "trusted_len" , issue = "37572" ) ]
698
+ unsafe impl TrustedLen for ops:: RangeFrom <$type> { }
699
+ ) * }
700
+ }
701
+ impl_trusted_len_for_range_from ! [ char i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize ] ;
692
702
693
703
#[ stable( feature = "inclusive_range" , since = "1.26.0" ) ]
694
704
impl < A : Step > Iterator for ops:: RangeInclusive < A > {
@@ -899,8 +909,13 @@ impl<A: Step> DoubleEndedIterator for ops::RangeInclusive<A> {
899
909
}
900
910
}
901
911
902
- #[ unstable( feature = "trusted_len" , issue = "37572" ) ]
903
- unsafe impl < A : Step > TrustedLen for ops:: RangeInclusive < A > { }
912
+ macro_rules! impl_trusted_len_for_range_inclusive {
913
+ ( $( $type: ty) * ) => { $(
914
+ #[ unstable( feature = "trusted_len" , issue = "37572" ) ]
915
+ unsafe impl TrustedLen for ops:: RangeInclusive <$type> { }
916
+ ) * }
917
+ }
918
+ impl_trusted_len_for_range_inclusive ! [ char i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize ] ;
904
919
905
920
#[ stable( feature = "fused" , since = "1.26.0" ) ]
906
921
impl < A : Step > FusedIterator for ops:: RangeInclusive < A > { }
0 commit comments