diff options
| author | Oli Scherer <git-spam-no-reply9815368754983@oli-obk.de> | 2024-03-22 12:18:08 +0000 |
|---|---|---|
| committer | Oli Scherer <git-spam-no-reply9815368754983@oli-obk.de> | 2024-04-08 15:00:03 +0000 |
| commit | ea44ce059b9f10394a08e369cd856192984d0ca0 (patch) | |
| tree | e47e162940598571b8264a8a69010dfa1d28be4f | |
| parent | 0689a4f4f719418ee4fba74aa39d7920104343b5 (diff) | |
| download | rust-ea44ce059b9f10394a08e369cd856192984d0ca0.tar.gz rust-ea44ce059b9f10394a08e369cd856192984d0ca0.zip | |
Make `Canonical` trait impls more robust
| -rw-r--r-- | compiler/rustc_type_ir/src/canonical.rs | 25 |
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) } } |
