Skip to content

rustc_builtin_macros: rename bench parameter to avoid collisions with user-defined function names#148279

Merged
bors merged 1 commit into
rust-lang:masterfrom
IntegralPilot:master
Nov 9, 2025
Merged

rustc_builtin_macros: rename bench parameter to avoid collisions with user-defined function names#148279
bors merged 1 commit into
rust-lang:masterfrom
IntegralPilot:master

Conversation

@IntegralPilot

@IntegralPilot IntegralPilot commented Oct 30, 2025

Copy link
Copy Markdown
Contributor

Resolves #148275 by preventing name collisions in the #[bench] macro.

Previously, a user-defined function named "b" could not be benchmarked because
the macro-generated lambda identity collided with the same name. We now generate
the lambda ident as __bench_<function_name>, ensuring it is always distinct
from the user’s function.

Because the prefix is applied recursively (e.g. benchmarking __bench_b
produces a lambda ident __bench___bench_b), there is no possible function
name that can equal its corresponding lambda ident. This guarantees that
the user can safely bench a function of any valid name without risk of
identifier collision.

@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 Oct 30, 2025
@rustbot

rustbot commented Oct 30, 2025

Copy link
Copy Markdown
Collaborator

r? @jackh726

rustbot has assigned @jackh726.
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

@rust-log-analyzer

This comment has been minimized.

Comment thread compiler/rustc_builtin_macros/src/test.rs Outdated

@hkBst hkBst left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM except for a small style nit as mentioned above.

View changes since this review

Comment thread compiler/rustc_builtin_macros/src/test.rs Outdated
@oli-obk

oli-obk commented Oct 31, 2025

Copy link
Copy Markdown
Contributor

r? hkBst

@rustbot

rustbot commented Oct 31, 2025

Copy link
Copy Markdown
Collaborator

Failed to set assignee to hkBst: invalid assignee

Note: Only org members with at least the repository "read" role, users with write permissions, or people who have commented on the PR may be assigned.

@oli-obk

oli-obk commented Oct 31, 2025

Copy link
Copy Markdown
Contributor

oh heh

@bors delegate=hkBst

@bors

bors commented Oct 31, 2025

Copy link
Copy Markdown
Collaborator

✌️ @hkBst, you can now approve this pull request!

If @oli-obk told you to "r=me" after making some further change, please make that change, then do @bors r=@oli-obk

@jackh726 jackh726 assigned oli-obk and unassigned jackh726 Nov 3, 2025
Comment thread compiler/rustc_builtin_macros/src/test.rs Outdated
@IntegralPilot IntegralPilot requested a review from hkBst November 5, 2025 11:41
Comment thread compiler/rustc_builtin_macros/src/test.rs Outdated
@hkBst

hkBst commented Nov 7, 2025

Copy link
Copy Markdown
Member

Looks fine now, but please squash your commits.

@rustbot

rustbot commented Nov 8, 2025

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different master 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.

@IntegralPilot

Copy link
Copy Markdown
Contributor Author

@hkBst, just squashed the commits! Thanks again for your review & help :)

@hkBst

hkBst commented Nov 8, 2025

Copy link
Copy Markdown
Member

@bors r=@hkBst

@bors

bors commented Nov 8, 2025

Copy link
Copy Markdown
Collaborator

📌 Commit 67802e0 has been approved by hkBst

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 Nov 8, 2025
@bors bors merged commit 645aa92 into rust-lang:master Nov 9, 2025
@rustbot rustbot added this to the 1.93.0 milestone Nov 9, 2025
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.

Can't #[bench] a function named b

7 participants