diff options
| author | Deadbeef <ent3rm4n@gmail.com> | 2023-07-25 09:24:12 +0000 |
|---|---|---|
| committer | Deadbeef <ent3rm4n@gmail.com> | 2023-07-25 09:24:12 +0000 |
| commit | a0376e9ec2af2d996b828f6a6153c7f53b100b0b (patch) | |
| tree | 0aa5e366c919471c36025c29ef94b63ae5561a63 | |
| parent | 0d9c871736092fa804e1edf4e2d198cf2fe659df (diff) | |
| download | rust-a0376e9ec2af2d996b828f6a6153c7f53b100b0b.tar.gz rust-a0376e9ec2af2d996b828f6a6153c7f53b100b0b.zip | |
extract common code
| -rw-r--r-- | compiler/rustc_parse/src/lexer/mod.rs | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/compiler/rustc_parse/src/lexer/mod.rs b/compiler/rustc_parse/src/lexer/mod.rs index cfcc2ec42fa..1931ee5e528 100644 --- a/compiler/rustc_parse/src/lexer/mod.rs +++ b/compiler/rustc_parse/src/lexer/mod.rs @@ -166,10 +166,7 @@ impl<'a> StringReader<'a> { continue; } rustc_lexer::TokenKind::Ident => { - let sym = nfc_normalize(self.str_from(start)); - let span = self.mk_sp(start, self.pos); - self.sess.symbol_gallery.insert(sym, span); - token::Ident(sym, false) + self.ident(start) } rustc_lexer::TokenKind::RawIdent => { let sym = nfc_normalize(self.str_from(start + BytePos(2))); @@ -183,10 +180,7 @@ impl<'a> StringReader<'a> { } rustc_lexer::TokenKind::UnknownPrefix => { self.report_unknown_prefix(start); - let sym = nfc_normalize(self.str_from(start)); - let span = self.mk_sp(start, self.pos); - self.sess.symbol_gallery.insert(sym, span); - token::Ident(sym, false) + self.ident(start) } rustc_lexer::TokenKind::InvalidIdent // Do not recover an identifier with emoji if the codepoint is a confusable @@ -222,10 +216,8 @@ impl<'a> StringReader<'a> { self.cursor = Cursor::new(&str_before[prefix_len as usize..]); self.report_unknown_prefix(start); - let sym = nfc_normalize(self.str_from(start)); let prefix_span = self.mk_sp(start, lit_start); - self.sess.symbol_gallery.insert(sym, prefix_span); - return (Token::new(token::Ident(sym, false), prefix_span), preceded_by_whitespace); + return (Token::new(self.ident(start), prefix_span), preceded_by_whitespace); } rustc_lexer::TokenKind::Literal { kind, suffix_start } => { let suffix_start = start + BytePos(suffix_start); @@ -341,6 +333,13 @@ impl<'a> StringReader<'a> { } } + fn ident(&self, start: BytePos) -> TokenKind { + let sym = nfc_normalize(self.str_from(start)); + let span = self.mk_sp(start, self.pos); + self.sess.symbol_gallery.insert(sym, span); + token::Ident(sym, false) + } + fn struct_fatal_span_char( &self, from_pos: BytePos, |
