diff --git a/src/parse/function.rs b/src/parse/function.rs index 651bd4b..f209dca 100644 --- a/src/parse/function.rs +++ b/src/parse/function.rs @@ -102,7 +102,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: true, in_control_flow: self.in_control_flow, diff --git a/src/parse/import.rs b/src/parse/import.rs index cfe9a8f..c8fd931 100644 --- a/src/parse/import.rs +++ b/src/parse/import.rs @@ -82,7 +82,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: file.span.subspan(0, 0), - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: self.in_control_flow, diff --git a/src/parse/mixin.rs b/src/parse/mixin.rs index 82c899d..eb84dfc 100644 --- a/src/parse/mixin.rs +++ b/src/parse/mixin.rs @@ -107,7 +107,7 @@ impl<'a> Parser<'a> { in_mixin: true, in_function: self.in_function, in_control_flow: self.in_control_flow, - content, + content: content.as_deref(), at_root: false, at_root_has_selector: self.at_root_has_selector, extender: self.extender, diff --git a/src/parse/mod.rs b/src/parse/mod.rs index 781bc28..a8eb000 100644 --- a/src/parse/mod.rs +++ b/src/parse/mod.rs @@ -70,7 +70,7 @@ pub(crate) struct Parser<'a> { pub scopes: &'a mut NeverEmptyVec, pub super_selectors: &'a mut NeverEmptyVec, pub span_before: Span, - pub content: Option>, + pub content: Option<&'a [Stmt]>, pub in_mixin: bool, pub in_function: bool, pub in_control_flow: bool, @@ -114,7 +114,7 @@ impl<'a> Parser<'a> { AtRuleKind::Content => { if self.in_mixin { if let Some(content) = &self.content { - stmts.append(&mut content.clone()); + stmts.extend_from_slice(content); } } else { return Err(( @@ -351,7 +351,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: self.in_control_flow, @@ -587,7 +587,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: true, @@ -609,7 +609,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: true, @@ -740,7 +740,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: true, @@ -762,7 +762,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: true, @@ -812,7 +812,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: true, @@ -834,7 +834,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: true, @@ -945,7 +945,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: true, @@ -967,7 +967,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: true, @@ -1063,7 +1063,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: self.in_control_flow, @@ -1131,7 +1131,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: &mut NeverEmptyVec::new(at_rule_selector.clone()), span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: self.in_control_flow, @@ -1172,7 +1172,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: self.in_control_flow, @@ -1248,7 +1248,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: self.in_control_flow, diff --git a/src/parse/value.rs b/src/parse/value.rs index 9d54dfb..ee1da60 100644 --- a/src/parse/value.rs +++ b/src/parse/value.rs @@ -151,7 +151,7 @@ impl<'a> Parser<'a> { global_scope: self.global_scope, super_selectors: self.super_selectors, span_before: self.span_before, - content: self.content.clone(), + content: self.content, in_mixin: self.in_mixin, in_function: self.in_function, in_control_flow: self.in_control_flow,