diff --git a/doc-src/SASS_CHANGELOG.md b/doc-src/SASS_CHANGELOG.md index 9a4d1fa8..19b14557 100644 --- a/doc-src/SASS_CHANGELOG.md +++ b/doc-src/SASS_CHANGELOG.md @@ -5,6 +5,8 @@ ## 3.4.7 (Unreleased) +* Stop crashing when extending selector pseudoclasses such as `:not()`. + * `@extend` resolution and `is-superselector()` no longer consider `.foo > .baz` to be a superselector of `.foo > .bar > .baz`. diff --git a/lib/sass/selector/simple_sequence.rb b/lib/sass/selector/simple_sequence.rb index 224bd780..d72c8a31 100644 --- a/lib/sass/selector/simple_sequence.rb +++ b/lib/sass/selector/simple_sequence.rb @@ -89,7 +89,7 @@ module Sass resolved_members = @members.map do |sel| next sel unless sel.is_a?(Pseudo) && sel.selector sel.with_selector(sel.selector.resolve_parent_refs(super_cseq, !:implicit_parent)) - end + end.flatten # Parent selector only appears as the first selector in the sequence unless (parent = resolved_members.first).is_a?(Parent) diff --git a/test/sass/extend_test.rb b/test/sass/extend_test.rb index 4f998493..bc9fac26 100755 --- a/test/sass/extend_test.rb +++ b/test/sass/extend_test.rb @@ -514,6 +514,18 @@ CSS SCSS end + def test_nested_pseudo_selectors + assert_equal <