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() {