@@ -1767,7 +1767,7 @@ namespace Sass {
1767
1767
Complex_Selector_Ptr is = resolved->at (i)->first ();
1768
1768
while (is) {
1769
1769
if (is->head ()) {
1770
- is->head ()-> perform ( this );
1770
+ is->head (operator ()(is-> head ()) );
1771
1771
}
1772
1772
is = is->tail ();
1773
1773
}
@@ -1779,21 +1779,13 @@ namespace Sass {
1779
1779
{
1780
1780
for (size_t i = 0 ; i < s->length (); i++) {
1781
1781
Simple_Selector_Ptr ss = s->at (i);
1782
- if (ss) ss->perform (this );
1782
+ // skip parents here (called via resolve_parent_refs)
1783
+ if (ss == NULL || Cast<Parent_Selector>(ss)) continue ;
1784
+ s->at (i) = Cast<Simple_Selector>(ss->perform (this ));
1783
1785
}
1784
1786
return s;
1785
1787
}
1786
1788
1787
- // XXX: this is never hit via spec tests
1788
- Attribute_Selector_Ptr Eval::operator ()(Attribute_Selector_Ptr s)
1789
- {
1790
- String_Obj attr = s->value ();
1791
- if (attr) { attr = static_cast <String_Ptr>(attr->perform (this )); }
1792
- Attribute_Selector_Ptr ss = SASS_MEMORY_COPY (s);
1793
- ss->value (attr);
1794
- return ss;
1795
- }
1796
-
1797
1789
Selector_List_Ptr Eval::operator ()(Selector_Schema_Ptr s)
1798
1790
{
1799
1791
LOCAL_FLAG (is_in_selector_schema, true );
@@ -1841,6 +1833,11 @@ namespace Sass {
1841
1833
}
1842
1834
}
1843
1835
1836
+ Simple_Selector_Ptr Eval::operator ()(Simple_Selector_Ptr s)
1837
+ {
1838
+ return s;
1839
+ }
1840
+
1844
1841
// hotfix to avoid invalid nested `:not` selectors
1845
1842
// probably the wrong place, but this should ultimately
1846
1843
// be fixed by implement superselector correctly for `:not`
@@ -1872,7 +1869,6 @@ namespace Sass {
1872
1869
}
1873
1870
}
1874
1871
}
1875
-
1876
1872
return s;
1877
1873
};
1878
1874
0 commit comments