@@ -51,7 +51,8 @@ namespace Sass {
5151 : exp(exp),
5252 ctx (exp.ctx),
5353 force(false ),
54- is_in_comment(false )
54+ is_in_comment(false ),
55+ is_in_selector_schema(false )
5556 {
5657 bool_true = SASS_MEMORY_NEW (Boolean, " [NA]" , true );
5758 bool_false = SASS_MEMORY_NEW (Boolean, " [NA]" , false );
@@ -1757,7 +1758,10 @@ namespace Sass {
17571758 Selector_List_Ptr Eval::operator ()(Complex_Selector_Ptr s)
17581759 {
17591760 bool implicit_parent = !exp.old_at_root_without_rule ;
1760- return s->resolve_parent_refs (exp.selector_stack , implicit_parent);
1761+ if (is_in_selector_schema) exp.selector_stack .push_back (0 );
1762+ Selector_List_Obj resolved = s->resolve_parent_refs (exp.selector_stack , implicit_parent);
1763+ if (is_in_selector_schema) exp.selector_stack .pop_back ();
1764+ return resolved.detach ();
17611765 }
17621766
17631767 // XXX: this is never hit via spec tests
@@ -1772,6 +1776,7 @@ namespace Sass {
17721776
17731777 Selector_List_Ptr Eval::operator ()(Selector_Schema_Ptr s)
17741778 {
1779+ LOCAL_FLAG (is_in_selector_schema, true );
17751780 // the parser will look for a brace to end the selector
17761781 Expression_Obj sel = s->contents ()->perform (this );
17771782 std::string result_str (sel->to_string (ctx.c_options ));
@@ -1781,6 +1786,7 @@ namespace Sass {
17811786 // a selector schema may or may not connect to parent?
17821787 bool chroot = s->connect_parent () == false ;
17831788 Selector_List_Obj sl = p.parse_selector_list (chroot);
1789+ flag_is_in_selector_schema.reset ();
17841790 return operator ()(sl);
17851791 }
17861792
0 commit comments