about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2024-03-22 12:18:08 +0000
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2024-04-08 15:00:03 +0000
commitea44ce059b9f10394a08e369cd856192984d0ca0 (patch)
treee47e162940598571b8264a8a69010dfa1d28be4f
parent0689a4f4f719418ee4fba74aa39d7920104343b5 (diff)
downloadrust-ea44ce059b9f10394a08e369cd856192984d0ca0.tar.gz
rust-ea44ce059b9f10394a08e369cd856192984d0ca0.zip
Make `Canonical` trait impls more robust
-rw-r--r--compiler/rustc_type_ir/src/canonical.rs25
1 files changed, 14 insertions, 11 deletions
diff --git a/compiler/rustc_type_ir/src/canonical.rs b/compiler/rustc_type_ir/src/canonical.rs
index ad18ef24984..3da74f9fe6e 100644
--- a/compiler/rustc_type_ir/src/canonical.rs
+++ b/compiler/rustc_type_ir/src/canonical.rs
@@ -63,28 +63,30 @@ impl<I: Interner, V: Eq> Eq for Canonical<I, V> {}
 
 impl<I: Interner, V: PartialEq> PartialEq for Canonical<I, V> {
     fn eq(&self, other: &Self) -> bool {
-        self.value == other.value
-            && self.max_universe == other.max_universe
-            && self.variables == other.variables
+        let Self { value, max_universe, variables } = self;
+        *value == other.value
+            && *max_universe == other.max_universe
+            && *variables == other.variables
     }
 }
 
 impl<I: Interner, V: fmt::Display> fmt::Display for Canonical<I, V> {
     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+        let Self { value, max_universe, variables } = self;
         write!(
             f,
-            "Canonical {{ value: {}, max_universe: {:?}, variables: {:?} }}",
-            self.value, self.max_universe, self.variables
+            "Canonical {{ value: {value}, max_universe: {max_universe:?}, variables: {variables:?} }}",
         )
     }
 }
 
 impl<I: Interner, V: fmt::Debug> fmt::Debug for Canonical<I, V> {
     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+        let Self { value, max_universe, variables } = self;
         f.debug_struct("Canonical")
-            .field("value", &self.value)
-            .field("max_universe", &self.max_universe)
-            .field("variables", &self.variables)
+            .field("value", &value)
+            .field("max_universe", &max_universe)
+            .field("variables", &variables)
             .finish()
     }
 }
@@ -109,9 +111,10 @@ where
     I::CanonicalVars: TypeVisitable<I>,
 {
     fn visit_with<F: TypeVisitor<I>>(&self, folder: &mut F) -> F::Result {
-        try_visit!(self.value.visit_with(folder));
-        try_visit!(self.max_universe.visit_with(folder));
-        self.variables.visit_with(folder)
+        let Self { value, max_universe, variables } = self;
+        try_visit!(value.visit_with(folder));
+        try_visit!(max_universe.visit_with(folder));
+        variables.visit_with(folder)
     }
 }