From 7a69a960bd458de9f1f2259da535b012392106ff Mon Sep 17 00:00:00 2001 From: danielalvsaaker Date: Wed, 31 Aug 2022 15:02:05 +0200 Subject: [PATCH] Avoid possible shadowing of existing bindings --- packages/sycamore-macro/src/view/codegen.rs | 8 ++++---- .../tests/view/component-pass.rs | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/packages/sycamore-macro/src/view/codegen.rs b/packages/sycamore-macro/src/view/codegen.rs index 0b67b94a9..925c52cfc 100644 --- a/packages/sycamore-macro/src/view/codegen.rs +++ b/packages/sycamore-macro/src/view/codegen.rs @@ -27,14 +27,14 @@ impl Codegen { .iter() .map(|node| { let quoted = self.view_node(node); - quote! { children.push(#quoted); } + quote! { #quoted, } }) .collect(); quote! { ::sycamore::view::View::new_fragment({ - let mut children = ::std::vec::Vec::new(); - #append_nodes - children + ::std::vec![ + #append_nodes + ] }) } } diff --git a/packages/sycamore-macro/tests/view/component-pass.rs b/packages/sycamore-macro/tests/view/component-pass.rs index 52cd58b9d..03959e360 100644 --- a/packages/sycamore-macro/tests/view/component-pass.rs +++ b/packages/sycamore-macro/tests/view/component-pass.rs @@ -22,6 +22,18 @@ pub fn ComponentWithChildren<'a, G: Html>(cx: Scope<'a>, prop: PropWithChildren< prop.children.call(cx) } +#[component] +pub fn NestedComponentWithChildren<'a, G: Html>(cx: Scope<'a>, prop: PropWithChildren<'a, G>) -> View { + let children = prop.children.call(cx); + + view! { cx, + ComponentWithChildren { + (children) + Component {} + } + } +} + #[component] pub async fn AsyncComponentWithPropDestructuring<'a, G: Html>( cx: Scope<'a>, @@ -61,6 +73,12 @@ fn compile_pass() { Component {} } }; + + let _: View = view! { cx, + NestedComponentWithChildren { + Component {} + } + }; }); }