diff --git a/serde_derive/src/de.rs b/serde_derive/src/de.rs index ef7a2dee2..a703adaf7 100644 --- a/serde_derive/src/de.rs +++ b/serde_derive/src/de.rs @@ -712,8 +712,9 @@ fn deserialize_seq( if params.has_getter { let this_type = ¶ms.this_type; + let (_, ty_generics, _) = params.generics.split_for_impl(); result = quote! { - _serde::__private::Into::<#this_type>::into(#result) + _serde::__private::Into::<#this_type #ty_generics>::into(#result) }; } @@ -856,8 +857,9 @@ fn deserialize_newtype_struct( let mut result = quote!(#type_path(__field0)); if params.has_getter { let this_type = ¶ms.this_type; + let (_, ty_generics, _) = params.generics.split_for_impl(); result = quote! { - _serde::__private::Into::<#this_type>::into(#result) + _serde::__private::Into::<#this_type #ty_generics>::into(#result) }; } @@ -2629,8 +2631,9 @@ fn deserialize_map( let mut result = quote!(#struct_path { #(#result),* }); if params.has_getter { let this_type = ¶ms.this_type; + let (_, ty_generics, _) = params.generics.split_for_impl(); result = quote! { - _serde::__private::Into::<#this_type>::into(#result) + _serde::__private::Into::<#this_type #ty_generics>::into(#result) }; } diff --git a/test_suite/tests/test_remote.rs b/test_suite/tests/test_remote.rs index a334f7ac2..d997f0f01 100644 --- a/test_suite/tests/test_remote.rs +++ b/test_suite/tests/test_remote.rs @@ -80,6 +80,7 @@ mod remote { } impl StructGeneric { + #[allow(dead_code)] pub fn get_value(&self) -> &T { &self.value }