From 98fe2eb9aface6f97cae9612d55f6a32812165e4 Mon Sep 17 00:00:00 2001 From: pierwill Date: Fri, 4 Mar 2022 10:52:05 -0600 Subject: [PATCH] Remove ordering traits from `rustc_span::hygiene::LocalExpnId` --- compiler/rustc_span/src/hygiene.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/compiler/rustc_span/src/hygiene.rs b/compiler/rustc_span/src/hygiene.rs index 5fae46d5fd89b..86adfa7a18cdf 100644 --- a/compiler/rustc_span/src/hygiene.rs +++ b/compiler/rustc_span/src/hygiene.rs @@ -85,10 +85,17 @@ rustc_index::newtype_index! { /// A unique ID associated with a macro invocation and expansion. pub struct LocalExpnId { ENCODABLE = custom + ORD_IMPL = custom DEBUG_FORMAT = "expn{}" } } +// To ensure correctness of incremental compilation, +// `LocalExpnId` must not implement `Ord` or `PartialOrd`. +// See https://github.com/rust-lang/rust/issues/90317. +impl !Ord for LocalExpnId {} +impl !PartialOrd for LocalExpnId {} + /// Assert that the provided `HashStableContext` is configured with the 'default' /// `HashingControls`. We should always have bailed out before getting to here /// with a non-default mode. With this check in place, we can avoid the need