Closed
Description
I'm trying to compile files with this code:
@isresponsive: false;
@font-size-base: 16px;
.set-value_(@property; @value; @responsive: @isresponsive) {
// String, percentage and relative unit values
.setter(@p; @v) when not (isnumber(@v)), (ispercentage(@v)), (isem(@v)), (isunit(@v, rem)),
(isunit(@v, ex)), (isunit(@v, ch)), (isunit(@v, vw)), (isunit(@v, vh)),
(isunit(@v, vmin)), (isunit(@v, vmax)) {
@{p}+_: @v;
}
// Non-unit and pixel values
.setter(@p; @v) when (default()) {
& when (@responsive) {
@{p}+_: unit((@v / @font-size-base), rem);
}
& when not (@responsive) {
@{p}+_: unit(@v, px);
}
}
.setter(@property; @value);
}
.set-value(@args...) when (length(@args) > 1) {
.r(@a) when (extract(@a, length(@a)) = true), (extract(@a, length(@a)) = false) {
@l: (length(@a) - 1);
@responsive: extract(@a, length(@a));
}
.r(@a) when (default()) {
@l: length(@a);
@responsive: @isresponsive;
}
.r(@args);
.i; .i(@i: @l) when (@i > 1) {
.i((@i - 2));
@property: extract(@args, (@i - 1));
@values: extract(@args, @i);
.j(@property; @values; @responsive);
}
.j(@p; @v; @r; @j: length(@v)) when (@j > 0) {
.j(@p; @v; @r; (@j - 1));
.set-value_(@p; extract(@v, @j); @r);
}
}
and it was compiled as well.
But this (it compiled as well without clean-css enabled):
@isresponsive: false;
@font-size-base: 16px;
.set-value_(@property; @value; @responsive: @isresponsive) {
// String, percentage and relative unit values
.setter(@p; @v) when not (isnumber(@v)), (ispercentage(@v)), (isem(@v)), (isunit(@v, rem)),
(isunit(@v, ex)), (isunit(@v, ch)), (isunit(@v, vw)), (isunit(@v, vh)),
(isunit(@v, vmin)), (isunit(@v, vmax)) {
@{p}+_: @v;
}
// Non-unit and pixel values
.setter(@p; @v) when (default()) {
& when (@responsive) {
@{p}+_: unit((@v / @font-size-base), rem);
}
& when not (@responsive) {
@{p}+_: unit(@v, px);
}
}
.setter(@property; @value);
}
.set-value(@args...) when (length(@args) > 1) {
@l: length(@args);
@responsive: @isresponsive;
.r(@a) when (extract(@a, length(@a)) = true), (extract(@a, length(@a)) = false) {
@l: (length(@a) - 1);
@responsive: extract(@a, length(@a));
}
.r(@args);
.i; .i(@i: @l) when (@i > 1) {
.i((@i - 2));
@property: extract(@args, (@i - 1));
@values: extract(@args, @i);
.j(@property; @values; @responsive);
}
.j(@p; @v; @r; @j: length(@v)) when (@j > 0) {
.j(@p; @v; @r; (@j - 1));
.set-value_(@p; extract(@v, @j); @r);
}
}
Metadata
Metadata
Assignees
Labels
No labels