Skip to content

Commit 635b4af

Browse files
committed
Fix derive(Traverse)
1 parent 36f4d30 commit 635b4af

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

derive-impl/src/pytraverse.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,19 @@ pub(crate) fn impl_pytraverse(mut item: DeriveInput) -> Result<TokenStream> {
105105

106106
let ty = &item.ident;
107107

108+
// Add Traverse bound to all type parameters
109+
for param in &mut item.generics.params {
110+
if let syn::GenericParam::Type(type_param) = param {
111+
type_param
112+
.bounds
113+
.push(syn::parse_quote!(::rustpython_vm::object::Traverse));
114+
}
115+
}
116+
117+
let (impl_generics, ty_generics, where_clause) = item.generics.split_for_impl();
118+
108119
let ret = quote! {
109-
unsafe impl ::rustpython_vm::object::Traverse for #ty {
120+
unsafe impl #impl_generics ::rustpython_vm::object::Traverse for #ty #ty_generics #where_clause {
110121
fn traverse(&self, tracer_fn: &mut ::rustpython_vm::object::TraverseFn) {
111122
#trace_code
112123
}

0 commit comments

Comments
 (0)