Skip to content

Commit 390b91e

Browse files
committed
Error when mixin ruleset in root has parent selector
1 parent fdac3c4 commit 390b91e

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/expand.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ namespace Sass {
117117
if (sel) sel = sel->eval(eval);
118118

119119
// check for parent selectors in base level rules
120-
if (r->is_root()) {
120+
if (r->is_root() || (block_stack.back() && block_stack.back()->is_root())) {
121121
if (Selector_List_Ptr selector_list = Cast<Selector_List>(r->selector())) {
122122
for (Complex_Selector_Obj complex_selector : selector_list->elements()) {
123123
Complex_Selector_Ptr tail = complex_selector;
@@ -744,8 +744,14 @@ namespace Sass {
744744
Trace_Obj trace = SASS_MEMORY_NEW(Trace, c->pstate(), c->name(), trace_block);
745745

746746

747+
if (Block_Ptr pr = block_stack.back()) {
748+
trace_block->is_root(pr->is_root());
749+
}
747750
block_stack.push_back(trace_block);
748751
for (auto bb : body->elements()) {
752+
if (Ruleset_Ptr r = Cast<Ruleset>(bb)) {
753+
r->is_root(trace_block->is_root());
754+
}
749755
Statement_Obj ith = bb->perform(this);
750756
if (ith) trace->block()->append(ith);
751757
}

0 commit comments

Comments
 (0)