@@ -500,8 +500,9 @@ namespace Sass {
500500 local.idxs ->varFrame = 0xFFFFFFFF ;
501501 local.idxs ->mixFrame = 0xFFFFFFFF ;
502502 local.idxs ->fnFrame = 0xFFFFFFFF ;
503-
503+ // eval.selectorStack.push_back(nullptr);
504504 sheet = compiler.registerImport (loaded); // @use
505+ // eval.selectorStack.pop_back();
505506 sheet->root2 ->idxs = local.idxs ;
506507 }
507508 else if (sheet->root2 ->isActive ) {
@@ -524,46 +525,65 @@ namespace Sass {
524525 }
525526 for (auto child : sheet->root2 ->loaded ->elements ()) {
526527 if (auto css = child->isaCssStyleRule ()) {
527- for (auto inner : css->elements ()) {
528- auto pr = eval.current ->isaCssStyleRule ();
529- auto copy = SASS_MEMORY_COPY (css->selector ());
530- for (ComplexSelector* asd : copy->elements ()) {
531- asd->chroots (false );
528+ if (auto pr = eval.current ->isaCssStyleRule ()) {
529+ for (auto inner : css->elements ()) {
530+ auto copy = SASS_MEMORY_COPY (css->selector ());
531+ for (ComplexSelector* asd : copy->elements ()) {
532+ asd->chroots (false );
533+ }
534+ // auto reduced1 = copy1->resolveParentSelectors(css->selector(), compiler, false);
535+ SelectorListObj resolved = copy->resolveParentSelectors (pr->selector (), compiler, true );
536+ auto newRule = SASS_MEMORY_NEW (CssStyleRule, css->pstate (), eval.current , resolved, { inner });
537+ eval.current ->parent ()->append (newRule);
532538 }
533- // auto reduced1 = copy1->resolveParentSelectors(css->selector(), compiler, false);
534- SelectorListObj resolved = copy->resolveParentSelectors (pr->selector (), compiler, true );
535- auto newRule = SASS_MEMORY_NEW (CssStyleRule, css->pstate (), eval.current , resolved, { inner });
536- eval.current ->parent ()->append (newRule);
539+ }
540+ else {
541+ if (eval.current ) eval.current ->append (child);
537542 }
538543 }
539544 else {
540545 if (eval.current ) eval.current ->append (child);
541546 }
542547 }
543- }
548+ }
544549 else {
545550 Root* root = sheet->root2 ;
546-
547551 root->isActive = true ;
548552 root->isLoading = true ;
549- root->loaded = eval.current ;
553+ // root->loaded = eval.current;
550554 root->loaded = SASS_MEMORY_NEW (CssStyleRule,
551555 root->pstate (), nullptr , nullptr );
552556 auto oldCurrent = eval.current ;
553557 eval.current = root->loaded ;
554558 EnvScope scoped (compiler.varRoot , root->idxs );
559+ eval.selectorStack .push_back (nullptr );
555560 for (auto child : root->elements ()) {
556561 child->accept (&eval);
557562 }
563+ eval.selectorStack .pop_back ();
558564 eval.current = oldCurrent;
559565 root->isLoading = false ;
560566
561567 for (auto child : sheet->root2 ->loaded ->elements ()) {
562- if (eval.current ->parent ()) {
563- eval.current ->parent ()->append (child);
568+ if (auto css = child->isaCssStyleRule ()) {
569+ if (auto pr = eval.current ->isaCssStyleRule ()) {
570+ for (auto inner : css->elements ()) {
571+ auto copy = SASS_MEMORY_COPY (css->selector ());
572+ for (ComplexSelector* asd : copy->elements ()) {
573+ asd->chroots (false );
574+ }
575+ // auto reduced1 = copy1->resolveParentSelectors(css->selector(), compiler, false);
576+ SelectorListObj resolved = copy->resolveParentSelectors (pr->selector (), compiler, true );
577+ auto newRule = SASS_MEMORY_NEW (CssStyleRule, css->pstate (), eval.current , resolved, { inner });
578+ eval.current ->parent ()->append (newRule);
579+ }
580+ }
581+ else {
582+ if (eval.current ) eval.current ->append (child);
583+ }
564584 }
565585 else {
566- eval.current ->append (child);
586+ if (eval. current ) eval.current ->append (child);
567587 }
568588 }
569589
0 commit comments