Skip to content

Commit

Permalink
(ast/properties) fixup uknown property parsing
Browse files Browse the repository at this point in the history
  • Loading branch information
keithamus committed Nov 10, 2024
1 parent 51e294a commit fce992b
Showing 1 changed file with 14 additions and 12 deletions.
26 changes: 14 additions & 12 deletions crates/hdx_ast/src/css/properties/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -243,35 +243,37 @@ impl<'a> DeclarationValue<'a> for StyleValue<'a> {
if parser.peek::<Computed>().is_some() {
return parser.parse::<Computed>().map(Self::Computed);
}
let checkpoint = parser.checkpoint();
macro_rules! parse_declaration_value {
( $(
$name: ident$(<$a: lifetime>)?: $atom: pat,
)+ ) => {
match name {
$(
&$atom => {
if let Ok(val) = parser.try_parse::<values::$name>() {
if let Ok(val) = parser.parse::<values::$name>() {
if parser.at_end() {
return Ok(Self::$name(val))
}
if let Some(token) = parser.peek::<Token![Delim]>() {
} else if let Some(token) = parser.peek::<Token![Any]>() {
if matches!(token.char(), Some(';' | '}' | '!')) {
return Ok(Self::$name(val))
}
}
}
if parser.peek::<Computed>().is_some() {
Self::Computed(Computed::parse(parser)?)
} else {
Self::Unknown(Unknown::parse(parser)?)
}
},
)+
_ => Self::Unknown(Unknown::parse(parser)?)
_ => {}
}
}
}
Ok(apply_properties!(parse_declaration_value))
apply_properties!(parse_declaration_value);
if parser.peek::<Computed>().is_some() {
parser.rewind(checkpoint);
Ok(Self::Computed(Computed::parse(parser)?))
} else {
parser.rewind(checkpoint);
Ok(Self::Unknown(Unknown::parse(parser)?))
}
}
}

Expand All @@ -282,8 +284,8 @@ mod tests {

#[test]
fn size_test() {
assert_size!(Property, 160);
assert_size!(StyleValue, 144);
assert_size!(Property, 136);
assert_size!(StyleValue, 120);
}

#[test]
Expand Down

0 comments on commit fce992b

Please sign in to comment.