Skip to content

Conversation

@Zalathar
Copy link
Member

@Zalathar Zalathar commented Feb 1, 2026

I'm a little bit fuzzy on precisely why anonymous queries are treated as having FingerprintStyle::Opaque, but I'm pretty confident that baking this special case into the query vtable is equivalent to the current behaviour, while being marginally more efficient.

(I believe this special case comes from anonymous queries not having a fingerprint in the first place, so “opaque” is just there to signal that reconstructing a key is impossible.)

@rustbot rustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) 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 Feb 1, 2026
@rustbot
Copy link
Collaborator

rustbot commented Feb 1, 2026

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

@rustbot
Copy link
Collaborator

rustbot commented Feb 1, 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.

@Zalathar
Copy link
Member Author

Zalathar commented Feb 3, 2026

Assuming that approval means r+.

r? petrochenkov
@bors r=petrochenkov

@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 3, 2026

📌 Commit b4bf57b has been approved by petrochenkov

It is now in the queue for this repository.

🌲 The tree is currently closed for pull requests below priority 1000. This pull request will be tested once the tree is reopened.

@rust-bors rust-bors bot 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 Feb 3, 2026
rust-bors bot pushed a commit that referenced this pull request Feb 3, 2026
Rollup of 11 pull requests

Successful merges:

 - #151378 (Codegen tests for Arm Cortex-R82)
 - #151936 (Move the `fingerprint_style` special case into `DepKindVTable` creation)
 - #152018 (Move bigint helper tracking issues)
 - #151958 (Add codegen test for SLP vectorization)
 - #151974 (Update documentation for `Result::ok()`)
 - #151975 (Work around rustfmt giving up on a large expression)
 - #151990 (Fix missing unused_variables lint when using a match guard)
 - #151995 (stabilize ptr_as_ref_unchecked)
 - #151999 (attribute parsing: pass recovery mode to Parser.)
 - #152009 (Port rustc_preserve_ub_checks to attr parser)
 - #152022 (rustc-dev-guide subtree update)

Failed merges:

 - #151968 (Remove `HasDepContext` by merging it into `QueryContext`)
@petrochenkov
Copy link
Contributor

Assuming that approval means r+.

It usually does not, but in this case r=me indeed.
It was mostly a signal that I looked at this, and I'm ok with this being assigned to me.

@rust-bors rust-bors bot merged commit 91a2ec3 into rust-lang:main Feb 3, 2026
11 checks passed
@rustbot rustbot added this to the 1.95.0 milestone Feb 3, 2026
rust-timer added a commit that referenced this pull request Feb 3, 2026
Rollup merge of #151936 - Zalathar:fingerprint-style, r=petrochenkov

Move the `fingerprint_style` special case into `DepKindVTable` creation

I'm a little bit fuzzy on *precisely* why anonymous queries are treated as having `FingerprintStyle::Opaque`, but I'm pretty confident that baking this special case into the query vtable is equivalent to the current behaviour, while being marginally more efficient.

(I believe this special case comes from anonymous queries not having a fingerprint in the first place, so “opaque” is just there to signal that reconstructing a key is impossible.)
/// Query key was `()` or equivalent, so fingerprint is just zero.
Unit,
/// Some opaque hash.
/// The fingerprint is an opaque hash, and a key cannot be reconstructed from it.
Copy link
Contributor

Choose a reason for hiding this comment

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

Note that in the anon case the fingerprint isn't even a hash of the key.

@Zalathar Zalathar deleted the fingerprint-style branch February 3, 2026 08:12
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Feb 4, 2026
Rollup of 11 pull requests

Successful merges:

 - rust-lang/rust#151378 (Codegen tests for Arm Cortex-R82)
 - rust-lang/rust#151936 (Move the `fingerprint_style` special case into `DepKindVTable` creation)
 - rust-lang/rust#152018 (Move bigint helper tracking issues)
 - rust-lang/rust#151958 (Add codegen test for SLP vectorization)
 - rust-lang/rust#151974 (Update documentation for `Result::ok()`)
 - rust-lang/rust#151975 (Work around rustfmt giving up on a large expression)
 - rust-lang/rust#151990 (Fix missing unused_variables lint when using a match guard)
 - rust-lang/rust#151995 (stabilize ptr_as_ref_unchecked)
 - rust-lang/rust#151999 (attribute parsing: pass recovery mode to Parser.)
 - rust-lang/rust#152009 (Port rustc_preserve_ub_checks to attr parser)
 - rust-lang/rust#152022 (rustc-dev-guide subtree update)

Failed merges:

 - rust-lang/rust#151968 (Remove `HasDepContext` by merging it into `QueryContext`)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) 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.

5 participants