diff --git a/packages/yew/src/callback.rs b/packages/yew/src/callback.rs index 1ba61d9de74..55a8b0e984f 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/functional/hooks/use_reducer.rs b/packages/yew/src/functional/hooks/use_reducer.rs index 63c69e1a5d6..92fa6f77d50 100644 --- a/packages/yew/src/functional/hooks/use_reducer.rs +++ b/packages/yew/src/functional/hooks/use_reducer.rs @@ -130,7 +130,9 @@ 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..b389323642b 100644 --- a/packages/yew/src/virtual_dom/listeners.rs +++ b/packages/yew/src/virtual_dom/listeners.rs @@ -187,9 +187,10 @@ 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,