diff --git a/serde_derive/src/de.rs b/serde_derive/src/de.rs index 9e4e6804..c10083d6 100644 --- a/serde_derive/src/de.rs +++ b/serde_derive/src/de.rs @@ -35,7 +35,7 @@ pub fn expand_derive_deserialize(input: &mut syn::DeriveInput) -> syn::Result ( DeImplGenerics, @@ -664,7 +664,8 @@ fn wrap_deserialize_with( deserialize_with: &syn::ExprPath, ) -> (TokenStream, TokenStream) { let this_type = ¶ms.this_type; - let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = params.generics(); + let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = + params.generics_with_de_lifetime(); let delife = params.borrowed.de_lifetime(); let deserializer_var = quote!(__deserializer); diff --git a/serde_derive/src/de/enum_adjacently.rs b/serde_derive/src/de/enum_adjacently.rs index 59239351..1ad038a2 100644 --- a/serde_derive/src/de/enum_adjacently.rs +++ b/serde_derive/src/de/enum_adjacently.rs @@ -25,7 +25,8 @@ pub(super) fn generate_body( ) -> Fragment { let this_type = ¶ms.this_type; let this_value = ¶ms.this_value; - let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = params.generics(); + let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = + params.generics_with_de_lifetime(); let delife = params.borrowed.de_lifetime(); let (variants_stmt, variant_visitor) = enum_::prepare_enum_variant_enum(variants); diff --git a/serde_derive/src/de/enum_externally.rs b/serde_derive/src/de/enum_externally.rs index 75f329ec..d4c87912 100644 --- a/serde_derive/src/de/enum_externally.rs +++ b/serde_derive/src/de/enum_externally.rs @@ -26,7 +26,8 @@ pub(super) fn generate_body( cattrs: &attr::Container, ) -> Fragment { let this_type = ¶ms.this_type; - let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = params.generics(); + let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = + params.generics_with_de_lifetime(); let delife = params.borrowed.de_lifetime(); let type_name = cattrs.name().deserialize_name(); diff --git a/serde_derive/src/de/identifier.rs b/serde_derive/src/de/identifier.rs index d90903bf..18a51fe7 100644 --- a/serde_derive/src/de/identifier.rs +++ b/serde_derive/src/de/identifier.rs @@ -84,7 +84,8 @@ pub(super) fn generate_body( Some(fields) }; - let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = params.generics(); + let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = + params.generics_with_de_lifetime(); let delife = params.borrowed.de_lifetime(); let visitor_impl = Stmts(deserialize_identifier( &this_value, diff --git a/serde_derive/src/de/struct_.rs b/serde_derive/src/de/struct_.rs index 09e13d80..b22a099c 100644 --- a/serde_derive/src/de/struct_.rs +++ b/serde_derive/src/de/struct_.rs @@ -22,7 +22,8 @@ pub(super) fn generate_body( ) -> Fragment { let this_type = ¶ms.this_type; let this_value = ¶ms.this_value; - let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = params.generics(); + let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = + params.generics_with_de_lifetime(); let delife = params.borrowed.de_lifetime(); // If there are getters (implying private fields), construct the local type @@ -431,7 +432,8 @@ pub(super) fn generate_body_in_place( } let this_type = ¶ms.this_type; - let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = params.generics(); + let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = + params.generics_with_de_lifetime(); let delife = params.borrowed.de_lifetime(); let expecting = format!("struct {}", params.type_name()); @@ -633,7 +635,7 @@ fn deserialize_map_in_place( }); let this_type = ¶ms.this_type; - let (_, _, ty_generics, _) = params.generics(); + let (_, _, ty_generics, _) = params.generics_with_de_lifetime(); let let_default = match cattrs.default() { attr::Default::Default => Some(quote!( diff --git a/serde_derive/src/de/tuple.rs b/serde_derive/src/de/tuple.rs index 7b96ae02..9db0b373 100644 --- a/serde_derive/src/de/tuple.rs +++ b/serde_derive/src/de/tuple.rs @@ -28,7 +28,8 @@ pub(super) fn generate_body( let this_type = ¶ms.this_type; let this_value = ¶ms.this_value; - let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = params.generics(); + let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = + params.generics_with_de_lifetime(); let delife = params.borrowed.de_lifetime(); // If there are getters (implying private fields), construct the local type @@ -198,7 +199,8 @@ pub(super) fn generate_body_in_place( .count(); let this_type = ¶ms.this_type; - let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = params.generics(); + let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = + params.generics_with_de_lifetime(); let delife = params.borrowed.de_lifetime(); let expecting = format!("tuple struct {}", params.type_name()); diff --git a/serde_derive/src/de/unit.rs b/serde_derive/src/de/unit.rs index 34f90808..1eef24c4 100644 --- a/serde_derive/src/de/unit.rs +++ b/serde_derive/src/de/unit.rs @@ -9,7 +9,8 @@ pub(super) fn generate_body(params: &Parameters, cattrs: &attr::Container) -> Fr let this_type = ¶ms.this_type; let this_value = ¶ms.this_value; let type_name = cattrs.name().deserialize_name(); - let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = params.generics(); + let (de_impl_generics, de_ty_generics, ty_generics, where_clause) = + params.generics_with_de_lifetime(); let delife = params.borrowed.de_lifetime(); let expecting = format!("unit struct {}", params.type_name());