@@ -1722,23 +1722,6 @@ namespace Sass {
1722
1722
SimpleSequence_Selector* pHead = pIter->head ();
1723
1723
1724
1724
if (pHead) {
1725
- if (seen.find (*pHead) == seen.end ()) {
1726
- for (Simple_Selector* pSimple : *pHead) {
1727
- if (Wrapped_Selector* ws = dynamic_cast <Wrapped_Selector*>(pSimple)) {
1728
- if (CommaSequence_Selector* sl = dynamic_cast <CommaSequence_Selector*>(ws->selector ())) {
1729
- for (Sequence_Selector* cs : sl->elements ()) {
1730
- while (cs) {
1731
- if (complexSelectorHasExtension (cs, ctx, subset_map, seen)) {
1732
- hasExtension = true ;
1733
- break ;
1734
- }
1735
- cs = cs->tail ();
1736
- }
1737
- }
1738
- }
1739
- }
1740
- }
1741
- }
1742
1725
SubsetMapEntries entries = subset_map.get_v (pHead->to_str_vec ());
1743
1726
for (ExtensionPair ext : entries) {
1744
1727
// check if both selectors have the same media block parent
@@ -1989,8 +1972,15 @@ namespace Sass {
1989
1972
CommaSequence_Selector* cpy_ws_sl = SASS_MEMORY_NEW (ctx.mem , CommaSequence_Selector, sl->pstate ());
1990
1973
// remove parent selectors from inner selector
1991
1974
if (ext_cs->first ()) {
1992
- if (ext_cs->first ()->has_wrapped_selector ()) {
1993
- continue ; // ignore this case for now
1975
+ Wrapped_Selector* ext_ws = dynamic_cast <Wrapped_Selector*>(ext_cs->first ()->head ()->first ());
1976
+ if (ext_ws/* && ext_cs->length() == 1*/ ) {
1977
+ CommaSequence_Selector* ws_cs = dynamic_cast <CommaSequence_Selector*>(ext_ws->selector ());
1978
+ SimpleSequence_Selector* ws_ss = ws_cs->first ()->head ();
1979
+ if (!(
1980
+ dynamic_cast <Pseudo_Selector*>(ws_ss->first ()) ||
1981
+ dynamic_cast <Element_Selector*>(ws_ss->first ()) ||
1982
+ dynamic_cast <Placeholder_Selector*>(ws_ss->first ())
1983
+ )) continue ;
1994
1984
}
1995
1985
*cpy_ws_sl << ext_cs->first ();
1996
1986
}
0 commit comments