diff --git a/src/atrule/mod.rs b/src/atrule/mod.rs index e5c0ffa..72ec88f 100644 --- a/src/atrule/mod.rs +++ b/src/atrule/mod.rs @@ -106,7 +106,7 @@ impl AtRule { AtRuleKind::Annotation => todo!("@annotation not yet implemented"), AtRuleKind::AtRoot => { let mut selector = &Selector::replace( - super_selector.clone(), + super_selector, Selector::from_tokens( &mut read_until_open_curly_brace(toks).into_iter().peekable(), scope, @@ -127,7 +127,7 @@ impl AtRule { let raw_stmts = eat_stmts_at_root( &mut body.into_iter().peekable(), scope, - &selector, + selector, 0, is_some, )? diff --git a/src/atrule/parse.rs b/src/atrule/parse.rs index 5bea5c6..a5f15ce 100644 --- a/src/atrule/parse.rs +++ b/src/atrule/parse.rs @@ -58,7 +58,7 @@ pub(crate) fn eat_stmts_at_root>( if nesting > 1 || is_some { selector = super_selector.zip(&selector); } else { - selector = Selector::replace(super_selector.clone(), selector); + selector = Selector::replace(super_selector, selector); } nesting += 1; let rules = eat_stmts_at_root(toks, scope, &selector, nesting, true)?; diff --git a/src/selector/mod.rs b/src/selector/mod.rs index 6ac47c8..43a9d06 100644 --- a/src/selector/mod.rs +++ b/src/selector/mod.rs @@ -374,7 +374,7 @@ impl Selector { } } - pub fn replace(super_selector: Selector, this: Selector) -> Selector { + pub fn replace(super_selector: &Selector, this: Selector) -> Selector { if super_selector.0.is_empty() || this.0.is_empty() { return this; } @@ -397,7 +397,7 @@ impl Selector { found_inner = true; kinds.push(SelectorKind::PseudoParen( name, - Selector::replace(super_selector.clone(), inner), + Selector::replace(super_selector, inner), )) } else { kinds.push(SelectorKind::PseudoParen(name, inner)); @@ -445,7 +445,7 @@ impl Selector { found_inner = true; this_selector.push(SelectorKind::PseudoParen( s, - Selector::replace(self.clone(), inner_selector), + Selector::replace(self, inner_selector), )) } else { this_selector.push(SelectorKind::PseudoParen(s, inner_selector));