Evan Almloff пре 11 месеци
родитељ
комит
74e51b7e0d
2 измењених фајлова са 24 додато и 2 уклоњено
  1. 2 2
      packages/rsx/src/element.rs
  2. 22 0
      packages/rsx/tests/hotreload_pattern.rs

+ 2 - 2
packages/rsx/src/element.rs

@@ -76,7 +76,7 @@ impl Parse for Element {
         // Assemble the new element from the contents of the block
         let mut element = Element {
             brace,
-            name,
+            name: name.clone(),
             raw_attributes: block.attributes,
             children: block.children,
             diagnostics: block.diagnostics,
@@ -98,7 +98,7 @@ impl Parse for Element {
                 value: AttributeValue::AttrExpr(PartialExpr::from_expr(&spread.expr)),
                 comma: spread.comma,
                 dyn_idx: spread.dyn_idx.clone(),
-                el_name: None,
+                el_name: Some(name.clone()),
             });
         }
 

+ 22 - 0
packages/rsx/tests/hotreload_pattern.rs

@@ -1125,3 +1125,25 @@ fn valid_fill_empty() {
 
     assert!(valid);
 }
+
+// We should be able to hot reload spreads
+#[test]
+fn valid_spread() {
+    let valid = can_hotreload(
+        quote! {
+            div {
+                ..spread
+            }
+        },
+        quote! {
+            div {
+                "hello world"
+            }
+            h1 {
+                ..spread
+            }
+        },
+    );
+
+    assert!(valid);
+}