fix(parser): don't report an error for @color-profile device-cmyk#120
Merged
Conversation
Fuzzer finding OXC-COLOR-001 from #109: CSS Color 5 allows `device-cmyk` as a predefined @color-profile name, but the prelude parser routed through parse_dashed_ident, which pushed its recoverable `dashed identifier is expected` error before the device-cmyk match. Other non-dashed names still report the error.
Merging this PR will not alter performance
Comparing Footnotes
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes OXC-COLOR-001 from #109: CSS Color 5 allows
device-cmykas a predefined@color-profilename (@color-profile [ <dashed-ident> | device-cmyk ]), but the prelude parser routed throughparse_dashed_ident, which pushed its recoverabledashed identifier is expectederror before thedevice-cmykmatch ever ran — so the AST was right but the parse wasn't clean.The prelude now checks
device-cmyk(ASCII case-insensitive) before applying the dashed-ident requirement; other non-dashed names still report the recoverable error (covered by a new recoverable-fixture snapshot).Full test suite passes and conformance snapshots are unchanged.