{"record":{"id":"369d6aea65e0536f","repo":"swc-project/swc","slug":"expected-n-character-in-ident","errorCode":null,"errorMessage":"Expected 'n' character in Ident","messagePattern":"Expected 'n' character in Ident","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"crates/swc_css_parser/src/parser/selectors/mod.rs","lineNumber":1271,"sourceCode":"                let a;\n                let a_raw;\n\n                let n_value;\n\n                match cur!(self) {\n                    Token::Ident {  .. } => {\n                        let ident_value = match bump!(self) {\n                            Token::Ident { value, .. } => value,\n                            _ => {\n                                unreachable!();\n                            }\n                        };\n\n                        let has_minus_sign = ident_value.starts_with('-');\n                        let n_char = if has_minus_sign { ident_value.chars().nth(1) } else { ident_value.chars().next() };\n\n                        if n_char != Some('n') && n_char != Some('N') {\n                            return Err(Error::new(\n                                span,\n                                ErrorKind::Expected(\"'n' character in Ident\"),\n                            ));\n                        }\n\n                        a = Some(if has_minus_sign { -1 } else {1 });\n                        a_raw = Some(self.input.atom(if has_plus_sign { \"+\" } else if has_minus_sign { \"-\" } else { \"\" }));\n\n                        n_value = if has_minus_sign { ident_value[1..].to_string() } else { ident_value.to_string() };\n                    }\n                    tok!(\"dimension\") => {\n                        let dimension = match bump!(self) {\n                            Token::Dimension { dimension } => {\n                                let DimensionToken { value, raw_value, unit, .. } = *dimension;\n\n                             (value, raw_value, unit)\n                            }\n                            _ => {","sourceCodeStart":1253,"sourceCodeEnd":1289,"githubUrl":"https://github.com/swc-project/swc/blob/5176682b65416c6b5de6b47379ae1588ea3ecb3f/crates/swc_css_parser/src/parser/selectors/mod.rs#L1253-L1289","documentation":"In the An+B microsyntax of :nth-* selectors, the ident at the `n` position must begin with (an optional `-` followed by) `n` or `N`; otherwise the parser rejects it with this error at the token's span.","triggerScenarios":"Thrown at crates/swc_css_parser/src/parser/selectors/mod.rs:1271 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use valid An+B forms like 2n, -n+3, odd, even","Collect parser errors for diagnostics","Fix the nth- expression"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5176682b65416c6b5de6b47379ae1588ea3ecb3f","analyzedAt":"2026-08-17T16:16:52.067Z","contentChangedAt":"2026-08-17T16:16:52.067Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}