diff options
| author | bors <bors@rust-lang.org> | 2024-06-25 15:51:35 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-06-25 15:51:35 +0000 |
| commit | c290e9de32e8ba6a673ef125fde40eadd395d170 (patch) | |
| tree | 9d40c19ec778317c30ae2770bed4f993373ce60d /compiler/rustc_span/src | |
| parent | d929a42a664c026167800801b26d734db925314f (diff) | |
| parent | 0e73e7095ae7aa7ead69c4ba7ba002560ef118fa (diff) | |
| download | rust-c290e9de32e8ba6a673ef125fde40eadd395d170.tar.gz rust-c290e9de32e8ba6a673ef125fde40eadd395d170.zip | |
Auto merge of #126326 - eggyal:ununsafe-StableOrd, r=michaelwoerister
Un-unsafe the `StableOrd` trait Whilst incorrect implementations of this trait can cause miscompilation, they cannot cause memory unsafety in rustc. [Discussed on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp/topic/Policy.20of.20.60unsafe.60.20within.20the.20compiler). cc [MCP 533](https://github.com/rust-lang/compiler-team/issues/533), #105175, `@michaelwoerister` r? `@Nilstrieb`
Diffstat (limited to 'compiler/rustc_span/src')
| -rw-r--r-- | compiler/rustc_span/src/def_id.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler/rustc_span/src/def_id.rs b/compiler/rustc_span/src/def_id.rs index 1ac3a817bba..5456303b36f 100644 --- a/compiler/rustc_span/src/def_id.rs +++ b/compiler/rustc_span/src/def_id.rs @@ -120,9 +120,11 @@ impl Default for DefPathHash { } } -// Safety: `DefPathHash` sort order is not affected (de)serialization. -unsafe impl StableOrd for DefPathHash { +impl StableOrd for DefPathHash { const CAN_USE_UNSTABLE_SORT: bool = true; + + // `DefPathHash` sort order is not affected by (de)serialization. + const THIS_IMPLEMENTATION_HAS_BEEN_TRIPLE_CHECKED: () = (); } /// A [`StableCrateId`] is a 64-bit hash of a crate name, together with all |
