From 24d815d66ecb4b408e3f340c5321bcdac8f7202e Mon Sep 17 00:00:00 2001 From: Martin Molzer Date: Tue, 12 Mar 2024 11:41:35 +0100 Subject: [PATCH] fixup: new lints from clippy --- packages/yew/src/callback.rs | 4 +++- packages/yew/src/dom_bundle/utils.rs | 1 - packages/yew/src/functional/hooks/use_reducer.rs | 5 ++++- packages/yew/src/suspense/suspension.rs | 2 +- packages/yew/src/virtual_dom/listeners.rs | 8 +++++--- 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/yew/src/callback.rs b/packages/yew/src/callback.rs index 1ba61d9de74..6860e5cd50f 100644 --- a/packages/yew/src/callback.rs +++ b/packages/yew/src/callback.rs @@ -25,7 +25,9 @@ macro_rules! generate_callback_impls { } } - #[allow(clippy::vtable_address_comparisons)] + // We are okay with comparisons from different compilation units to result in false + // not-equal results. This should only lead in the worst-case to some unneeded re-renders. + #[allow(ambiguous_wide_pointer_comparisons)] impl PartialEq for $callback { fn eq(&self, other: &$callback) -> bool { let ($callback { cb }, $callback { cb: rhs_cb }) = (self, other); diff --git a/packages/yew/src/dom_bundle/utils.rs b/packages/yew/src/dom_bundle/utils.rs index 6f81e6d4a68..f4227fd13a7 100644 --- a/packages/yew/src/dom_bundle/utils.rs +++ b/packages/yew/src/dom_bundle/utils.rs @@ -50,7 +50,6 @@ mod feat_hydration { #[cfg(feature = "hydration")] pub(super) use feat_hydration::*; - #[cfg(test)] // this is needed because clippy doesn't like the import not being used #[allow(unused_imports)] diff --git a/packages/yew/src/functional/hooks/use_reducer.rs b/packages/yew/src/functional/hooks/use_reducer.rs index 63c69e1a5d6..03280f98268 100644 --- a/packages/yew/src/functional/hooks/use_reducer.rs +++ b/packages/yew/src/functional/hooks/use_reducer.rs @@ -130,7 +130,10 @@ where T: Reducible, { fn eq(&self, rhs: &Self) -> bool { - #[allow(clippy::vtable_address_comparisons)] + // We are okay with comparisons from different compilation units to result in false + // not-equal results. This should only lead in the worst-case to some unneeded + // re-renders. + #[allow(ambiguous_wide_pointer_comparisons)] Rc::ptr_eq(&self.dispatch, &rhs.dispatch) } } diff --git a/packages/yew/src/suspense/suspension.rs b/packages/yew/src/suspense/suspension.rs index 23663f974ff..ac50f7885e0 100644 --- a/packages/yew/src/suspense/suspension.rs +++ b/packages/yew/src/suspense/suspension.rs @@ -105,7 +105,7 @@ impl Future for Suspension { let waker = cx.waker().clone(); self.listen(Callback::from(move |_| { - waker.clone().wake(); + waker.wake_by_ref(); })); Poll::Pending diff --git a/packages/yew/src/virtual_dom/listeners.rs b/packages/yew/src/virtual_dom/listeners.rs index f96dead2f39..87774ad3ebb 100644 --- a/packages/yew/src/virtual_dom/listeners.rs +++ b/packages/yew/src/virtual_dom/listeners.rs @@ -187,9 +187,11 @@ impl PartialEq for Listeners { lhs.iter() .zip(rhs.iter()) .all(|(lhs, rhs)| match (lhs, rhs) { - (Some(lhs), Some(rhs)) => - { - #[allow(clippy::vtable_address_comparisons)] + (Some(lhs), Some(rhs)) => { + // We are okay with comparisons from different compilation units to + // result in false not-equal results. This should only lead in the + // worst-case to some unneeded re-renders. + #[allow(ambiguous_wide_pointer_comparisons)] Rc::ptr_eq(lhs, rhs) } (None, None) => true,