Skip to content

Greatly simplify the macros for flags that affect target modifiers#154501

Closed
Zalathar wants to merge 2 commits intorust-lang:mainfrom
Zalathar:flag-macros
Closed

Greatly simplify the macros for flags that affect target modifiers#154501
Zalathar wants to merge 2 commits intorust-lang:mainfrom
Zalathar:flag-macros

Conversation

@Zalathar
Copy link
Copy Markdown
Member

#133138 added a very complicated system of parser macros for dealing with command-line flags that affect target modifiers.

This PR takes advantage of the unstable ${ignore(..)} metavar to replace those parser macros with much simpler conditional expansions, while still producing the same functionality and API surface.

As suggested by #133138 (comment), it's possible that this functionality doesn't really need to involve macros at all. This PR doesn't go that far, but should make that change easier to perform as follow-up work.

@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 Mar 28, 2026
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented Mar 28, 2026

r? @dingxiangfei2009

rustbot has assigned @dingxiangfei2009.
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 69 candidates
  • Random selection from 12 candidates

This commit reformats the two main command-line-flag macros to be more regular
and readable.

Most of the changes are whitespace adjustments, but there are a few places
where braces or commas have been tweaked as well.
By using the unstable `${ignore(..)}` metavar to help perform conditional
expansion for a subset of list items, we can eliminate several complex helper
macros.
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented Mar 28, 2026

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 14, 2026

☔ The latest upstream changes (presumably #155267) made this pull request unmergeable. Please resolve the merge conflicts.

JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Apr 15, 2026
Reformat `top_level_options!` and `options!` macro declarations

These macros are already tricky, and having weird formatting doesn't help. Using a more regular style makes it easier to see where nesting begins and ends.

Extracted from rust-lang#154501 after the changes in rust-lang#149357 made rebasing very difficult.

There should be no change to compiler behaviour.
rust-timer added a commit that referenced this pull request Apr 15, 2026
Rollup merge of #155331 - Zalathar:options-fmt, r=petrochenkov

Reformat `top_level_options!` and `options!` macro declarations

These macros are already tricky, and having weird formatting doesn't help. Using a more regular style makes it easier to see where nesting begins and ends.

Extracted from #154501 after the changes in #149357 made rebasing very difficult.

There should be no change to compiler behaviour.
@Zalathar
Copy link
Copy Markdown
Member Author

Closing this as too difficult to rebase.

I'll consider a fresh implementation on top of #155331.

@Zalathar Zalathar closed this Apr 16, 2026
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Apr 16, 2026
@Zalathar Zalathar deleted the flag-macros branch April 16, 2026 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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.

3 participants