at-root with nothing contains super selector
This commit is contained in:
parent
648dc04c33
commit
8802a92f9b
@ -126,6 +126,20 @@ impl AtRule {
|
|||||||
styles.push(s);
|
styles.push(s);
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
Stmt::RuleSet(RuleSet {
|
||||||
|
selector: mut selector2,
|
||||||
|
rules,
|
||||||
|
super_selector: super_selector2,
|
||||||
|
}) => {
|
||||||
|
if selector.is_empty() {
|
||||||
|
selector2 = Selector::replace(super_selector.clone(), selector2);
|
||||||
|
}
|
||||||
|
Some(Stmt::RuleSet(RuleSet {
|
||||||
|
selector: selector2,
|
||||||
|
rules,
|
||||||
|
super_selector: super_selector2,
|
||||||
|
}))
|
||||||
|
}
|
||||||
_ => Some(s),
|
_ => Some(s),
|
||||||
})
|
})
|
||||||
.collect::<Vec<Stmt>>();
|
.collect::<Vec<Stmt>>();
|
||||||
|
@ -18,16 +18,6 @@ mod attribute;
|
|||||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||||
pub(crate) struct Selector(Vec<SelectorPart>);
|
pub(crate) struct Selector(Vec<SelectorPart>);
|
||||||
|
|
||||||
impl Selector {
|
|
||||||
pub const fn new() -> Selector {
|
|
||||||
Selector(Vec::new())
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn contains_super_selector(&self) -> bool {
|
|
||||||
self.0.iter().any(|s| s.contains_super_selector)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||||
struct SelectorPart {
|
struct SelectorPart {
|
||||||
pub inner: Vec<SelectorKind>,
|
pub inner: Vec<SelectorKind>,
|
||||||
@ -543,4 +533,12 @@ impl Selector {
|
|||||||
pub fn is_empty(&self) -> bool {
|
pub fn is_empty(&self) -> bool {
|
||||||
self.0.is_empty()
|
self.0.is_empty()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub const fn new() -> Selector {
|
||||||
|
Selector(Vec::new())
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn contains_super_selector(&self) -> bool {
|
||||||
|
self.0.iter().any(|s| s.contains_super_selector)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,3 +33,8 @@ test!(
|
|||||||
".foo {\n @at-root .bar {\n a: b;\n c {\n d: e;\n foo {\n bar: baz;\n }\n h: j;\n }\n f: g;\n }\n}\n",
|
".foo {\n @at-root .bar {\n a: b;\n c {\n d: e;\n foo {\n bar: baz;\n }\n h: j;\n }\n f: g;\n }\n}\n",
|
||||||
".bar {\n a: b;\n f: g;\n}\n.bar c {\n d: e;\n h: j;\n}\n.bar c foo {\n bar: baz;\n}\n"
|
".bar {\n a: b;\n f: g;\n}\n.bar c {\n d: e;\n h: j;\n}\n.bar c foo {\n bar: baz;\n}\n"
|
||||||
);
|
);
|
||||||
|
test!(
|
||||||
|
super_selector_inside_with_nothing,
|
||||||
|
"foo {\n @at-root {\n & {\n color: bar;\n }\n }\n}\n",
|
||||||
|
"foo {\n color: bar;\n}\n"
|
||||||
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user