@@ -64,7 +64,7 @@ macro_rules! iterator {
6464 // backwards by `n`. `n` must not exceed `self.len()`.
6565 macro_rules! zst_shrink {
6666 ( $self: ident, $n: ident) => {
67- $self. end = $self. end. wrapping_byte_offset ( - $n) ;
67+ $self. end = $self. end. wrapping_byte_sub ( $n) ;
6868 }
6969 }
7070
@@ -82,15 +82,15 @@ macro_rules! iterator {
8282 // returning the old start.
8383 // Unsafe because the offset must not exceed `self.len()`.
8484 #[ inline( always) ]
85- unsafe fn post_inc_start( & mut self , offset: isize ) -> * $raw_mut T {
85+ unsafe fn post_inc_start( & mut self , offset: usize ) -> * $raw_mut T {
8686 if mem:: size_of:: <T >( ) == 0 {
8787 zst_shrink!( self , offset) ;
8888 self . ptr. as_ptr( )
8989 } else {
9090 let old = self . ptr. as_ptr( ) ;
9191 // SAFETY: the caller guarantees that `offset` doesn't exceed `self.len()`,
9292 // so this new pointer is inside `self` and thus guaranteed to be non-null.
93- self . ptr = unsafe { NonNull :: new_unchecked( self . ptr. as_ptr( ) . offset ( offset) ) } ;
93+ self . ptr = unsafe { NonNull :: new_unchecked( self . ptr. as_ptr( ) . add ( offset) ) } ;
9494 old
9595 }
9696 }
@@ -99,15 +99,15 @@ macro_rules! iterator {
9999 // returning the new end.
100100 // Unsafe because the offset must not exceed `self.len()`.
101101 #[ inline( always) ]
102- unsafe fn pre_dec_end( & mut self , offset: isize ) -> * $raw_mut T {
102+ unsafe fn pre_dec_end( & mut self , offset: usize ) -> * $raw_mut T {
103103 if mem:: size_of:: <T >( ) == 0 {
104104 zst_shrink!( self , offset) ;
105105 self . ptr. as_ptr( )
106106 } else {
107107 // SAFETY: the caller guarantees that `offset` doesn't exceed `self.len()`,
108108 // which is guaranteed to not overflow an `isize`. Also, the resulting pointer
109109 // is in bounds of `slice`, which fulfills the other requirements for `offset`.
110- self . end = unsafe { self . end. offset ( - offset) } ;
110+ self . end = unsafe { self . end. sub ( offset) } ;
111111 self . end
112112 }
113113 }
@@ -180,7 +180,7 @@ macro_rules! iterator {
180180 }
181181 // SAFETY: We are in bounds. `post_inc_start` does the right thing even for ZSTs.
182182 unsafe {
183- self . post_inc_start( n as isize ) ;
183+ self . post_inc_start( n) ;
184184 Some ( next_unchecked!( self ) )
185185 }
186186 }
@@ -189,7 +189,7 @@ macro_rules! iterator {
189189 fn advance_by( & mut self , n: usize ) -> Result <( ) , usize > {
190190 let advance = cmp:: min( len!( self ) , n) ;
191191 // SAFETY: By construction, `advance` does not exceed `self.len()`.
192- unsafe { self . post_inc_start( advance as isize ) } ;
192+ unsafe { self . post_inc_start( advance) } ;
193193 if advance == n { Ok ( ( ) ) } else { Err ( advance) }
194194 }
195195
@@ -375,7 +375,7 @@ macro_rules! iterator {
375375 }
376376 // SAFETY: We are in bounds. `pre_dec_end` does the right thing even for ZSTs.
377377 unsafe {
378- self . pre_dec_end( n as isize ) ;
378+ self . pre_dec_end( n) ;
379379 Some ( next_back_unchecked!( self ) )
380380 }
381381 }
@@ -384,7 +384,7 @@ macro_rules! iterator {
384384 fn advance_back_by( & mut self , n: usize ) -> Result <( ) , usize > {
385385 let advance = cmp:: min( len!( self ) , n) ;
386386 // SAFETY: By construction, `advance` does not exceed `self.len()`.
387- unsafe { self . pre_dec_end( advance as isize ) } ;
387+ unsafe { self . pre_dec_end( advance) } ;
388388 if advance == n { Ok ( ( ) ) } else { Err ( advance) }
389389 }
390390 }
0 commit comments