Skip to content

Commit ceb25d1

Browse files
committed
Use less DRY in cook_lexer_token.
This is a case where a small amount of repetition results in code that is faster and easier to read.
1 parent aa6bfaf commit ceb25d1

File tree

1 file changed

+19
-19
lines changed
  • compiler/rustc_parse/src/lexer

1 file changed

+19
-19
lines changed

compiler/rustc_parse/src/lexer/mod.rs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -201,28 +201,28 @@ impl<'a> StringReader<'a> {
201201
self.cook_doc_comment(content_start, content, CommentKind::Block, doc_style)
202202
}
203203
rustc_lexer::TokenKind::Whitespace => return None,
204-
rustc_lexer::TokenKind::Ident
205-
| rustc_lexer::TokenKind::RawIdent
206-
| rustc_lexer::TokenKind::UnknownPrefix => {
207-
let is_raw_ident = token == rustc_lexer::TokenKind::RawIdent;
208-
let is_unknown_prefix = token == rustc_lexer::TokenKind::UnknownPrefix;
209-
let mut ident_start = start;
210-
if is_raw_ident {
211-
ident_start = ident_start + BytePos(2);
212-
}
213-
if is_unknown_prefix {
214-
self.report_unknown_prefix(start);
215-
}
216-
let sym = nfc_normalize(self.str_from(ident_start));
204+
rustc_lexer::TokenKind::Ident => {
205+
let sym = nfc_normalize(self.str_from(start));
217206
let span = self.mk_sp(start, self.pos);
218207
self.sess.symbol_gallery.insert(sym, span);
219-
if is_raw_ident {
220-
if !sym.can_be_raw() {
221-
self.err_span(span, &format!("`{}` cannot be a raw identifier", sym));
222-
}
223-
self.sess.raw_identifier_spans.borrow_mut().push(span);
208+
token::Ident(sym, false)
209+
}
210+
rustc_lexer::TokenKind::RawIdent => {
211+
let sym = nfc_normalize(self.str_from(start + BytePos(2)));
212+
let span = self.mk_sp(start, self.pos);
213+
self.sess.symbol_gallery.insert(sym, span);
214+
if !sym.can_be_raw() {
215+
self.err_span(span, &format!("`{}` cannot be a raw identifier", sym));
224216
}
225-
token::Ident(sym, is_raw_ident)
217+
self.sess.raw_identifier_spans.borrow_mut().push(span);
218+
token::Ident(sym, true)
219+
}
220+
rustc_lexer::TokenKind::UnknownPrefix => {
221+
self.report_unknown_prefix(start);
222+
let sym = nfc_normalize(self.str_from(start));
223+
let span = self.mk_sp(start, self.pos);
224+
self.sess.symbol_gallery.insert(sym, span);
225+
token::Ident(sym, false)
226226
}
227227
rustc_lexer::TokenKind::InvalidIdent
228228
// Do not recover an identifier with emoji if the codepoint is a confusable

0 commit comments

Comments
 (0)