Fix selector pseudoclass extension.

Closes #1476
Closes #1481
This commit is contained in:
Natalie Weizenbaum
2014-10-24 14:21:42 -07:00
parent d7a986b0e0
commit b330e158ea
3 changed files with 15 additions and 1 deletions

View File

@@ -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`.

View File

@@ -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)

View File

@@ -514,6 +514,18 @@ CSS
SCSS
end
def test_nested_pseudo_selectors
assert_equal <<CSS, render(<<SCSS)
.foo .bar:not(.baz), .bang .bar:not(.baz) {
a: b; }
CSS
.foo {
.bar:not(.baz) {a: b}
}
.bang {@extend .foo}
SCSS
end
## Long Extendees
def test_long_extendee