Skip to content

mbe: Clean up code with non-optional NonterminalKind #142657

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

tgross35
Copy link
Contributor

@tgross35 tgross35 commented Jun 18, 2025

Since rust-lang/rust#128425, the fragment specifier is unconditionally required in all
editions. This means NonTerminalKind no longer needs to be optional,
as we can reject this code during the expansion of macro_rules! rather
than handling it throughout the code. Do this cleanup here.

r? @petrochenkov

@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 Jun 18, 2025
@tgross35 tgross35 force-pushed the nonoptional-fragment-specifiers-cleanup branch from 91218e6 to 093240b Compare June 18, 2025 04:36
@tgross35
Copy link
Contributor Author

Can be reviewed by-commit, the first commit is just refactoring a heavily nested function.

@tgross35 tgross35 force-pushed the nonoptional-fragment-specifiers-cleanup branch from 093240b to 2cff3c2 Compare June 18, 2025 04:46
@tgross35 tgross35 force-pushed the nonoptional-fragment-specifiers-cleanup branch from 2cff3c2 to 1ddb1c4 Compare June 18, 2025 07:18
@petrochenkov petrochenkov 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 Jun 18, 2025
tgross35 added 3 commits June 24, 2025 04:37
Non-functional change to simplify control flow.
Since [1], the fragment specifier is unconditionally required in all
editions. This means `NonTerminalKind` no longer needs to be optional,
as we can reject this code during the expansion of `macro_rules!` rather
than handling it throughout the code. Do this cleanup here.

[1]: rust-lang#128425
`tt` should match more, so use this for both missing and invalid
fragment specifiers.

Also remove one unneeded instance of `String`.
@tgross35 tgross35 force-pushed the nonoptional-fragment-specifiers-cleanup branch from 1ddb1c4 to b9e9be3 Compare June 24, 2025 08:38
@tgross35 tgross35 changed the title macros: Clean up code with non-optional NonterminalKind mbe: Clean up code with non-optional NonterminalKind Jun 24, 2025
@tgross35
Copy link
Contributor Author

Switched to use TT as the fallback for invalid fragment specifiers as well, I think that's all.

@rustbot review

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jun 24, 2025
@petrochenkov
Copy link
Contributor

@bors r+

@bors
Copy link
Collaborator

bors commented Jun 24, 2025

📌 Commit cd5de49 has been approved by petrochenkov

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 24, 2025
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request Jun 24, 2025
…ifiers-cleanup, r=petrochenkov

mbe: Clean up code with non-optional `NonterminalKind`

Since [rust-lang#128425], the fragment specifier is unconditionally required in all
editions. This means `NonTerminalKind` no longer needs to be optional,
as we can reject this code during the expansion of `macro_rules!` rather
than handling it throughout the code. Do this cleanup here.

[rust-lang#128425]: rust-lang#128425
bors added a commit that referenced this pull request Jun 24, 2025
Rollup of 9 pull requests

Successful merges:

 - #142645 (Also emit suggestions for usages in the `non_upper_case_globals` lint)
 - #142657 (mbe: Clean up code with non-optional `NonterminalKind`)
 - #142799 (rustc_session: Add a structure for keeping both explicit and default sysroots)
 - #142805 (Emit a single error when importing a path with `_`)
 - #142882 (Lazy init diagnostics-only local_names in borrowck)
 - #142883 (Add impl_trait_in_bindings tests from #61773)
 - #142943 (Don't include current rustc version string in feature removed help)
 - #142965 ([RTE-497] Ignore `c-link-to-rust-va-list-fn` test on SGX platform)
 - #142972 (Add a missing mailmap entry)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 9f384c4 into rust-lang:master Jun 25, 2025
10 checks passed
@rustbot rustbot added this to the 1.90.0 milestone Jun 25, 2025
rust-timer added a commit that referenced this pull request Jun 25, 2025
Rollup merge of #142657 - tgross35:nonoptional-fragment-specifiers-cleanup, r=petrochenkov

mbe: Clean up code with non-optional `NonterminalKind`

Since [#128425], the fragment specifier is unconditionally required in all
editions. This means `NonTerminalKind` no longer needs to be optional,
as we can reject this code during the expansion of `macro_rules!` rather
than handling it throughout the code. Do this cleanup here.

[#128425]: #128425
@tgross35 tgross35 deleted the nonoptional-fragment-specifiers-cleanup branch June 25, 2025 01:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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.

4 participants