Skip to content

Commit bbc15a4

Browse files
default function: added error when used with css-guards. updated tests.
1 parent bdfff94 commit bbc15a4

File tree

5 files changed

+41
-1
lines changed

5 files changed

+41
-1
lines changed

lib/less/tree/ruleset.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,18 @@ tree.Ruleset.prototype = {
1919
}
2020
},
2121
eval: function (env) {
22-
var thisSelectors = this.selectors, selectors, selCnt, i;
22+
var thisSelectors = this.selectors, selectors,
23+
selCnt, i, defaultFunc = tree.defaultFunc;
2324
if (thisSelectors && (selCnt = thisSelectors.length)) {
2425
selectors = [];
26+
defaultFunc.error({
27+
type: "Syntax",
28+
message: "it is currently only allowed in parametric mixin guards,"
29+
});
2530
for (i = 0; i < selCnt; i++) {
2631
selectors.push(thisSelectors[i].eval(env));
2732
}
33+
defaultFunc.reset();
2834
}
2935

3036
var rules = this.rules ? this.rules.slice(0) : null,

test/css/mixins-guards-default-func.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,3 +112,9 @@ guard-default-multi-4 {
112112
always: 2;
113113
case: 2;
114114
}
115+
guard-default-scopes-3 {
116+
3: when default;
117+
}
118+
guard-default-scopes-1 {
119+
1: no condition;
120+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
selector when (default()) {
3+
color: red;
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
SyntaxError: error evaluating function `default`: it is currently only allowed in parametric mixin guards, in {path}css-guard-default-func.less on line 2, column 16:
2+
1
3+
2 selector when (default()) {
4+
3 color: red;

test/less/mixins-guards-default-func.less

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,3 +157,23 @@ guard-default-multi-4 {
157157
.m(1);
158158
.m(2);
159159
}
160+
161+
// default & scope
162+
163+
guard-default-scopes {
164+
.s1() {.m(@v) {1: no condition}}
165+
.s2() {.m(@v) when (@v) {2: when true}}
166+
.s3() {.m(@v) when (default()) {3: when default}}
167+
168+
&-3 {
169+
.s2();
170+
.s3();
171+
.m(false);
172+
}
173+
174+
&-1 {
175+
.s1();
176+
.s3();
177+
.m(false);
178+
}
179+
}

0 commit comments

Comments
 (0)