somewhat handle unary div
This commit is contained in:
parent
f8540755f5
commit
c521e0a835
@ -204,6 +204,25 @@ fn eat_op<I: Iterator<Item = IntermediateValue>>(
|
||||
span: right.span,
|
||||
});
|
||||
}
|
||||
Op::Div => {
|
||||
devour_whitespace(iter);
|
||||
let right = single_value(iter, scope, super_selector, op.span)?;
|
||||
if let Some(left) = space_separated.pop() {
|
||||
space_separated.push(Spanned {
|
||||
node: Value::BinaryOp(Box::new(left.node), op.node, Box::new(right.node)),
|
||||
span: left.span.merge(right.span),
|
||||
});
|
||||
} else {
|
||||
devour_whitespace(iter);
|
||||
space_separated.push(Spanned {
|
||||
node: Value::Ident(
|
||||
format!("/{}", right.node.to_css_string(right.span)?),
|
||||
QuoteKind::None,
|
||||
),
|
||||
span: op.span.merge(right.span),
|
||||
});
|
||||
}
|
||||
}
|
||||
Op::Plus => {
|
||||
if let Some(left) = space_separated.pop() {
|
||||
devour_whitespace(iter);
|
||||
@ -309,6 +328,17 @@ fn single_value<I: Iterator<Item = IntermediateValue>>(
|
||||
devour_whitespace(iter);
|
||||
single_value(iter, scope, super_selector, span)?
|
||||
}
|
||||
Op::Div => {
|
||||
devour_whitespace(iter);
|
||||
let val = single_value(iter, scope, super_selector, span)?;
|
||||
Spanned {
|
||||
node: Value::Ident(
|
||||
format!("/{}", val.node.to_css_string(val.span)?),
|
||||
QuoteKind::None,
|
||||
),
|
||||
span: op.span.merge(val.span),
|
||||
}
|
||||
}
|
||||
_ => todo!(),
|
||||
},
|
||||
IntermediateValue::Whitespace => unreachable!(),
|
||||
|
@ -23,6 +23,11 @@ test!(
|
||||
"a {\n color: (35px / 7in);\n}\n",
|
||||
"a {\n color: 0.0520833333;\n}\n"
|
||||
);
|
||||
test!(
|
||||
slash_after_comma,
|
||||
"a {\n slash-after-comma: (1, / 2);\n}\n",
|
||||
"a {\n slash-after-comma: 1, /2;\n}\n"
|
||||
);
|
||||
// error!(
|
||||
// none_div_unit,
|
||||
// "a {\n color: (35 / 7%);\n}\n",
|
||||
|
Loading…
x
Reference in New Issue
Block a user