Skip to content

Commit e210c4b

Browse files
committed
Fix extends when selector to add includes & and :extend is inline. Fixes #1227
1 parent 2392e41 commit e210c4b

File tree

3 files changed

+44
-4
lines changed

3 files changed

+44
-4
lines changed

lib/less/tree/ruleset.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -364,11 +364,11 @@ tree.Ruleset.prototype = {
364364
if (sel.length > 0) {
365365
newSelectorPath = sel.slice(0);
366366
lastSelector = newSelectorPath.pop();
367-
newJoinedSelector = new(tree.Selector)(lastSelector.elements.slice(0));
367+
newJoinedSelector = new(tree.Selector)(lastSelector.elements.slice(0), selector.extendList);
368368
newJoinedSelectorEmpty = false;
369369
}
370370
else {
371-
newJoinedSelector = new(tree.Selector)([]);
371+
newJoinedSelector = new(tree.Selector)([], selector.extendList);
372372
}
373373

374374
//put together the parent selectors after the join
@@ -418,7 +418,7 @@ tree.Ruleset.prototype = {
418418
},
419419

420420
mergeElementsOnToSelectors: function(elements, selectors) {
421-
var i, sel;
421+
var i, sel, extendList;
422422

423423
if (selectors.length == 0) {
424424
selectors.push([ new(tree.Selector)(elements) ]);
@@ -430,7 +430,7 @@ tree.Ruleset.prototype = {
430430

431431
// if the previous thing in sel is a parent this needs to join on to it
432432
if (sel.length > 0) {
433-
sel[sel.length - 1] = new(tree.Selector)(sel[sel.length - 1].elements.concat(elements));
433+
sel[sel.length - 1] = new(tree.Selector)(sel[sel.length - 1].elements.concat(elements), sel[sel.length - 1].extendList);
434434
}
435435
else {
436436
sel.push(new(tree.Selector)(elements));

test/css/extend-nest.css

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,17 @@
2222
.type2.sidebar4 {
2323
background: red;
2424
}
25+
.button,
26+
.submit {
27+
color: black;
28+
}
29+
.button:hover,
30+
.submit:hover {
31+
color: white;
32+
}
33+
.button2 :hover {
34+
nested: white;
35+
}
36+
.button2 :hover {
37+
notnested: black;
38+
}

test/less/extend-nest.less

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,29 @@
2727
background: red;
2828
}
2929
}
30+
31+
.button {
32+
color: black;
33+
&:hover {
34+
color: white;
35+
}
36+
}
37+
.submit {
38+
&:extend(.button);
39+
&:hover:extend(.button:hover) {}
40+
}
41+
42+
.nomatch {
43+
&:hover:extend(.button :hover) {}
44+
}
45+
46+
.button2 {
47+
:hover {
48+
nested: white;
49+
}
50+
}
51+
.button2 :hover {
52+
notnested: black;
53+
}
54+
55+
.nomatch :extend(.button2:hover) {}

0 commit comments

Comments
 (0)