@@ -21,7 +21,7 @@ use crate::str::from_utf8_unchecked;
2121#[ stable( feature = "rust1" ,  since = "1.0.0" ) ]  
2222#[ derive( Clone ) ]  
2323pub  struct  EscapeDefault  { 
24-     range :  Range < usize > , 
24+     range :  Range < u8 > , 
2525    data :  [ u8 ;  4 ] , 
2626} 
2727
@@ -114,7 +114,7 @@ pub fn escape_default(c: u8) -> EscapeDefault {
114114impl  Iterator  for  EscapeDefault  { 
115115    type  Item  = u8 ; 
116116    fn  next ( & mut  self )  -> Option < u8 >  { 
117-         self . range . next ( ) . map ( |i| self . data [ i] ) 
117+         self . range . next ( ) . map ( |i| self . data [ i  as   usize ] ) 
118118    } 
119119    fn  size_hint ( & self )  -> ( usize ,  Option < usize > )  { 
120120        self . range . size_hint ( ) 
@@ -126,7 +126,7 @@ impl Iterator for EscapeDefault {
126126#[ stable( feature = "rust1" ,  since = "1.0.0" ) ]  
127127impl  DoubleEndedIterator  for  EscapeDefault  { 
128128    fn  next_back ( & mut  self )  -> Option < u8 >  { 
129-         self . range . next_back ( ) . map ( |i| self . data [ i] ) 
129+         self . range . next_back ( ) . map ( |i| self . data [ i  as   usize ] ) 
130130    } 
131131} 
132132#[ stable( feature = "rust1" ,  since = "1.0.0" ) ]  
@@ -138,7 +138,9 @@ impl FusedIterator for EscapeDefault {}
138138impl  fmt:: Display  for  EscapeDefault  { 
139139    fn  fmt ( & self ,  f :  & mut  fmt:: Formatter < ' _ > )  -> fmt:: Result  { 
140140        // SAFETY: ok because `escape_default` created only valid utf-8 data 
141-         f. write_str ( unsafe  {  from_utf8_unchecked ( & self . data [ self . range . clone ( ) ] )  } ) 
141+         f. write_str ( unsafe  { 
142+             from_utf8_unchecked ( & self . data [ ( self . range . start  as  usize ) ..( self . range . end  as  usize ) ] ) 
143+         } ) 
142144    } 
143145} 
144146
0 commit comments