From f376ce797488807e3d212376471c1c07c2596316 Mon Sep 17 00:00:00 2001 From: Yoh Deadfall Date: Wed, 14 Apr 2021 01:00:19 +0200 Subject: [PATCH 1/3] Angle bracket annotated types to support generics --- crates/bevy_ecs/macros/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/bevy_ecs/macros/src/lib.rs b/crates/bevy_ecs/macros/src/lib.rs index 8d7995c1d86fc..bc8342c682aff 100644 --- a/crates/bevy_ecs/macros/src/lib.rs +++ b/crates/bevy_ecs/macros/src/lib.rs @@ -118,13 +118,13 @@ pub fn derive_bundle(input: TokenStream) -> TokenStream { { if *is_bundle { field_type_infos.push(quote! { - type_info.extend(#field_type::type_info()); + type_info.extend(<#field_type>::type_info()); }); field_get_components.push(quote! { self.#field.get_components(&mut func); }); field_from_components.push(quote! { - #field: #field_type::from_components(&mut func), + #field: <#field_type>::from_components(&mut func), }); } else { field_type_infos.push(quote! { From 0ddb17b392e5fa113cbffb4d996d8e74a99382d5 Mon Sep 17 00:00:00 2001 From: Yoh Deadfall Date: Wed, 14 Apr 2021 11:29:13 +0200 Subject: [PATCH 2/3] Fully qualified type name Co-authored-by: TehPers --- crates/bevy_ecs/macros/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/bevy_ecs/macros/src/lib.rs b/crates/bevy_ecs/macros/src/lib.rs index bc8342c682aff..ab4f6c294fb93 100644 --- a/crates/bevy_ecs/macros/src/lib.rs +++ b/crates/bevy_ecs/macros/src/lib.rs @@ -118,7 +118,7 @@ pub fn derive_bundle(input: TokenStream) -> TokenStream { { if *is_bundle { field_type_infos.push(quote! { - type_info.extend(<#field_type>::type_info()); + type_info.extend(<#field_type as #ecs_path::bundle::Bundle>::type_info()); }); field_get_components.push(quote! { self.#field.get_components(&mut func); From 6f20ecd6f7f42443cf7eb199e498a8ba9e8192de Mon Sep 17 00:00:00 2001 From: Yoh Deadfall Date: Wed, 14 Apr 2021 11:29:46 +0200 Subject: [PATCH 3/3] Fully qualified type name Co-authored-by: TehPers --- crates/bevy_ecs/macros/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/bevy_ecs/macros/src/lib.rs b/crates/bevy_ecs/macros/src/lib.rs index ab4f6c294fb93..fab61ab14987e 100644 --- a/crates/bevy_ecs/macros/src/lib.rs +++ b/crates/bevy_ecs/macros/src/lib.rs @@ -124,7 +124,7 @@ pub fn derive_bundle(input: TokenStream) -> TokenStream { self.#field.get_components(&mut func); }); field_from_components.push(quote! { - #field: <#field_type>::from_components(&mut func), + #field: <#field_type as #ecs_path::bundle::Bundle>::from_components(&mut func), }); } else { field_type_infos.push(quote! {