From 0d5b6c180c8383feea6a213afa667af333623575 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Tue, 27 Oct 2020 19:18:27 -0700 Subject: [PATCH] Resolve ptr_eq clippy lint error: use `std::ptr::eq` when comparing raw pointers --> serde_derive/src/de.rs:362:12 | 362 | if field as *const Field == transparent_field as *const Field { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::ptr::eq(field, transparent_field)` | note: the lint level is defined here --> serde_derive/src/lib.rs:18:9 | 18 | #![deny(clippy::all, clippy::pedantic)] | ^^^^^^^^^^^ = note: `#[deny(clippy::ptr_eq)]` implied by `#[deny(clippy::all)]` = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_eq --- serde_derive/src/de.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/serde_derive/src/de.rs b/serde_derive/src/de.rs index 1f5733a6..55ab808b 100644 --- a/serde_derive/src/de.rs +++ b/serde_derive/src/de.rs @@ -12,6 +12,7 @@ use internals::{attr, ungroup, Ctxt, Derive}; use pretend; use std::collections::BTreeSet; +use std::ptr; pub fn expand_derive_deserialize(input: &syn::DeriveInput) -> Result> { let ctxt = Ctxt::new(); @@ -359,7 +360,7 @@ fn deserialize_transparent(cont: &Container, params: &Parameters) -> Fragment { let assign = fields.iter().map(|field| { let member = &field.member; - if field as *const Field == transparent_field as *const Field { + if ptr::eq(field, transparent_field) { quote!(#member: __transparent) } else { let value = match field.attrs.default() {