diff options
| author | bors <bors@rust-lang.org> | 2025-02-18 18:04:32 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2025-02-18 18:04:32 +0000 |
| commit | 827a0d638dabc9a22c56f9c37a557568f86ac76c (patch) | |
| tree | d67fdcd4af7e845b5b109fcdaeea7a8b19e0df38 /compiler/rustc_resolve/src/lib.rs | |
| parent | 3b022d8ceea570db9730be34d964f0cc663a567f (diff) | |
| parent | 3ebe11b2e8fdba543127f63c74982ab604c6034b (diff) | |
| download | rust-827a0d638dabc9a22c56f9c37a557568f86ac76c.tar.gz rust-827a0d638dabc9a22c56f9c37a557568f86ac76c.zip | |
Auto merge of #137231 - Urgau:rollup-heiq934, r=Urgau
Rollup of 9 pull requests Successful merges: - #136750 (Make ub_check message clear that it's not an assert) - #137151 (Install more signal stack trace handlers) - #137167 (tests: Also gate `f16::erfc()` doctest with `reliable_f16_math` cfg) - #137195 (cg_clif: use exclusively ABI alignment) - #137202 (Enforce T: Hash for Interned<...>) - #137205 (Remove `std::os::wasi::fs::FileExt::tell`) - #137211 (don't ICE for alias-relate goals with error term) - #137214 (add last std diagnostic items for clippy) - #137221 (Remove scrutinee_hir_id from ExprKind::Match) r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_resolve/src/lib.rs')
| -rw-r--r-- | compiler/rustc_resolve/src/lib.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/compiler/rustc_resolve/src/lib.rs b/compiler/rustc_resolve/src/lib.rs index 90191b7776f..5bc37e09f08 100644 --- a/compiler/rustc_resolve/src/lib.rs +++ b/compiler/rustc_resolve/src/lib.rs @@ -589,6 +589,19 @@ struct ModuleData<'ra> { #[rustc_pass_by_value] struct Module<'ra>(Interned<'ra, ModuleData<'ra>>); +// Allows us to use Interned without actually enforcing (via Hash/PartialEq/...) uniqueness of the +// contained data. +// FIXME: We may wish to actually have at least debug-level assertions that Interned's guarantees +// are upheld. +impl std::hash::Hash for ModuleData<'_> { + fn hash<H>(&self, _: &mut H) + where + H: std::hash::Hasher, + { + unreachable!() + } +} + impl<'ra> ModuleData<'ra> { fn new( parent: Option<Module<'ra>>, @@ -739,6 +752,19 @@ struct NameBindingData<'ra> { /// so we can use referential equality to compare them. type NameBinding<'ra> = Interned<'ra, NameBindingData<'ra>>; +// Allows us to use Interned without actually enforcing (via Hash/PartialEq/...) uniqueness of the +// contained data. +// FIXME: We may wish to actually have at least debug-level assertions that Interned's guarantees +// are upheld. +impl std::hash::Hash for NameBindingData<'_> { + fn hash<H>(&self, _: &mut H) + where + H: std::hash::Hasher, + { + unreachable!() + } +} + trait ToNameBinding<'ra> { fn to_name_binding(self, arenas: &'ra ResolverArenas<'ra>) -> NameBinding<'ra>; } |
