@@ -1773,7 +1773,7 @@ namespace Sass {
1773
1773
Complex_Selector_Ptr is = resolved->at (i)->first ();
1774
1774
while (is) {
1775
1775
if (is->head ()) {
1776
- is->head ()-> perform ( this );
1776
+ is->head (operator ()(is-> head ()) );
1777
1777
}
1778
1778
is = is->tail ();
1779
1779
}
@@ -1785,21 +1785,13 @@ namespace Sass {
1785
1785
{
1786
1786
for (size_t i = 0 ; i < s->length (); i++) {
1787
1787
Simple_Selector_Ptr ss = s->at (i);
1788
- if (ss) ss->perform (this );
1788
+ // skip parents here (called via resolve_parent_refs)
1789
+ if (ss == NULL || Cast<Parent_Selector>(ss)) continue ;
1790
+ s->at (i) = Cast<Simple_Selector>(ss->perform (this ));
1789
1791
}
1790
1792
return s;
1791
1793
}
1792
1794
1793
- // XXX: this is never hit via spec tests
1794
- Attribute_Selector_Ptr Eval::operator ()(Attribute_Selector_Ptr s)
1795
- {
1796
- String_Obj attr = s->value ();
1797
- if (attr) { attr = static_cast <String_Ptr>(attr->perform (this )); }
1798
- Attribute_Selector_Ptr ss = SASS_MEMORY_COPY (s);
1799
- ss->value (attr);
1800
- return ss;
1801
- }
1802
-
1803
1795
Selector_List_Ptr Eval::operator ()(Selector_Schema_Ptr s)
1804
1796
{
1805
1797
LOCAL_FLAG (is_in_selector_schema, true );
@@ -1847,6 +1839,11 @@ namespace Sass {
1847
1839
}
1848
1840
}
1849
1841
1842
+ Simple_Selector_Ptr Eval::operator ()(Simple_Selector_Ptr s)
1843
+ {
1844
+ return s;
1845
+ }
1846
+
1850
1847
// hotfix to avoid invalid nested `:not` selectors
1851
1848
// probably the wrong place, but this should ultimately
1852
1849
// be fixed by implement superselector correctly for `:not`
@@ -1878,7 +1875,6 @@ namespace Sass {
1878
1875
}
1879
1876
}
1880
1877
}
1881
-
1882
1878
return s;
1883
1879
};
1884
1880
0 commit comments