1
Fork 0

Address review comments.

This commit is contained in:
Nicholas Nethercote 2022-09-28 10:28:36 +10:00
parent 7f7e2165b1
commit d0a26acb2a
4 changed files with 13 additions and 11 deletions

View file

@ -23,15 +23,17 @@
// We want to be able to build this crate with a stable compiler, so no // We want to be able to build this crate with a stable compiler, so no
// `#![feature]` attributes should be added. // `#![feature]` attributes should be added.
pub mod cursor; mod cursor;
pub mod unescape; pub mod unescape;
#[cfg(test)] #[cfg(test)]
mod tests; mod tests;
pub use crate::cursor::Cursor;
use self::LiteralKind::*; use self::LiteralKind::*;
use self::TokenKind::*; use self::TokenKind::*;
use crate::cursor::{Cursor, EOF_CHAR}; use crate::cursor::EOF_CHAR;
use std::convert::TryFrom; use std::convert::TryFrom;
/// Parsed token. /// Parsed token.

View file

@ -4,8 +4,8 @@ use rustc_ast::token::{self, CommentKind, Delimiter, Token, TokenKind};
use rustc_ast::tokenstream::TokenStream; use rustc_ast::tokenstream::TokenStream;
use rustc_ast::util::unicode::contains_text_flow_control_chars; use rustc_ast::util::unicode::contains_text_flow_control_chars;
use rustc_errors::{error_code, Applicability, DiagnosticBuilder, ErrorGuaranteed, PResult}; use rustc_errors::{error_code, Applicability, DiagnosticBuilder, ErrorGuaranteed, PResult};
use rustc_lexer::cursor::Cursor;
use rustc_lexer::unescape::{self, Mode}; use rustc_lexer::unescape::{self, Mode};
use rustc_lexer::Cursor;
use rustc_lexer::{Base, DocStyle, RawStrError}; use rustc_lexer::{Base, DocStyle, RawStrError};
use rustc_session::lint::builtin::{ use rustc_session::lint::builtin::{
RUST_2021_PREFIXES_INCOMPATIBLE_SYNTAX, TEXT_DIRECTION_CODEPOINT_IN_COMMENT, RUST_2021_PREFIXES_INCOMPATIBLE_SYNTAX, TEXT_DIRECTION_CODEPOINT_IN_COMMENT,

View file

@ -53,7 +53,7 @@ impl<'a> TokenTreesReader<'a> {
token::OpenDelim(delim) => buf.push(self.parse_token_tree_open_delim(delim)), token::OpenDelim(delim) => buf.push(self.parse_token_tree_open_delim(delim)),
token::CloseDelim(delim) => return Err(self.close_delim_err(delim)), token::CloseDelim(delim) => return Err(self.close_delim_err(delim)),
token::Eof => return Ok(buf.into_token_stream()), token::Eof => return Ok(buf.into_token_stream()),
_ => buf.push(self.parse_token_tree_other()), _ => buf.push(self.parse_token_tree_non_delim_non_eof()),
} }
} }
} }
@ -66,11 +66,10 @@ impl<'a> TokenTreesReader<'a> {
token::OpenDelim(delim) => buf.push(self.parse_token_tree_open_delim(delim)), token::OpenDelim(delim) => buf.push(self.parse_token_tree_open_delim(delim)),
token::CloseDelim(..) => return buf.into_token_stream(), token::CloseDelim(..) => return buf.into_token_stream(),
token::Eof => { token::Eof => {
let mut err = self.eof_err(); self.eof_err().emit();
err.emit();
return buf.into_token_stream(); return buf.into_token_stream();
} }
_ => buf.push(self.parse_token_tree_other()), _ => buf.push(self.parse_token_tree_non_delim_non_eof()),
} }
} }
} }
@ -245,9 +244,10 @@ impl<'a> TokenTreesReader<'a> {
} }
#[inline] #[inline]
fn parse_token_tree_other(&mut self) -> TokenTree { fn parse_token_tree_non_delim_non_eof(&mut self) -> TokenTree {
// `spacing` for the returned token is determined by the next token: // `this_spacing` for the returned token refers to whether the token is
// its kind and its `preceded_by_whitespace` status. // immediately followed by another op token. It is determined by the
// next token: its kind and its `preceded_by_whitespace` status.
let (next_tok, is_next_tok_preceded_by_whitespace) = self.string_reader.next_token(); let (next_tok, is_next_tok_preceded_by_whitespace) = self.string_reader.next_token();
let this_spacing = if is_next_tok_preceded_by_whitespace || !next_tok.is_op() { let this_spacing = if is_next_tok_preceded_by_whitespace || !next_tok.is_op() {
Spacing::Alone Spacing::Alone

View file

@ -13,7 +13,7 @@ use std::collections::VecDeque;
use std::fmt::{Display, Write}; use std::fmt::{Display, Write};
use rustc_data_structures::fx::FxHashMap; use rustc_data_structures::fx::FxHashMap;
use rustc_lexer::cursor::Cursor; use rustc_lexer::Cursor;
use rustc_lexer::{LiteralKind, TokenKind}; use rustc_lexer::{LiteralKind, TokenKind};
use rustc_span::edition::Edition; use rustc_span::edition::Edition;
use rustc_span::symbol::Symbol; use rustc_span::symbol::Symbol;