@@ -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