diff --git a/derive/src/derive_enum.rs b/derive/src/derive_enum.rs index 8c8daf1..b0edad6 100644 --- a/derive/src/derive_enum.rs +++ b/derive/src/derive_enum.rs @@ -39,9 +39,9 @@ impl DeriveEnum { Ok(()) })? .generate_fn("encode") - .with_generic_deps("E", [format!("{}::enc::Encoder", crate_name)]) + .with_generic_deps("__E", [format!("{}::enc::Encoder", crate_name)]) .with_self_arg(FnSelfArg::RefSelf) - .with_arg("encoder", "&mut E") + .with_arg("encoder", "&mut __E") .with_return_type(format!( "core::result::Result<(), {}::error::EncodeError>", crate_name @@ -237,8 +237,8 @@ impl DeriveEnum { Ok(()) })? .generate_fn("decode") - .with_generic_deps("D", [format!("{}::de::Decoder", crate_name)]) - .with_arg("decoder", "&mut D") + .with_generic_deps("__D", [format!("{}::de::Decoder", crate_name)]) + .with_arg("decoder", "&mut __D") .with_return_type(format!("core::result::Result", crate_name)) .body(|fn_builder| { if self.variants.is_empty() { @@ -332,8 +332,8 @@ impl DeriveEnum { Ok(()) })? .generate_fn("borrow_decode") - .with_generic_deps("D", [format!("{}::de::BorrowDecoder<'__de>", crate_name)]) - .with_arg("decoder", "&mut D") + .with_generic_deps("__D", [format!("{}::de::BorrowDecoder<'__de>", crate_name)]) + .with_arg("decoder", "&mut __D") .with_return_type(format!("core::result::Result", crate_name)) .body(|fn_builder| { if self.variants.is_empty() { diff --git a/derive/src/derive_struct.rs b/derive/src/derive_struct.rs index 14e4c9c..1b50cf8 100644 --- a/derive/src/derive_struct.rs +++ b/derive/src/derive_struct.rs @@ -31,9 +31,9 @@ impl DeriveStruct { Ok(()) })? .generate_fn("encode") - .with_generic_deps("E", [format!("{}::enc::Encoder", crate_name)]) + .with_generic_deps("__E", [format!("{}::enc::Encoder", crate_name)]) .with_self_arg(virtue::generate::FnSelfArg::RefSelf) - .with_arg("encoder", "&mut E") + .with_arg("encoder", "&mut __E") .with_return_type(format!( "core::result::Result<(), {}::error::EncodeError>", crate_name @@ -80,8 +80,8 @@ impl DeriveStruct { Ok(()) })? .generate_fn("decode") - .with_generic_deps("D", [format!("{}::de::Decoder", crate_name)]) - .with_arg("decoder", "&mut D") + .with_generic_deps("__D", [format!("{}::de::Decoder", crate_name)]) + .with_arg("decoder", "&mut __D") .with_return_type(format!("core::result::Result", crate_name)) .body(|fn_body| { // Ok(Self { @@ -141,8 +141,8 @@ impl DeriveStruct { Ok(()) })? .generate_fn("borrow_decode") - .with_generic_deps("D", [format!("{}::de::BorrowDecoder<'__de>", crate_name)]) - .with_arg("decoder", "&mut D") + .with_generic_deps("__D", [format!("{}::de::BorrowDecoder<'__de>", crate_name)]) + .with_arg("decoder", "&mut __D") .with_return_type(format!("core::result::Result", crate_name)) .body(|fn_body| { // Ok(Self { diff --git a/tests/issues.rs b/tests/issues.rs index 229bbbb..a3565a3 100644 --- a/tests/issues.rs +++ b/tests/issues.rs @@ -26,3 +26,6 @@ mod issue_523; #[path = "issues/issue_547.rs"] mod issue_547; + +#[path = "issues/issue_570.rs"] +mod issue_570; diff --git a/tests/issues/issue_570.rs b/tests/issues/issue_570.rs new file mode 100644 index 0000000..def9043 --- /dev/null +++ b/tests/issues/issue_570.rs @@ -0,0 +1,6 @@ +#![cfg(feature = "derive")] + +#[derive(bincode::Encode, bincode::Decode)] +pub struct Eg { + data: (D, E), +}