Skip to content

Commit 46589bc

Browse files
committed
For GcDeserialize, require Id: SimpleAllocCollectorId
Nessecarry for GcDeserialize for Gc.
1 parent 12da707 commit 46589bc

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

libs/derive/src/derive.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,7 @@ impl TraceDeriveInput {
447447
generics.make_where_clause().predicates.push(parse_quote!(#target: #requirement));
448448
}
449449
let ty_generics = self.generics.original.split_for_impl().1;
450+
generics.make_where_clause().predicates.push(parse_quote!(#id: zerogc::SimpleAllocCollectorId));
450451
let (impl_generics, _, where_clause) = generics.split_for_impl();
451452
let target_type = &self.ident;
452453
let forward_attrs = &self.attrs;
@@ -497,7 +498,7 @@ impl TraceDeriveInput {
497498
};
498499
let remote_name = target_type.to_token_stream().to_string();
499500
let id_decl = if id_is_generic {
500-
Some(quote!(#id: zerogc::CollectorId,))
501+
Some(quote!(#id: zerogc::SimpleAllocCollectorId,))
501502
} else { None };
502503
Ok(quote! {
503504
impl #impl_generics zerogc::serde::GcDeserialize<#gc_lt, 'deserialize, #id> for #target_type #ty_generics #where_clause {

src/serde.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ macro_rules! impl_delegating_deserialize {
105105
(impl $(<$($lt:lifetime,)* $($param:ident),*>)? GcDeserialize<$gc:lifetime, $de:lifetime, $id:ident> for $target:path $(where $($where_clause:tt)*)?) => {
106106
impl$(<$($lt,)* $($param),*>)? $crate::serde::GcDeserialize<$gc, $de, $id> for $target
107107
where Self: Deserialize<$de> + $(, $($where_clause)*)?{
108-
fn deserialize_gc<D: serde::Deserializer<$de>>(_ctx: <<$id as $crate::CollectorId>::System as $crate::GcSystem>::Context, deserializer: D) -> Result<Self, <D as serde::Deserializer<$de>>::Error> {
108+
fn deserialize_gc<D: serde::Deserializer<$de>>(_ctx: &$gc <<$id as $crate::CollectorId>::System as $crate::GcSystem>::Context, deserializer: D) -> Result<Self, <D as serde::Deserializer<$de>>::Error> {
109109
<Self as serde::Deserialize<$de>>::deserialize(deserializer)
110110
}
111111
}

0 commit comments

Comments
 (0)