{"record":{"id":"5dfd771bde4322b6","repo":"swc-project/swc","slug":"unexpected-tokens-in-at-rule-prelude","errorCode":null,"errorMessage":"Unexpected tokens in at-rule prelude","messagePattern":"Unexpected tokens in at-rule prelude","errorType":"validation","errorClass":"swc_css_parser::Error","httpStatus":null,"severity":"error","filePath":"crates/swc_css_parser/src/parser/at_rules/mod.rs","lineNumber":443,"sourceCode":"                    let span = self.input.cur_span();\n                    let _: ComponentValue = self.parse()?;\n\n                    self.errors.push(Error::new(span, ErrorKind::ValueAtRule));\n\n                    self.input.skip_ws();\n                }\n\n                return Err(Error::new(Default::default(), ErrorKind::Ignore));\n            }\n            _ => {\n                return Err(Error::new(Default::default(), ErrorKind::Ignore));\n            }\n        };\n\n        if !is!(self, EOF) {\n            let span = self.input.cur_span();\n\n            return Err(Error::new(\n                span,\n                ErrorKind::Unexpected(\"tokens in at-rule prelude\"),\n            ));\n        }\n\n        Ok(prelude)\n    }\n\n    pub(super) fn parse_at_rule_block(&mut self, name: &str) -> PResult<Vec<ComponentValue>> {\n        let block_contents = match name {\n            \"charset\" => {\n                let span = self.input.cur_span();\n\n                return Err(Error::new(span, ErrorKind::Unexpected(\"'{' token\")));\n            }\n            \"color-profile\" => {\n                let declaration_list: Vec<DeclarationOrAtRule> = self.parse()?;\n                let declaration_list: Vec<ComponentValue> = declaration_list","sourceCodeStart":425,"sourceCodeEnd":461,"githubUrl":"https://github.com/swc-project/swc/blob/5176682b65416c6b5de6b47379ae1588ea3ecb3f/crates/swc_css_parser/src/parser/at_rules/mod.rs#L425-L461","documentation":"After a recognized at-rule prelude was parsed, tokens other than EOF or the block remain, so the prelude carries trailing content the grammar does not allow; the parser returns this error at the trailing token's span.","triggerScenarios":"Thrown at crates/swc_css_parser/src/parser/at_rules/mod.rs:443 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove the extra tokens after the at-rule prelude","Report the returned error as a diagnostic","Consume the trailing tokens deliberately if extending the grammar"],"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"}