Skip to content

Commit db75db8

Browse files
committed
Fix issue with parent selector evaluation
Fixes #2291
1 parent af26014 commit db75db8

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/eval.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1748,8 +1748,8 @@ namespace Sass {
17481748
result_str = unquote(Util::rtrim(result_str)) + "\n{";
17491749
Parser p = Parser::from_c_str(result_str.c_str(), ctx, s->pstate());
17501750
p.last_media_block = s->media_block();
1751-
Selector_List_Obj sl = p.parse_selector_list(exp.block_stack.back()->is_root());
1752-
if (s->has_parent_ref()) sl->remove_parent_selectors();
1751+
bool root = exp.block_stack.back()->is_root();
1752+
Selector_List_Obj sl = p.parse_selector_list(root);
17531753
return operator()(&sl);
17541754
}
17551755

src/expand.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,11 @@ namespace Sass {
636636
// convert selector schema to a selector list
637637
else if (Selector_Schema_Obj schema = SASS_MEMORY_CAST(Selector_Schema, s)) {
638638
if (schema->has_real_parent_ref()) {
639+
// put root block on stack again (ignore parents)
640+
// selector schema must not connect in eval!
641+
block_stack.push_back(block_stack.at(1));
639642
sl = eval(&schema);
643+
block_stack.pop_back();
640644
} else {
641645
selector_stack.push_back(0);
642646
sl = eval(&schema);

0 commit comments

Comments
 (0)