@@ -12,6 +12,15 @@ use core::iter::*;
1212use core:: { i8, i16, isize} ;
1313use core:: usize;
1414
15+ // FIXME #27741: This is here to simplify calling Iterator::step_by. Remove
16+ // once Range::step_by is completely gone (not just deprecated).
17+ trait IterEx : Sized {
18+ fn iter_step_by ( self , n : usize ) -> StepBy < Self > ;
19+ }
20+ impl < I : Iterator > IterEx for I {
21+ fn iter_step_by ( self , n : usize ) -> StepBy < Self > { self . step_by ( n) }
22+ }
23+
1524#[ test]
1625fn test_lt ( ) {
1726 let empty: [ isize ; 0 ] = [ ] ;
@@ -67,7 +76,7 @@ fn test_multi_iter() {
6776
6877#[ test]
6978fn test_counter_from_iter ( ) {
70- let it = ( 0 ..) . step_by ( 5 ) . take ( 10 ) ;
79+ let it = ( 0 ..) . iter_step_by ( 5 ) . take ( 10 ) ;
7180 let xs: Vec < isize > = FromIterator :: from_iter ( it) ;
7281 assert_eq ! ( xs, [ 0 , 5 , 10 , 15 , 20 , 25 , 30 , 35 , 40 , 45 ] ) ;
7382}
@@ -85,7 +94,7 @@ fn test_iterator_chain() {
8594 }
8695 assert_eq ! ( i, expected. len( ) ) ;
8796
88- let ys = ( 30 ..) . step_by ( 10 ) . take ( 4 ) ;
97+ let ys = ( 30 ..) . iter_step_by ( 10 ) . take ( 4 ) ;
8998 let it = xs. iter ( ) . cloned ( ) . chain ( ys) ;
9099 let mut i = 0 ;
91100 for x in it {
@@ -147,15 +156,13 @@ fn test_iterator_chain_find() {
147156#[ test]
148157fn test_iterator_step_by ( ) {
149158 // Identity
150- // Replace with (0..).step_by(1) after Range::step_by gets removed
151- let mut it = Iterator :: step_by ( ( 0 ..) , 1 ) . take ( 3 ) ;
159+ let mut it = ( 0 ..) . iter_step_by ( 1 ) . take ( 3 ) ;
152160 assert_eq ! ( it. next( ) , Some ( 0 ) ) ;
153161 assert_eq ! ( it. next( ) , Some ( 1 ) ) ;
154162 assert_eq ! ( it. next( ) , Some ( 2 ) ) ;
155163 assert_eq ! ( it. next( ) , None ) ;
156164
157- // Replace with (0..).step_by(3) after Range::step_by gets removed
158- let mut it = Iterator :: step_by ( ( 0 ..) , 3 ) . take ( 4 ) ;
165+ let mut it = ( 0 ..) . iter_step_by ( 3 ) . take ( 4 ) ;
159166 assert_eq ! ( it. next( ) , Some ( 0 ) ) ;
160167 assert_eq ! ( it. next( ) , Some ( 3 ) ) ;
161168 assert_eq ! ( it. next( ) , Some ( 6 ) ) ;
@@ -166,8 +173,7 @@ fn test_iterator_step_by() {
166173#[ test]
167174#[ should_panic]
168175fn test_iterator_step_by_zero ( ) {
169- // Replace with (0..).step_by(0) after Range::step_by gets removed
170- let mut it = Iterator :: step_by ( ( 0 ..) , 0 ) ;
176+ let mut it = ( 0 ..) . iter_step_by ( 0 ) ;
171177 it. next ( ) ;
172178}
173179
@@ -246,7 +252,7 @@ fn test_iterator_step_by_size_hint() {
246252
247253#[ test]
248254fn test_filter_map ( ) {
249- let it = ( 0 ..) . step_by ( 1 ) . take ( 10 )
255+ let it = ( 0 ..) . iter_step_by ( 1 ) . take ( 10 )
250256 . filter_map ( |x| if x % 2 == 0 { Some ( x* x) } else { None } ) ;
251257 assert_eq ! ( it. collect:: <Vec <usize >>( ) , [ 0 * 0 , 2 * 2 , 4 * 4 , 6 * 6 , 8 * 8 ] ) ;
252258}
@@ -648,7 +654,7 @@ fn test_iterator_scan() {
648654fn test_iterator_flat_map ( ) {
649655 let xs = [ 0 , 3 , 6 ] ;
650656 let ys = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] ;
651- let it = xs. iter ( ) . flat_map ( |& x| ( x..) . step_by ( 1 ) . take ( 3 ) ) ;
657+ let it = xs. iter ( ) . flat_map ( |& x| ( x..) . iter_step_by ( 1 ) . take ( 3 ) ) ;
652658 let mut i = 0 ;
653659 for x in it {
654660 assert_eq ! ( x, ys[ i] ) ;
@@ -674,13 +680,13 @@ fn test_inspect() {
674680#[ test]
675681fn test_cycle ( ) {
676682 let cycle_len = 3 ;
677- let it = ( 0 ..) . step_by ( 1 ) . take ( cycle_len) . cycle ( ) ;
683+ let it = ( 0 ..) . iter_step_by ( 1 ) . take ( cycle_len) . cycle ( ) ;
678684 assert_eq ! ( it. size_hint( ) , ( usize :: MAX , None ) ) ;
679685 for ( i, x) in it. take ( 100 ) . enumerate ( ) {
680686 assert_eq ! ( i % cycle_len, x) ;
681687 }
682688
683- let mut it = ( 0 ..) . step_by ( 1 ) . take ( 0 ) . cycle ( ) ;
689+ let mut it = ( 0 ..) . iter_step_by ( 1 ) . take ( 0 ) . cycle ( ) ;
684690 assert_eq ! ( it. size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
685691 assert_eq ! ( it. next( ) , None ) ;
686692}
@@ -759,7 +765,7 @@ fn test_iterator_min() {
759765
760766#[ test]
761767fn test_iterator_size_hint ( ) {
762- let c = ( 0 ..) . step_by ( 1 ) ;
768+ let c = ( 0 ..) . iter_step_by ( 1 ) ;
763769 let v: & [ _ ] = & [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ] ;
764770 let v2 = & [ 10 , 11 , 12 ] ;
765771 let vi = v. iter ( ) ;
@@ -1081,6 +1087,8 @@ fn test_range() {
10811087
10821088#[ test]
10831089fn test_range_step ( ) {
1090+ #![ allow( deprecated) ]
1091+
10841092 assert_eq ! ( ( 0 ..20 ) . step_by( 5 ) . collect:: <Vec <isize >>( ) , [ 0 , 5 , 10 , 15 ] ) ;
10851093 assert_eq ! ( ( 20 ..0 ) . step_by( -5 ) . collect:: <Vec <isize >>( ) , [ 20 , 15 , 10 , 5 ] ) ;
10861094 assert_eq ! ( ( 20 ..0 ) . step_by( -6 ) . collect:: <Vec <isize >>( ) , [ 20 , 14 , 8 , 2 ] ) ;
0 commit comments