eval varargs
This commit is contained in:
parent
082d58853b
commit
ea0e04bfb9
@ -281,6 +281,7 @@ impl<'a> Parser<'a> {
|
|||||||
|
|
||||||
pub fn variadic_args(&mut self, args: CallArgs) -> SassResult<Vec<Spanned<Value>>> {
|
pub fn variadic_args(&mut self, args: CallArgs) -> SassResult<Vec<Spanned<Value>>> {
|
||||||
let mut vals = Vec::new();
|
let mut vals = Vec::new();
|
||||||
|
let span = args.span();
|
||||||
let mut args = match args
|
let mut args = match args
|
||||||
.0
|
.0
|
||||||
.into_iter()
|
.into_iter()
|
||||||
@ -292,7 +293,7 @@ impl<'a> Parser<'a> {
|
|||||||
};
|
};
|
||||||
args.sort_by(|(a1, _), (a2, _)| a1.cmp(a2));
|
args.sort_by(|(a1, _), (a2, _)| a1.cmp(a2));
|
||||||
for arg in args {
|
for arg in args {
|
||||||
vals.push(self.parse_value_from_vec(arg.1)?);
|
vals.push(self.parse_value_from_vec(arg.1)?.node.eval(span)?);
|
||||||
}
|
}
|
||||||
Ok(vals)
|
Ok(vals)
|
||||||
}
|
}
|
||||||
|
@ -87,6 +87,11 @@ test!(
|
|||||||
"$a: 1px;\n$b: 2px;\na {\n color: max($a, $b);\n}\n",
|
"$a: 1px;\n$b: 2px;\na {\n color: max($a, $b);\n}\n",
|
||||||
"a {\n color: 2px;\n}\n"
|
"a {\n color: 2px;\n}\n"
|
||||||
);
|
);
|
||||||
|
test!(
|
||||||
|
max_evaluated_binop,
|
||||||
|
"a {\n color: max(100% - lightness(red) - 2%);\n}\n",
|
||||||
|
"a {\n color: 52%;\n}\n"
|
||||||
|
);
|
||||||
error!(
|
error!(
|
||||||
max_arg_of_incorrect_type,
|
max_arg_of_incorrect_type,
|
||||||
"$a: 1px;\n$b: 2px;\na {\n color: max($a, $b, foo);\n}\n", "Error: foo is not a number."
|
"$a: 1px;\n$b: 2px;\na {\n color: max($a, $b, foo);\n}\n", "Error: foo is not a number."
|
||||||
|
Loading…
x
Reference in New Issue
Block a user