@@ -209,19 +209,19 @@ impl ast::String {
209209 let text = & text[ self . text_range_between_quotes ( ) ? - self . syntax ( ) . text_range ( ) . start ( ) ] ;
210210
211211 let mut buf = String :: new ( ) ;
212- let mut prev = 0 ;
212+ let mut prev_end = 0 ;
213213 let mut has_error = false ;
214214 unescape_literal ( text, Mode :: Str , & mut |char_range, unescaped_char| match (
215215 unescaped_char,
216216 buf. capacity ( ) == 0 ,
217217 ) {
218218 ( Ok ( c) , false ) => buf. push ( c) ,
219- ( Ok ( _) , true ) if char_range. len ( ) == 1 && char_range. start == prev => {
220- prev = char_range. end
219+ ( Ok ( _) , true ) if char_range. len ( ) == 1 && char_range. start == prev_end => {
220+ prev_end = char_range. end
221221 }
222222 ( Ok ( c) , true ) => {
223223 buf. reserve_exact ( text. len ( ) ) ;
224- buf. push_str ( & text[ ..prev ] ) ;
224+ buf. push_str ( & text[ ..prev_end ] ) ;
225225 buf. push ( c) ;
226226 }
227227 ( Err ( _) , _) => has_error = true ,
@@ -254,19 +254,19 @@ impl ast::ByteString {
254254 let text = & text[ self . text_range_between_quotes ( ) ? - self . syntax ( ) . text_range ( ) . start ( ) ] ;
255255
256256 let mut buf: Vec < u8 > = Vec :: new ( ) ;
257- let mut prev = 0 ;
257+ let mut prev_end = 0 ;
258258 let mut has_error = false ;
259259 unescape_literal ( text, Mode :: ByteStr , & mut |char_range, unescaped_char| match (
260260 unescaped_char,
261261 buf. capacity ( ) == 0 ,
262262 ) {
263263 ( Ok ( c) , false ) => buf. push ( c as u8 ) ,
264- ( Ok ( _) , true ) if char_range. len ( ) == 1 && char_range. start == prev => {
265- prev = char_range. end
264+ ( Ok ( _) , true ) if char_range. len ( ) == 1 && char_range. start == prev_end => {
265+ prev_end = char_range. end
266266 }
267267 ( Ok ( c) , true ) => {
268268 buf. reserve_exact ( text. len ( ) ) ;
269- buf. extend_from_slice ( text[ ..prev ] . as_bytes ( ) ) ;
269+ buf. extend_from_slice ( text[ ..prev_end ] . as_bytes ( ) ) ;
270270 buf. push ( c as u8 ) ;
271271 }
272272 ( Err ( _) , _) => has_error = true ,
@@ -449,11 +449,10 @@ mod tests {
449449 check_string_value ( r"\foobar" , None ) ;
450450 check_string_value ( r"\nfoobar" , "\n foobar" ) ;
451451 check_string_value ( r"C:\\Windows\\System32\\" , "C:\\ Windows\\ System32\\ " ) ;
452- check_string_value ( r"\x61bcde" , "a \x62 cde " ) ;
452+ check_string_value ( r"\x61bcde" , "abcde " ) ;
453453 check_string_value (
454454 r"a\
455- bcde" , "a\
456- bcde",
455+ bcde" , "abcde" ,
457456 ) ;
458457 }
459458
0 commit comments