Skip to content

Commit de7873c

Browse files
committed
better clone constraint
1 parent cbe4356 commit de7873c

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

crates/stecs-derive/src/split.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -442,15 +442,19 @@ This struct is a version of [`{struct_name}`] that holds each field in its own [
442442
// impl Clone for StructOf
443443
let struct_of_clone = {
444444
#[cfg(not(feature = "dynamic"))]
445-
let dynamic = quote! {};
445+
let (dynamic, dynamic_constraint) = (quote! {}, quote! {});
446446
#[cfg(feature = "dynamic")]
447-
let dynamic = quote! { r#dyn: self.r#dyn.clone(), };
447+
let (dynamic, dynamic_constraint) = (
448+
quote! { r#dyn: self.r#dyn.clone(), },
449+
quote! { ::stecs::dynamic::DynamicStorage<#generic_family_name>: ::std::clone::Clone, },
450+
);
448451

449452
quote! {
450453
impl<#generics_family> ::std::clone::Clone for #struct_of_name<#generics_family_use>
451454
where
452455
#generic_family_name::Generator: ::std::clone::Clone,
453-
#struct_split_name<#generics_family_use>: ::std::clone::Clone
456+
#struct_split_name<#generics_family_use>: ::std::clone::Clone,
457+
#dynamic_constraint
454458
{
455459
fn clone(&self) -> Self {
456460
Self {

0 commit comments

Comments
 (0)