@@ -655,8 +655,13 @@ impl<A: Step> DoubleEndedIterator for ops::Range<A> {
655655 }
656656}
657657
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 ] ;
660665
661666#[ stable( feature = "fused" , since = "1.26.0" ) ]
662667impl < A : Step > FusedIterator for ops:: Range < A > { }
@@ -687,8 +692,13 @@ impl<A: Step> Iterator for ops::RangeFrom<A> {
687692#[ stable( feature = "fused" , since = "1.26.0" ) ]
688693impl < A : Step > FusedIterator for ops:: RangeFrom < A > { }
689694
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 ] ;
692702
693703#[ stable( feature = "inclusive_range" , since = "1.26.0" ) ]
694704impl < A : Step > Iterator for ops:: RangeInclusive < A > {
@@ -899,8 +909,13 @@ impl<A: Step> DoubleEndedIterator for ops::RangeInclusive<A> {
899909 }
900910}
901911
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 ] ;
904919
905920#[ stable( feature = "fused" , since = "1.26.0" ) ]
906921impl < A : Step > FusedIterator for ops:: RangeInclusive < A > { }
0 commit comments