Add a label to point to the lacking macro name definition
This commit is contained in:
parent
5be2ec7245
commit
2fca4ea317
@ -1439,7 +1439,10 @@ pub(crate) fn unresolved_macro_suggestions(
|
|||||||
);
|
);
|
||||||
|
|
||||||
if macro_kind == MacroKind::Bang && ident.name == sym::macro_rules {
|
if macro_kind == MacroKind::Bang && ident.name == sym::macro_rules {
|
||||||
err.subdiagnostic(MaybeMissingMacroRulesName { span: ident.span });
|
let label_span = ident.span.shrink_to_hi();
|
||||||
|
let mut spans = MultiSpan::from_span(label_span);
|
||||||
|
spans.push_span_label(label_span, "put a macro name here");
|
||||||
|
err.subdiagnostic(MaybeMissingMacroRulesName { spans: spans });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -667,7 +667,7 @@ pub(crate) struct MacroSuggMovePosition {
|
|||||||
#[note(resolve_missing_macro_rules_name)]
|
#[note(resolve_missing_macro_rules_name)]
|
||||||
pub(crate) struct MaybeMissingMacroRulesName {
|
pub(crate) struct MaybeMissingMacroRulesName {
|
||||||
#[primary_span]
|
#[primary_span]
|
||||||
pub(crate) span: Span,
|
pub(crate) spans: MultiSpan,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Subdiagnostic)]
|
#[derive(Subdiagnostic)]
|
||||||
|
@ -7,6 +7,7 @@ macro_rules! make_macro {
|
|||||||
macro_rules! $macro_name {
|
macro_rules! $macro_name {
|
||||||
//~^ ERROR macro expansion ignores token `{` and any following
|
//~^ ERROR macro expansion ignores token `{` and any following
|
||||||
//~| ERROR cannot find macro `macro_rules` in this scope
|
//~| ERROR cannot find macro `macro_rules` in this scope
|
||||||
|
//~| put a macro name here
|
||||||
() => {}
|
() => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
error: macros that expand to items must be delimited with braces or followed by a semicolon
|
error: macros that expand to items must be delimited with braces or followed by a semicolon
|
||||||
--> $DIR/issue-118786.rs:15:13
|
--> $DIR/issue-118786.rs:16:13
|
||||||
|
|
|
|
||||||
LL | make_macro!((meow));
|
LL | make_macro!((meow));
|
||||||
| ^^^^^^
|
| ^^^^^^
|
||||||
@ -34,10 +34,10 @@ LL | make_macro!((meow));
|
|||||||
| ------------------- in this macro invocation
|
| ------------------- in this macro invocation
|
||||||
|
|
|
|
||||||
note: maybe you have forgotten to define a name for this `macro_rules!`
|
note: maybe you have forgotten to define a name for this `macro_rules!`
|
||||||
--> $DIR/issue-118786.rs:7:9
|
--> $DIR/issue-118786.rs:7:20
|
||||||
|
|
|
|
||||||
LL | macro_rules! $macro_name {
|
LL | macro_rules! $macro_name {
|
||||||
| ^^^^^^^^^^^
|
| ^ put a macro name here
|
||||||
...
|
...
|
||||||
LL | make_macro!((meow));
|
LL | make_macro!((meow));
|
||||||
| ------------------- in this macro invocation
|
| ------------------- in this macro invocation
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
macro_rules! {}
|
macro_rules! {}
|
||||||
//~^ ERROR cannot find macro `macro_rules` in this scope
|
//~^ ERROR cannot find macro `macro_rules` in this scope
|
||||||
//~| NOTE maybe you have forgotten to define a name for this `macro_rules!`
|
//~| NOTE maybe you have forgotten to define a name for this `macro_rules!`
|
||||||
|
//~| put a macro name here
|
||||||
|
|
||||||
|
macro_rules!{}
|
||||||
|
//~^ ERROR cannot find macro `macro_rules` in this scope
|
||||||
|
//~| NOTE maybe you have forgotten to define a name for this `macro_rules!`
|
||||||
|
//~| put a macro name here
|
||||||
|
|
||||||
fn main() {}
|
fn main() {}
|
||||||
|
@ -1,3 +1,15 @@
|
|||||||
|
error: cannot find macro `macro_rules` in this scope
|
||||||
|
--> $DIR/issue-118295.rs:6:1
|
||||||
|
|
|
||||||
|
LL | macro_rules!{}
|
||||||
|
| ^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
note: maybe you have forgotten to define a name for this `macro_rules!`
|
||||||
|
--> $DIR/issue-118295.rs:6:12
|
||||||
|
|
|
||||||
|
LL | macro_rules!{}
|
||||||
|
| ^ put a macro name here
|
||||||
|
|
||||||
error: cannot find macro `macro_rules` in this scope
|
error: cannot find macro `macro_rules` in this scope
|
||||||
--> $DIR/issue-118295.rs:1:1
|
--> $DIR/issue-118295.rs:1:1
|
||||||
|
|
|
|
||||||
@ -5,10 +17,10 @@ LL | macro_rules! {}
|
|||||||
| ^^^^^^^^^^^
|
| ^^^^^^^^^^^
|
||||||
|
|
|
|
||||||
note: maybe you have forgotten to define a name for this `macro_rules!`
|
note: maybe you have forgotten to define a name for this `macro_rules!`
|
||||||
--> $DIR/issue-118295.rs:1:1
|
--> $DIR/issue-118295.rs:1:12
|
||||||
|
|
|
|
||||||
LL | macro_rules! {}
|
LL | macro_rules! {}
|
||||||
| ^^^^^^^^^^^
|
| ^ put a macro name here
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 2 previous errors
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user