Rollup merge of #89221 - aDotInTheVoid:macro-error-1, r=estebank
Give better error for `macro_rules! name!` r? ``@estebank`` ``@rustbot`` modify labels: +A-diagnostics +A-parser
This commit is contained in:
commit
6f31fa58fd
4 changed files with 38 additions and 0 deletions
|
@ -1547,6 +1547,20 @@ impl<'a> Parser<'a> {
|
|||
self.expect(&token::Not)?; // `!`
|
||||
|
||||
let ident = self.parse_ident()?;
|
||||
|
||||
if self.eat(&token::Not) {
|
||||
// Handle macro_rules! foo!
|
||||
let span = self.prev_token.span;
|
||||
self.struct_span_err(span, "macro names aren't followed by a `!`")
|
||||
.span_suggestion(
|
||||
span,
|
||||
"remove the `!`",
|
||||
"".to_owned(),
|
||||
Applicability::MachineApplicable,
|
||||
)
|
||||
.emit();
|
||||
}
|
||||
|
||||
let body = self.parse_mac_args()?;
|
||||
self.eat_semi_for_macro_if_needed(&body);
|
||||
self.complain_if_pub_macro(vis, true);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue