{"record":{"id":"2892eb4b6eee13a7","repo":"swc-project/swc","slug":"expected-no-characters-after-in-unicode-range","errorCode":null,"errorMessage":"Expected no characters after '?' in unicode range","messagePattern":"Expected no characters after '\\?' in unicode range","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/swc_css_parser/src/parser/values_and_units/mod.rs","lineNumber":2956,"sourceCode":"\n        let len = start.len();\n\n        if len == 0 || len > 6 {\n            return Err(Error::new(\n                span,\n                ErrorKind::Expected(\n                    \"valid length (minimum 1 or maximum 6 hex digits) in the start of unicode \\\n                     range\",\n                ),\n            ));\n        }\n\n        // If any U+003F QUESTION MARK (?) code points were consumed, then:\n        if has_question_mark {\n            // 1. If there are any code points left in text, this is an invalid <urange>,\n            // and this algorithm must exit.\n            if next.is_some() {\n                return Err(Error::new(\n                    span,\n                    ErrorKind::Expected(\"no characters after '?' in unicode range\"),\n                ));\n            }\n\n            // 2. Interpret the consumed code points\n            // as a hexadecimal number, with the U+003F QUESTION MARK (?) code points\n            // replaced by U+0030 DIGIT ZERO (0) code points. This is the start value.\n            //\n            // 3. Interpret the consumed code points as a hexadecimal number again, with the\n            // U+003F QUESTION MARK (?) code points replaced by U+0046 LATIN CAPITAL LETTER\n            // F (F) code points. This is the end value.\n            //\n\n            // 4. Exit this algorithm.\n            return Ok(UnicodeRange {\n                span: span!(self, span.lo),\n                start: self.input.atom(start),","sourceCodeStart":2938,"sourceCodeEnd":2974,"githubUrl":"https://github.com/swc-project/swc/blob/5176682b65416c6b5de6b47379ae1588ea3ecb3f/crates/swc_css_parser/src/parser/values_and_units/mod.rs#L2938-L2974","documentation":"Fired during <urange> wildcard-form validation: if '?' wildcards were consumed in the start value, no code points may remain in the text afterwards. Trailing content after a wildcard range (e.g. 'U+00??-FF') is invalid per the spec.","triggerScenarios":"Thrown at crates/swc_css_parser/src/parser/values_and_units/mod.rs:2956 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove everything after the wildcard '?' characters","Use explicit 'U+start-end' form instead of combining wildcards with an end value"],"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"}