Skip to content

Commit 81536ee

Browse files
authored
Fix deriving ZeroizeOnDrop on items with generics (#787)
1 parent 7a083ff commit 81536ee

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

zeroize/derive/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ fn derive_zeroize(mut s: synstructure::Structure<'_>) -> TokenStream {
7171
fn derive_zeroize_on_drop(mut s: synstructure::Structure<'_>) -> TokenStream {
7272
let zeroizers = generate_fields(&mut s, quote! { zeroize_or_on_drop });
7373

74-
let drop_impl = s.gen_impl(quote! {
74+
let drop_impl = s.add_bounds(AddBounds::None).gen_impl(quote! {
7575
gen impl Drop for @Self {
7676
fn drop(&mut self) {
7777
use zeroize::__internal::AssertZeroize;

zeroize/tests/zeroize_derive.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,3 +315,13 @@ fn derive_deref() {
315315
}
316316
assert_eq!(&value.0 .0, &[0, 0, 0])
317317
}
318+
319+
#[test]
320+
#[cfg(feature = "alloc")]
321+
fn derive_zeroize_on_drop_generic() {
322+
#[derive(ZeroizeOnDrop)]
323+
struct Y<T: Zeroize>(Box<T>);
324+
325+
#[derive(ZeroizeOnDrop)]
326+
struct Z<T: Zeroize>(Vec<T>);
327+
}

0 commit comments

Comments
 (0)