swc-project/swc · error · swc_ecma_parser::error::Error

An expression should follow '...'

Error message

An expression should follow '...'

What it means

Parser error from parse_expr_or_spread (reached via parse_paren_expr_or_arrow_fn): after '...' in a parenthesized argument list the required AssignmentExpression failed to parse, so the spread is missing its expression operand.

Source

Thrown at crates/swc_ecma_parser/src/parser/expr.rs:55

            .into());
        }

        Ok(expr)
    }

    /// AssignmentExpression[+In, ?Yield, ?Await]
    /// ...AssignmentExpression[+In, ?Yield, ?Await]
    #[inline(always)]
    fn parse_expr_or_spread(&mut self) -> PResult<ExprOrSpread> {
        trace_cur!(self, parse_expr_or_spread);
        if self.input().cur() == Token::DotDotDot {
            self.bump();
            let start = self.input().prev_span().lo;
            let spread_span = self.span(start);
            let spread = Some(spread_span);
            self.allow_in_expr(Self::parse_assignment_expr)
                .map_err(|err| {
                    Error::new(
                        err.span(),
                        SyntaxError::WithLabel {
                            inner: Box::new(err),
                            span: spread_span,
                            note: "An expression should follow '...'",
                        },
                    )
                })
                .map(|expr| ExprOrSpread { spread, expr })
        } else {
            self.parse_assignment_expr()
                .map(|expr| ExprOrSpread { spread: None, expr })
        }
    }

    ///`parseMaybeAssign` (overridden)
    #[cfg_attr(
        all(debug_assertions, feature = "tracing-spans"),

View on GitHub (pinned to 5176682b65)

Solutions

  1. Supply an expression after '...', e.g. fn(...rest) or f(...arr)
  2. Delete the dangling '...'
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/swc_ecma_parser/src/parser/expr.rs:55 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/d3745f3abfc7a03d. Report an issue: GitHub.