Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit bdf8547

Browse files
committed
Clarify the intent
Thanks to Lukas Wirth for a suggestion.
1 parent 180b4ce commit bdf8547

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

crates/syntax/src/ast/token_ext.rs

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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", "\nfoobar");
451451
check_string_value(r"C:\\Windows\\System32\\", "C:\\Windows\\System32\\");
452-
check_string_value(r"\x61bcde", "a\x62cde");
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

Comments
 (0)