close
Skip to content

macros: report unbound metavariables directly#156155

Open
SynapLink wants to merge 1 commit into
rust-lang:mainfrom
SynapLink:fix/unbound-macro-metavar-diagnostic
Open

macros: report unbound metavariables directly#156155
SynapLink wants to merge 1 commit into
rust-lang:mainfrom
SynapLink:fix/unbound-macro-metavar-diagnostic

Conversation

@SynapLink
Copy link
Copy Markdown
Contributor

@SynapLink SynapLink commented May 4, 2026

Fixes #95943.

When a macro expansion contains an unbound $ident, report it as a missing macro parameter instead of keeping the generic fragment parser error as the primary diagnostic.

This keeps the existing typo suggestions and available-metavariable notes.

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels May 4, 2026
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented May 4, 2026

r? @BoxyUwU

rustbot has assigned @BoxyUwU.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: compiler
  • compiler expanded to 73 candidates
  • Random selection from 21 candidates

Copy link
Copy Markdown
Contributor

@anoshyn anoshyn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good overall. One edge case I noticed: the primary diagnostic seems to be updated in the no-suggestion path, but typo / other-matcher paths may still keep expected expression, found '$' as the headline while only adding the metavariable-specific help/note.

It may be worth moving the primary message/span rewrite to immediately after detecting $ident, before branching into typo / other-matcher / available-name suggestions, so all unbound metavariable cases consistently report cannot find macro parameter ....

Also, since this PR is actively addressing #95943, consider claiming the issue with @rustbot claim.

Approve with that as a non-blocking review comment.

@cjgillot cjgillot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Give a better error when using an undeclared macro variable

5 participants