Remove StableHashContext impls#154666
Open
nnethercote wants to merge 3 commits intorust-lang:mainfrom
Open
Conversation
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.
Collaborator
|
Contributor
|
@bors r+ |
Contributor
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
bjorn3
reviewed
Apr 1, 2026
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-bors bot
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
rust-bors bot
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
rust-bors bot
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-bors bot
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-bors bot
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`)
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-bors bot
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`)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Details in individual commits.
r? @petrochenkov