swc-project/swc · error
Expected 'e', 'pi', 'infinity', '-infinity' or 'NaN', ident
Error message
Expected 'e', 'pi', 'infinity', '-infinity' or 'NaN', ident tokens
What it means
Fired by the CalcValue parser: an Ident token was found, but only the math constants 'e', 'pi', 'infinity', '-infinity' and 'NaN' (case-insensitive) are valid calc values; any other identifier is rejected.
Source
Thrown at crates/swc_css_parser/src/parser/values_and_units/mod.rs:3264
}
}
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, .. } => {
match &*value.to_ascii_lowercase() {
"e" | "pi" | "infinity" | "-infinity" | "nan" => {}
_ => {
let span = self.input.cur_span();
return Err(Error::new(
span,
ErrorKind::Expected(
"'e', 'pi', 'infinity', '-infinity' or 'NaN', ident tokens",
),
));
}
}
Ok(CalcValue::Constant(self.parse()?))
}
tok!("(") => {
let span = self.input.cur_span();
expect!(self, "(");
self.input.skip_ws();
let mut calc_sum_in_parens: CalcSum = self.parse()?;View on GitHub (pinned to 5176682b65)
Solutions
- Use a supported constant: e, pi, infinity, -infinity or NaN
- Replace other identifiers with numbers, dimensions, percentages, or calc functions
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/swc_css_parser/src/parser/values_and_units/mod.rs:3264 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/29a27eaed556f38b.
Report an issue: GitHub.