about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2025-03-14 13:54:17 +0100
committerLukas Wirth <lukastw97@gmail.com>2025-03-16 16:06:06 +0100
commita68616f98dc5b9c1ce4d56477d152065d8d05cbe (patch)
tree94a5b5a661969f2758eb9b31eb94b05b6554ac5f
parent98f346f46a5405cdd96e7fb497c8623588a69401 (diff)
downloadrust-a68616f98dc5b9c1ce4d56477d152065d8d05cbe.tar.gz
rust-a68616f98dc5b9c1ce4d56477d152065d8d05cbe.zip
internal: `Symbol` is not `PartialOrd`
-rw-r--r--src/tools/rust-analyzer/crates/hir-expand/src/proc_macro.rs6
-rw-r--r--src/tools/rust-analyzer/crates/intern/src/symbol.rs14
2 files changed, 5 insertions, 15 deletions
diff --git a/src/tools/rust-analyzer/crates/hir-expand/src/proc_macro.rs b/src/tools/rust-analyzer/crates/hir-expand/src/proc_macro.rs
index 9dcd5ef1ef0..ceb6972a50c 100644
--- a/src/tools/rust-analyzer/crates/hir-expand/src/proc_macro.rs
+++ b/src/tools/rust-analyzer/crates/hir-expand/src/proc_macro.rs
@@ -78,8 +78,10 @@ impl ProcMacrosBuilder {
         if let Ok(proc_macros) = &mut proc_macro {
             // Sort proc macros to improve incrementality when only their order has changed (ideally the build system
             // will not change their order, but just to be sure).
-            proc_macros
-                .sort_unstable_by_key(|proc_macro| (proc_macro.name.clone(), proc_macro.kind));
+            proc_macros.sort_unstable_by(|proc_macro, proc_macro2| {
+                (proc_macro.name.as_str(), proc_macro.kind)
+                    .cmp(&(proc_macro2.name.as_str(), proc_macro2.kind))
+            });
         }
         self.0.insert(
             proc_macros_crate,
diff --git a/src/tools/rust-analyzer/crates/intern/src/symbol.rs b/src/tools/rust-analyzer/crates/intern/src/symbol.rs
index f02fb6d14f1..22490e416a3 100644
--- a/src/tools/rust-analyzer/crates/intern/src/symbol.rs
+++ b/src/tools/rust-analyzer/crates/intern/src/symbol.rs
@@ -42,18 +42,6 @@ struct TaggedArcPtr {
 unsafe impl Send for TaggedArcPtr {}
 unsafe impl Sync for TaggedArcPtr {}
 
-impl Ord for TaggedArcPtr {
-    fn cmp(&self, other: &Self) -> std::cmp::Ordering {
-        self.as_str().cmp(other.as_str())
-    }
-}
-
-impl PartialOrd for TaggedArcPtr {
-    fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
-        Some(self.cmp(other))
-    }
-}
-
 impl TaggedArcPtr {
     const BOOL_BITS: usize = true as usize;
 
@@ -125,7 +113,7 @@ impl TaggedArcPtr {
     }
 }
 
-#[derive(PartialEq, Eq, Hash, PartialOrd, Ord)]
+#[derive(PartialEq, Eq, Hash)]
 pub struct Symbol {
     repr: TaggedArcPtr,
 }