swc-project/swc · error · Error

Invalid attribute modifier

Error message

Invalid attribute modifier

What it means

Fired while parsing an attribute selector modifier: the token following the attribute value (in `[attr=value modifier]`) must be an ident `i` or `s` (case-sensitivity flags), but a different token was present. ErrorKind::InvalidAttrSelectorModifier is a validation-style guard; input at fault is e.g. `[title="x" 1]` or any non-ident modifier.

Source

Thrown at crates/swc_css_parser/src/parser/selectors/mod.rs:836

}

impl<I> Parse<AttributeSelectorModifier> for Parser<I>
where
    I: ParserInput,
{
    fn parse(&mut self) -> PResult<AttributeSelectorModifier> {
        let span = self.input.cur_span();

        match cur!(self) {
            tok!("ident") => {
                let value: Ident = self.parse()?;

                Ok(AttributeSelectorModifier {
                    span: span!(self, span.lo),
                    value,
                })
            }
            _ => return Err(Error::new(span, ErrorKind::InvalidAttrSelectorModifier)),
        }
    }
}

impl<I> Parse<PseudoClassSelector> for Parser<I>
where
    I: ParserInput,
{
    fn parse(&mut self) -> PResult<PseudoClassSelector> {
        let span = self.input.cur_span();

        expect!(self, ":");

        if is!(self, Function) {
            let fn_span = self.input.cur_span();
            let name = bump!(self);
            let names: (Atom, _) = match name {
                Token::Function { value, raw } => (value.to_ascii_lowercase(), raw),

View on GitHub (pinned to 5176682b65)

Solutions

  1. Use a valid modifier ident (e.g. `i`) after the attribute selector
  2. Collect and report parser errors
  3. Remove the invalid modifier
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/swc_css_parser/src/parser/selectors/mod.rs:836 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/8ff8b806187ef0a4. Report an issue: GitHub.