Skip to content

Commit 4c274b6

Browse files
committed
Avoid an unnecessary intermediate value in char_lit().
This makes the function more concise and easier to understand.
1 parent ea45edf commit 4c274b6

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

src/libsyntax/parse/mod.rs

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -287,26 +287,21 @@ pub fn char_lit(lit: &str) -> (char, isize) {
287287
use std::char;
288288

289289
let mut chars = lit.chars();
290-
let c = match (chars.next(), chars.next()) {
290+
match (chars.next(), chars.next()) {
291291
(Some(c), None) if c != '\\' => return (c, 1),
292292
(Some('\\'), Some(c)) => match c {
293-
'"' => Some('"'),
294-
'n' => Some('\n'),
295-
'r' => Some('\r'),
296-
't' => Some('\t'),
297-
'\\' => Some('\\'),
298-
'\'' => Some('\''),
299-
'0' => Some('\0'),
300-
_ => { None }
293+
'"' => return ('"', 2),
294+
'n' => return ('\n', 2),
295+
'r' => return ('\r', 2),
296+
't' => return ('\t', 2),
297+
'\\' => return ('\\', 2),
298+
'\'' => return ('\'', 2),
299+
'0' => return ('\0', 2),
300+
_ => {}
301301
},
302302
_ => panic!("lexer accepted invalid char escape `{}`", lit)
303303
};
304304

305-
match c {
306-
Some(x) => return (x, 2),
307-
None => { }
308-
}
309-
310305
let msg = format!("lexer should have rejected a bad character escape {}", lit);
311306
let msg2 = &msg[..];
312307

0 commit comments

Comments
 (0)