diff --git a/compiler/rustc_span/src/hygiene.rs b/compiler/rustc_span/src/hygiene.rs index 5fae46d5fd8..86adfa7a18c 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