about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-03-07 11:35:56 +0100
committerGitHub <noreply@github.com>2022-03-07 11:35:56 +0100
commit87df3f663d302431d745172f35f34997b05945d1 (patch)
tree39aef8d4b3bc08beee1e7dda68d9314c59b09763
parent2c98edaaa795d3b203052ec4d738d188598b47b4 (diff)
parent98fe2eb9aface6f97cae9612d55f6a32812165e4 (diff)
Rollup merge of #94614 - pierwill:localexpnid-noord, r=lcnr
Remove ordering traits from `rustc_span::hygiene::LocalExpnId`

Part of work on #90317.

Also adds a negative impl block as a form of documentation and a roadblock to regression.
-rw-r--r--compiler/rustc_span/src/hygiene.rs7
1 files changed, 7 insertions, 0 deletions
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