mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Fix shorthand parsing pushing declarations when parse_entirely returns Err
This commit is contained in:
parent
66c357feef
commit
3d3c196d90
2 changed files with 4 additions and 3 deletions
|
@ -827,7 +827,7 @@
|
||||||
pub fn parse_into<'i, 't>(declarations: &mut SourcePropertyDeclaration,
|
pub fn parse_into<'i, 't>(declarations: &mut SourcePropertyDeclaration,
|
||||||
context: &ParserContext, input: &mut Parser<'i, 't>)
|
context: &ParserContext, input: &mut Parser<'i, 't>)
|
||||||
-> Result<(), ParseError<'i>> {
|
-> Result<(), ParseError<'i>> {
|
||||||
parse_value(context, input).map(|longhands| {
|
input.parse_entirely(|input| parse_value(context, input)).map(|longhands| {
|
||||||
% for sub_property in shorthand.sub_properties:
|
% for sub_property in shorthand.sub_properties:
|
||||||
declarations.push(PropertyDeclaration::${sub_property.camel_case}(
|
declarations.push(PropertyDeclaration::${sub_property.camel_case}(
|
||||||
longhands.${sub_property.ident}
|
longhands.${sub_property.ident}
|
||||||
|
|
|
@ -1553,8 +1553,9 @@ impl PropertyDeclaration {
|
||||||
} else {
|
} else {
|
||||||
input.look_for_var_functions();
|
input.look_for_var_functions();
|
||||||
let start = input.position();
|
let start = input.position();
|
||||||
input.parse_entirely(|input| id.parse_into(declarations, context, input))
|
// Not using parse_entirely here: each ${shorthand.ident}::parse_into function
|
||||||
.or_else(|_| {
|
// needs to do so *before* pushing to `declarations`.
|
||||||
|
id.parse_into(declarations, context, input).or_else(|_| {
|
||||||
while let Ok(_) = input.next() {} // Look for var() after the error.
|
while let Ok(_) = input.next() {} // Look for var() after the error.
|
||||||
if input.seen_var_functions() {
|
if input.seen_var_functions() {
|
||||||
input.reset(start);
|
input.reset(start);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue