Skip to content

Remove StableHashContext impls - #154666

Merged
rust-bors[bot] merged 3 commits into
rust-lang:mainfrom
nnethercote:rm-StableHashContext-impls
Apr 2, 2026
Merged

Remove StableHashContext impls#154666
rust-bors[bot] merged 3 commits into
rust-lang:mainfrom
nnethercote:rm-StableHashContext-impls

Conversation

@nnethercote

Copy link
Copy Markdown
Contributor

Details in individual commits.

r? @petrochenkov

PR rust-lang#154634 recently renamed many type parameters that impl
`HashStableContext` as `Hcx`. It missed a few that are named `HirCtx`.
This commit renames them.
They're in multiple sections with no rhyme or reason.
`derive(HashStable_Generic)` generates impls like this:
```
impl<__CTX> HashStable<__CTX> for ExpnKind
where
__CTX: crate::HashStableContext
{
fn hash_stable(&self, hcx : &mut __CTX, __hasher: &mut StableHasher) {
...
}
}
```
This is used for crates that are upstream of `rustc_middle`.
The `crate::HashStableContext` bound means every crate that uses
`derive(HashStable_Generic)` must provide (or import) a trait
`HashStableContext` which `rustc_middle` then impls. In `rustc_span`
this trait is sensible, with three methods. In other crates, this trait
is empty, and there is the following trait hierarchy:
```
rustc_session::HashStableContext
| |
| rustc_hir::HashStableContext
| / \
rustc_ast::HashStableContext rustc_abi::HashStableContext
|
rustc_span::HashStableContext
```
All very strange and unnecessary. This commit changes
`derive(HashStable_Generic)` to use `rustc_span::HashStableContext`
instead of `crate::HashStableContext`. This eliminates the need for all
the empty `HashStableContext` traits and impls. Much better.
@rustbotrustbot 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 Apr 1, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

⚠️Warning⚠️

  • There are issue links (such as #123) in the commit messages of the following commits.
    Please move them to the PR description, to avoid spamming the issues with references to the commit, and so this bot can automatically canonicalize them to avoid issues with subtree.

@petrochenkov

Copy link
Copy Markdown
Contributor

@bors r+

@rust-bors

rust-borsBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 1a9a284 has been approved by petrochenkov

It is now in the queue for this repository.

@rust-borsrust-borsBot 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 Apr 1, 2026
chenyukang added a commit to chenyukang/rust that referenced this pull request Apr 1, 2026
…mpls, r=petrochenkov
Remove `StableHashContext` impls
Details in individual commits.
r? @petrochenkov
@chenyukangchenyukang mentioned this pull request Apr 1, 2026
Comment threadcompiler/rustc_abi/src/lib.rs
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Apr 1, 2026
…mpls, r=petrochenkov
Remove `StableHashContext` impls
Details in individual commits.
r? @petrochenkov
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Apr 1, 2026
…mpls, r=petrochenkov
Remove `StableHashContext` impls
Details in individual commits.
r? @petrochenkov
rust-borsBot pushed a commit that referenced this pull request Apr 1, 2026
Rollup of 7 pull requests
Successful merges:
- #153105 (Compute the result of a projection type with region errors)
- #153960 (Make `layout_of` cycles fatal errors)
- #154666 (Remove `StableHashContext` impls)
- #154669 (Introduce #[diagnostic::on_move] on `Arc`)
- #154442 (Export `derive` at the crate root: `core::derive` and `std::derive`)
- #154660 (Avoid creating async return opaques for foreign async fns)
- #154680 ([rustdoc] Replace `DocContext` with `TyCtxt` wherever possible)
jhpratt added a commit to jhpratt/rust that referenced this pull request Apr 2, 2026
…mpls, r=petrochenkov
Remove `StableHashContext` impls
Details in individual commits.
r? @petrochenkov
@jhprattjhpratt mentioned this pull request Apr 2, 2026
rust-borsBot pushed a commit that referenced this pull request Apr 2, 2026
Rollup of 11 pull requests
Successful merges:
- #153105 (Compute the result of a projection type with region errors)
- #153286 (various fixes for scalable vectors)
- #153960 (Make `layout_of` cycles fatal errors)
- #154527 (Emit pre-expansion feature gate warnings for negative impls and specialization)
- #154666 (Remove `StableHashContext` impls)
- #154669 (Introduce #[diagnostic::on_move] on `Arc`)
- #154442 (Export `derive` at the crate root: `core::derive` and `std::derive`)
- #154644 (rustdoc: seperate methods and associated functions in sidebar)
- #154660 (Avoid creating async return opaques for foreign async fns)
- #154671 (Add a test for a past ICE when calling a const fn of an unresolved type with the wrong number of args)
- #154680 ([rustdoc] Replace `DocContext` with `TyCtxt` wherever possible)
jhpratt added a commit to jhpratt/rust that referenced this pull request Apr 2, 2026
…mpls, r=petrochenkov
Remove `StableHashContext` impls
Details in individual commits.
r? @petrochenkov
@jhprattjhpratt mentioned this pull request Apr 2, 2026
rust-borsBot pushed a commit that referenced this pull request Apr 2, 2026
Rollup of 11 pull requests
Successful merges:
- #153105 (Compute the result of a projection type with region errors)
- #153960 (Make `layout_of` cycles fatal errors)
- #154527 (Emit pre-expansion feature gate warnings for negative impls and specialization)
- #154666 (Remove `StableHashContext` impls)
- #154669 (Introduce #[diagnostic::on_move] on `Arc`)
- #154213 (tidy-alphabetical: fix line number in error message)
- #154442 (Export `derive` at the crate root: `core::derive` and `std::derive`)
- #154644 (rustdoc: seperate methods and associated functions in sidebar)
- #154660 (Avoid creating async return opaques for foreign async fns)
- #154671 (Add a test for a past ICE when calling a const fn of an unresolved type with the wrong number of args)
- #154680 ([rustdoc] Replace `DocContext` with `TyCtxt` wherever possible)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Apr 2, 2026
…mpls, r=petrochenkov
Remove `StableHashContext` impls
Details in individual commits.
r? @petrochenkov
rust-borsBot pushed a commit that referenced this pull request Apr 2, 2026
…uwer
Rollup of 21 pull requests
Successful merges:
- #153105 (Compute the result of a projection type with region errors)
- #153286 (various fixes for scalable vectors)
- #153532 (Attributes containing rustc)
- #153960 (Make `layout_of` cycles fatal errors)
- #154527 (Emit pre-expansion feature gate warnings for negative impls and specialization)
- #154666 (Remove `StableHashContext` impls)
- #154669 (Introduce #[diagnostic::on_move] on `Arc`)
- #154710 (opaque_generic_const_args -> generic_const_args)
- #154712 (Revert "`-Znext-solver` Remove the forced ambiguity hack from search graph")
- #154713 (Stop compiling when we get resolving crate failure)
- #154213 (tidy-alphabetical: fix line number in error message)
- #154425 (Migrate transmute tests)
- #154442 (Export `derive` at the crate root: `core::derive` and `std::derive`)
- #154469 (mGCA: Lower spans for literal const args)
- #154578 (Rename `probe_ty_var` to `try_resolve_ty_var`)
- #154615 (Moving issues)
- #154644 (rustdoc: seperate methods and associated functions in sidebar)
- #154660 (Avoid creating async return opaques for foreign async fns)
- #154671 (Add a test for a past ICE when calling a const fn of an unresolved type with the wrong number of args)
- #154680 ([rustdoc] Replace `DocContext` with `TyCtxt` wherever possible)
- #154709 (Revert `Ty` type alias in `rustc_type_ir`)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Apr 2, 2026
…mpls, r=petrochenkov
Remove `StableHashContext` impls
Details in individual commits.
r? @petrochenkov
rust-borsBot pushed a commit that referenced this pull request Apr 2, 2026
…uwer
Rollup of 21 pull requests
Successful merges:
- #153105 (Compute the result of a projection type with region errors)
- #153286 (various fixes for scalable vectors)
- #153532 (Attributes containing rustc)
- #153960 (Make `layout_of` cycles fatal errors)
- #154527 (Emit pre-expansion feature gate warnings for negative impls and specialization)
- #154666 (Remove `StableHashContext` impls)
- #154669 (Introduce #[diagnostic::on_move] on `Arc`)
- #154710 (opaque_generic_const_args -> generic_const_args)
- #154712 (Revert "`-Znext-solver` Remove the forced ambiguity hack from search graph")
- #153614 (`FindParamInClause` handle edge-cases)
- #154213 (tidy-alphabetical: fix line number in error message)
- #154425 (Migrate transmute tests)
- #154442 (Export `derive` at the crate root: `core::derive` and `std::derive`)
- #154469 (mGCA: Lower spans for literal const args)
- #154578 (Rename `probe_ty_var` to `try_resolve_ty_var`)
- #154615 (Moving issues)
- #154644 (rustdoc: seperate methods and associated functions in sidebar)
- #154660 (Avoid creating async return opaques for foreign async fns)
- #154671 (Add a test for a past ICE when calling a const fn of an unresolved type with the wrong number of args)
- #154680 ([rustdoc] Replace `DocContext` with `TyCtxt` wherever possible)
- #154709 (Revert `Ty` type alias in `rustc_type_ir`)
rust-borsBot pushed a commit that referenced this pull request Apr 2, 2026
…uwer
Rollup of 20 pull requests
Successful merges:
- #153105 (Compute the result of a projection type with region errors)
- #153532 (Attributes containing rustc)
- #153960 (Make `layout_of` cycles fatal errors)
- #154527 (Emit pre-expansion feature gate warnings for negative impls and specialization)
- #154666 (Remove `StableHashContext` impls)
- #154669 (Introduce #[diagnostic::on_move] on `Arc`)
- #154710 (opaque_generic_const_args -> generic_const_args)
- #154712 (Revert "`-Znext-solver` Remove the forced ambiguity hack from search graph")
- #153614 (`FindParamInClause` handle edge-cases)
- #154213 (tidy-alphabetical: fix line number in error message)
- #154425 (Migrate transmute tests)
- #154442 (Export `derive` at the crate root: `core::derive` and `std::derive`)
- #154469 (mGCA: Lower spans for literal const args)
- #154578 (Rename `probe_ty_var` to `try_resolve_ty_var`)
- #154615 (Moving issues)
- #154644 (rustdoc: seperate methods and associated functions in sidebar)
- #154660 (Avoid creating async return opaques for foreign async fns)
- #154671 (Add a test for a past ICE when calling a const fn of an unresolved type with the wrong number of args)
- #154680 ([rustdoc] Replace `DocContext` with `TyCtxt` wherever possible)
- #154709 (Revert `Ty` type alias in `rustc_type_ir`)
@rust-bors
rust-borsBot merged commit c43a549 into rust-lang:mainApr 2, 2026
11 checks passed
rust-timer added a commit that referenced this pull request Apr 2, 2026
Rollup merge of #154666 - nnethercote:rm-StableHashContext-impls, r=petrochenkov
Remove `StableHashContext` impls
Details in individual commits.
r? @petrochenkov
@nnethercote
nnethercote deleted the rm-StableHashContext-impls branch April 3, 2026 01:45
github-actionsBot pushed a commit to rust-lang/miri that referenced this pull request Apr 3, 2026
…uwer
Rollup of 20 pull requests
Successful merges:
- rust-lang/rust#153105 (Compute the result of a projection type with region errors)
- rust-lang/rust#153532 (Attributes containing rustc)
- rust-lang/rust#153960 (Make `layout_of` cycles fatal errors)
- rust-lang/rust#154527 (Emit pre-expansion feature gate warnings for negative impls and specialization)
- rust-lang/rust#154666 (Remove `StableHashContext` impls)
- rust-lang/rust#154669 (Introduce #[diagnostic::on_move] on `Arc`)
- rust-lang/rust#154710 (opaque_generic_const_args -> generic_const_args)
- rust-lang/rust#154712 (Revert "`-Znext-solver` Remove the forced ambiguity hack from search graph")
- rust-lang/rust#153614 (`FindParamInClause` handle edge-cases)
- rust-lang/rust#154213 (tidy-alphabetical: fix line number in error message)
- rust-lang/rust#154425 (Migrate transmute tests)
- rust-lang/rust#154442 (Export `derive` at the crate root: `core::derive` and `std::derive`)
- rust-lang/rust#154469 (mGCA: Lower spans for literal const args)
- rust-lang/rust#154578 (Rename `probe_ty_var` to `try_resolve_ty_var`)
- rust-lang/rust#154615 (Moving issues)
- rust-lang/rust#154644 (rustdoc: seperate methods and associated functions in sidebar)
- rust-lang/rust#154660 (Avoid creating async return opaques for foreign async fns)
- rust-lang/rust#154671 (Add a test for a past ICE when calling a const fn of an unresolved type with the wrong number of args)
- rust-lang/rust#154680 ([rustdoc] Replace `DocContext` with `TyCtxt` wherever possible)
- rust-lang/rust#154709 (Revert `Ty` type alias in `rustc_type_ir`)
@cuvipercuviper added this to the 1.96.0 milestone Apr 30, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant 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

@nnethercote@rustbot@petrochenkov@bjorn3@cuviper