{"record":{"id":"e814d31322450487","repo":"swc-project/swc","slug":"expected-from-or-to-idents","errorCode":null,"errorMessage":"Expected 'from' or 'to' idents","messagePattern":"Expected 'from' or 'to' idents","errorType":"validation","errorClass":"swc_css_parser::Error","httpStatus":null,"severity":"error","filePath":"crates/swc_css_parser/src/parser/at_rules/mod.rs","lineNumber":923,"sourceCode":"\n                Err(Error::new(span, ErrorKind::Expected(\"ident or string\")))\n            }\n        }\n    }\n}\n\nimpl<I> Parse<KeyframeSelector> for Parser<I>\nwhere\n    I: ParserInput,\n{\n    fn parse(&mut self) -> PResult<KeyframeSelector> {\n        match cur!(self) {\n            tok!(\"ident\") => {\n                let ident: Ident = self.parse()?;\n                let lower = ident.value.to_ascii_lowercase();\n\n                if lower != \"from\" && lower != \"to\" {\n                    return Err(Error::new(\n                        ident.span,\n                        ErrorKind::Expected(\"'from' or 'to' idents\"),\n                    ));\n                }\n\n                Ok(KeyframeSelector::Ident(ident))\n            }\n            tok!(\"percentage\") => Ok(KeyframeSelector::Percentage(self.parse()?)),\n            _ => {\n                let span = self.input.cur_span();\n\n                return Err(Error::new(\n                    span,\n                    ErrorKind::Expected(\"'from', 'to' or percentage\"),\n                ));\n            }\n        }\n    }","sourceCodeStart":905,"sourceCodeEnd":941,"githubUrl":"https://github.com/swc-project/swc/blob/5176682b65416c6b5de6b47379ae1588ea3ecb3f/crates/swc_css_parser/src/parser/at_rules/mod.rs#L905-L941","documentation":"Fired while parsing a keyframe selector inside @keyframes: an ident token was read, but after case-insensitive comparison it was neither `from` nor `to`, and only those two idents are valid keyframe selectors (percentages are handled elsewhere). Input at fault is a selector like `@keyframes x { start { ... } }`.","triggerScenarios":"Thrown at crates/swc_css_parser/src/parser/at_rules/mod.rs:923 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use `from`, `to`, or a percentage as the keyframe selector","Collect parser errors for diagnostics","Fix the @keyframes block"],"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"}