diff options
| author | Josh Triplett <josh@joshtriplett.org> | 2025-08-08 22:49:57 -0700 |
|---|---|---|
| committer | Josh Triplett <josh@joshtriplett.org> | 2025-08-12 09:24:45 -0700 |
| commit | ba231db3f33381f417a94566f043738dcaf60fc3 (patch) | |
| tree | 31c48cd8d2538dd49614c40020d687b81c1d8724 /compiler/rustc_resolve/src/errors.rs | |
| parent | c81fcaca1c4f2e9b39fc8bc3d03a3f19b475d366 (diff) | |
| download | rust-ba231db3f33381f417a94566f043738dcaf60fc3.tar.gz rust-ba231db3f33381f417a94566f043738dcaf60fc3.zip | |
Detect and report macro kind mismatches early, and more precisely
This eliminates the case in `failed_to_match_macro` to check for a function-like invocation of a macro with no function-like rules. Instead, macro kind mismatches now result in an unresolved macro, and we detect this case in `unresolved_macro_suggestions`, which now carefully distinguishes between a kind mismatch and other errors. This also handles cases of forward-referenced attributes and cyclic attributes. Expand test coverage to include all of these cases.
Diffstat (limited to 'compiler/rustc_resolve/src/errors.rs')
| -rw-r--r-- | compiler/rustc_resolve/src/errors.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/rustc_resolve/src/errors.rs b/compiler/rustc_resolve/src/errors.rs index 2747ba135ed..a1d62ba7a68 100644 --- a/compiler/rustc_resolve/src/errors.rs +++ b/compiler/rustc_resolve/src/errors.rs @@ -672,6 +672,12 @@ pub(crate) struct MacroSuggMovePosition { #[derive(Subdiagnostic)] pub(crate) enum MacroRulesNot { + #[label(resolve_macro_cannot_use_as_fn_like)] + Func { + #[primary_span] + span: Span, + ident: Ident, + }, #[label(resolve_macro_cannot_use_as_attr)] Attr { #[primary_span] |
