Skip to content

Commit 3702191

Browse files
committed
Fix Into conversion involving generic remote derive with getter
1 parent 7328b34 commit 3702191

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

serde_derive/src/de.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -712,8 +712,9 @@ fn deserialize_seq(
712712

713713
if params.has_getter {
714714
let this_type = &params.this_type;
715+
let (_, ty_generics, _) = params.generics.split_for_impl();
715716
result = quote! {
716-
_serde::__private::Into::<#this_type>::into(#result)
717+
_serde::__private::Into::<#this_type #ty_generics>::into(#result)
717718
};
718719
}
719720

@@ -856,8 +857,9 @@ fn deserialize_newtype_struct(
856857
let mut result = quote!(#type_path(__field0));
857858
if params.has_getter {
858859
let this_type = &params.this_type;
860+
let (_, ty_generics, _) = params.generics.split_for_impl();
859861
result = quote! {
860-
_serde::__private::Into::<#this_type>::into(#result)
862+
_serde::__private::Into::<#this_type #ty_generics>::into(#result)
861863
};
862864
}
863865

@@ -2629,8 +2631,9 @@ fn deserialize_map(
26292631
let mut result = quote!(#struct_path { #(#result),* });
26302632
if params.has_getter {
26312633
let this_type = &params.this_type;
2634+
let (_, ty_generics, _) = params.generics.split_for_impl();
26322635
result = quote! {
2633-
_serde::__private::Into::<#this_type>::into(#result)
2636+
_serde::__private::Into::<#this_type #ty_generics>::into(#result)
26342637
};
26352638
}
26362639

test_suite/tests/test_remote.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ mod remote {
8080
}
8181

8282
impl<T> StructGeneric<T> {
83+
#[allow(dead_code)]
8384
pub fn get_value(&self) -> &T {
8485
&self.value
8586
}

0 commit comments

Comments
 (0)