swc-project/swc · error

Expected '+', '-', '*' or '/' delim tokens

Error message

Expected '+', '-', '*' or '/' delim tokens

What it means

Fired by the CalcOperator parser: the current token is a Delim but its character is not one of '+', '-', '*' or '/', the only operators allowed inside calc() sums. The parser cannot build a CalcOperator node.

Source

Thrown at crates/swc_css_parser/src/parser/values_and_units/mod.rs:3240

                bump!(self);

                Ok(CalcOperator {
                    span: span!(self, span.lo),
                    value: CalcOperatorType::Mul,
                })
            }
            tok!("/") => {
                bump!(self);

                Ok(CalcOperator {
                    span: span!(self, span.lo),
                    value: CalcOperatorType::Div,
                })
            }
            _ => {
                let span = self.input.cur_span();

                return Err(Error::new(
                    span,
                    ErrorKind::Expected("'+', '-', '*' or '/' delim tokens"),
                ));
            }
        }
    }
}

impl<I> Parse<CalcValue> for Parser<I>
where
    I: ParserInput,
{
    fn parse(&mut self) -> PResult<CalcValue> {
        match cur!(self) {
            tok!("number") => Ok(CalcValue::Number(self.parse()?)),
            tok!("dimension") => Ok(CalcValue::Dimension(self.parse()?)),
            tok!("percentage") => Ok(CalcValue::Percentage(self.parse()?)),
            Token::Ident { value, .. } => {

View on GitHub (pinned to 5176682b65)

Solutions

  1. Use only '+', '-', '*' or '/' inside calc expressions
  2. Remove the invalid operator character
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/swc_css_parser/src/parser/values_and_units/mod.rs:3240 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of swc-project/swc@5176682b65 (2026-08-17). Data as JSON: /api/errors/56cadfcf7ab5e6ee. Report an issue: GitHub.