make division with number as lhs more robust
This commit is contained in:
parent
cbec20f753
commit
2aaaf59e4f
@ -624,10 +624,21 @@ impl Value {
|
|||||||
Self::String(s, q) => {
|
Self::String(s, q) => {
|
||||||
Value::String(format!("{}{}/{}{}{}", num, unit, q, s, q), QuoteKind::None)
|
Value::String(format!("{}{}/{}{}{}", num, unit, q, s, q), QuoteKind::None)
|
||||||
}
|
}
|
||||||
Self::BinaryOp(..) | Self::Paren(..) => {
|
Self::BinaryOp(..) | Self::Paren(..) | Self::UnaryOp(..) => {
|
||||||
Self::Dimension(num, unit).div(other.eval(span)?.node, span)?
|
Self::Dimension(num, unit).div(other.eval(span)?.node, span)?
|
||||||
}
|
}
|
||||||
_ => todo!(),
|
Self::List(..) | Self::True | Self::False | Self::Important | Self::Color(..) => {
|
||||||
|
Value::String(format!("{}{}/{}", num, unit, other.to_css_string(span)?), QuoteKind::None)
|
||||||
|
}
|
||||||
|
Self::Null => Value::String(format!("{}{}/", num, unit), QuoteKind::None),
|
||||||
|
Self::Map(..) | Self::Function(..) => {
|
||||||
|
return Err((
|
||||||
|
format!("{} isn't a valid CSS value.", other.inspect(span)?),
|
||||||
|
span,
|
||||||
|
)
|
||||||
|
.into())
|
||||||
|
}
|
||||||
|
Self::ArgList(..) => todo!(),
|
||||||
},
|
},
|
||||||
Self::Color(c) => match other {
|
Self::Color(c) => match other {
|
||||||
Self::String(s, q) => {
|
Self::String(s, q) => {
|
||||||
|
@ -28,3 +28,48 @@ test!(
|
|||||||
"a {\n slash-after-comma: (1, / 2);\n}\n",
|
"a {\n slash-after-comma: (1, / 2);\n}\n",
|
||||||
"a {\n slash-after-comma: 1, /2;\n}\n"
|
"a {\n slash-after-comma: 1, /2;\n}\n"
|
||||||
);
|
);
|
||||||
|
test!(
|
||||||
|
num_div_space_list,
|
||||||
|
"a {\n color: 1 / (a b);\n}\n",
|
||||||
|
"a {\n color: 1/a b;\n}\n"
|
||||||
|
);
|
||||||
|
test!(
|
||||||
|
num_div_comma_list,
|
||||||
|
"a {\n color: 1 / (a, b);\n}\n",
|
||||||
|
"a {\n color: 1/a, b;\n}\n"
|
||||||
|
);
|
||||||
|
test!(
|
||||||
|
num_div_true,
|
||||||
|
"a {\n color: 1 / true;\n}\n",
|
||||||
|
"a {\n color: 1/true;\n}\n"
|
||||||
|
);
|
||||||
|
test!(
|
||||||
|
num_div_false,
|
||||||
|
"a {\n color: 1 / false;\n}\n",
|
||||||
|
"a {\n color: 1/false;\n}\n"
|
||||||
|
);
|
||||||
|
test!(
|
||||||
|
num_div_important,
|
||||||
|
"a {\n color: 1 / !important;\n}\n",
|
||||||
|
"a {\n color: 1/!important;\n}\n"
|
||||||
|
);
|
||||||
|
test!(
|
||||||
|
num_div_null,
|
||||||
|
"a {\n color: 1 / null;\n}\n",
|
||||||
|
"a {\n color: 1/;\n}\n"
|
||||||
|
);
|
||||||
|
test!(
|
||||||
|
num_div_named_color,
|
||||||
|
"a {\n color: 1 / red;\n}\n",
|
||||||
|
"a {\n color: 1/red;\n}\n"
|
||||||
|
);
|
||||||
|
error!(
|
||||||
|
num_div_map,
|
||||||
|
"a {\n color: 1 / (a: b);\n}\n",
|
||||||
|
"Error: (a: b) isn't a valid CSS value."
|
||||||
|
);
|
||||||
|
error!(
|
||||||
|
num_div_function,
|
||||||
|
"a {\n color: 1 / get-function(lighten);\n}\n",
|
||||||
|
"Error: get-function(\"lighten\") isn't a valid CSS value."
|
||||||
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user