1
Fork 0

Remove desugar_doc_comments arg from Parser::new().

It's only true at one call site; do the desugaring there instead.
This commit is contained in:
Nicholas Nethercote 2023-07-31 12:49:01 +10:00
parent d72fc5ce44
commit 2e6ce68fba
3 changed files with 12 additions and 12 deletions

View file

@ -249,7 +249,7 @@ fn expand_macro<'cx>(
trace_macros_note(&mut cx.expansions, sp, msg); trace_macros_note(&mut cx.expansions, sp, msg);
} }
let p = Parser::new(sess, tts, false, None); let p = Parser::new(sess, tts, None);
if is_local { if is_local {
cx.resolver.record_macro_rule_usage(node_id, i); cx.resolver.record_macro_rule_usage(node_id, i);
@ -446,7 +446,7 @@ pub fn compile_declarative_macro(
let create_parser = || { let create_parser = || {
let body = macro_def.body.tokens.clone(); let body = macro_def.body.tokens.clone();
Parser::new(&sess.parse_sess, body, false, rustc_parse::MACRO_ARGUMENTS) Parser::new(&sess.parse_sess, body, rustc_parse::MACRO_ARGUMENTS)
}; };
let parser = create_parser(); let parser = create_parser();
@ -1417,6 +1417,11 @@ fn quoted_tt_to_string(tt: &mbe::TokenTree) -> String {
} }
} }
pub(super) fn parser_from_cx(sess: &ParseSess, tts: TokenStream, recovery: Recovery) -> Parser<'_> { pub(super) fn parser_from_cx(
Parser::new(sess, tts, true, rustc_parse::MACRO_ARGUMENTS).recovery(recovery) sess: &ParseSess,
mut tts: TokenStream,
recovery: Recovery,
) -> Parser<'_> {
tts.desugar_doc_comments();
Parser::new(sess, tts, rustc_parse::MACRO_ARGUMENTS).recovery(recovery)
} }

View file

@ -205,7 +205,7 @@ pub fn stream_to_parser<'a>(
stream: TokenStream, stream: TokenStream,
subparser_name: Option<&'static str>, subparser_name: Option<&'static str>,
) -> Parser<'a> { ) -> Parser<'a> {
Parser::new(sess, stream, false, subparser_name) Parser::new(sess, stream, subparser_name)
} }
/// Runs the given subparser `f` on the tokens of the given `attr`'s item. /// Runs the given subparser `f` on the tokens of the given `attr`'s item.
@ -215,7 +215,7 @@ pub fn parse_in<'a, T>(
name: &'static str, name: &'static str,
mut f: impl FnMut(&mut Parser<'a>) -> PResult<'a, T>, mut f: impl FnMut(&mut Parser<'a>) -> PResult<'a, T>,
) -> PResult<'a, T> { ) -> PResult<'a, T> {
let mut parser = Parser::new(sess, tts, false, Some(name)); let mut parser = Parser::new(sess, tts, Some(name));
let result = f(&mut parser)?; let result = f(&mut parser)?;
if parser.token != token::Eof { if parser.token != token::Eof {
parser.unexpected()?; parser.unexpected()?;

View file

@ -388,14 +388,9 @@ pub(super) fn token_descr(token: &Token) -> String {
impl<'a> Parser<'a> { impl<'a> Parser<'a> {
pub fn new( pub fn new(
sess: &'a ParseSess, sess: &'a ParseSess,
mut stream: TokenStream, stream: TokenStream,
desugar_doc_comments: bool,
subparser_name: Option<&'static str>, subparser_name: Option<&'static str>,
) -> Self { ) -> Self {
if desugar_doc_comments {
stream.desugar_doc_comments();
}
let mut parser = Parser { let mut parser = Parser {
sess, sess,
token: Token::dummy(), token: Token::dummy(),