rustc_parse: Make Parser::unexpected public and use it in built-in macros

This commit is contained in:
Vadim Petrochenkov 2020-10-06 00:21:03 +03:00
parent 299136b9c7
commit 219c66c55c
3 changed files with 4 additions and 5 deletions

View File

@ -164,7 +164,7 @@ fn parse_args<'a>(
args.templates.push(template);
continue;
} else {
return Err(p.expect_one_of(&[], &[]).unwrap_err());
return p.unexpected();
};
allow_templates = false;
@ -348,7 +348,7 @@ fn parse_options<'a>(p: &mut Parser<'a>, args: &mut AsmArgs) -> Result<(), Diagn
} else if p.eat_keyword(sym::att_syntax) {
try_set_option(p, args, sym::att_syntax, ast::InlineAsmOptions::ATT_SYNTAX);
} else {
return Err(p.expect_one_of(&[], &[]).unwrap_err());
return p.unexpected();
}
// Allow trailing commas

View File

@ -120,8 +120,7 @@ fn parse_assert<'a>(
};
if parser.token != token::Eof {
parser.expect_one_of(&[], &[])?;
unreachable!();
return parser.unexpected();
}
Ok(Assert { cond_expr, custom_message })

View File

@ -386,7 +386,7 @@ impl<'a> Parser<'a> {
next
}
crate fn unexpected<T>(&mut self) -> PResult<'a, T> {
pub fn unexpected<T>(&mut self) -> PResult<'a, T> {
match self.expect_one_of(&[], &[]) {
Err(e) => Err(e),
// We can get `Ok(true)` from `recover_closing_delimiter`