Use the location in the error value when reporting a CSS error

This commit is contained in:
Simon Sapin 2017-10-05 19:00:48 +02:00
parent c0f8f15f39
commit c64374bc58
10 changed files with 34 additions and 27 deletions

View file

@ -276,8 +276,8 @@ macro_rules! font_feature_values_blocks {
});
while let Some(result) = iter.next() {
if let Err((error, slice)) = result {
let location = error.location;
let error = ContextualParseError::UnsupportedRule(slice, error);
let location = iter.input.current_source_location();
context.log_css_error(error_context, location, error);
}
}
@ -430,10 +430,10 @@ macro_rules! font_feature_values_blocks {
let mut iter = DeclarationListParser::new(input, parser);
while let Some(declaration) = iter.next() {
if let Err((error, slice)) = declaration {
let location = error.location;
let error = ContextualParseError::UnsupportedKeyframePropertyDeclaration(
slice, error
);
let location = iter.input.current_source_location();
self.context.log_css_error(self.error_context, location, error);
}
}

View file

@ -525,8 +525,9 @@ impl<'a, 'i, R: ParseErrorReporter> QualifiedRuleParser<'i> for KeyframeListPars
})
},
Err(e) => {
let location = e.location;
let error = ContextualParseError::InvalidKeyframeRule(input.slice_from(start_position), e.clone());
self.context.log_css_error(self.error_context, input.current_source_location(), error);
self.context.log_css_error(self.error_context, location, error);
Err(e)
}
}
@ -554,8 +555,9 @@ impl<'a, 'i, R: ParseErrorReporter> QualifiedRuleParser<'i> for KeyframeListPars
}
Err((error, slice)) => {
iter.parser.declarations.clear();
let location = error.location;
let error = ContextualParseError::UnsupportedKeyframePropertyDeclaration(slice, error);
context.log_css_error(self.error_context, iter.input.current_source_location(), error);
context.log_css_error(self.error_context, location, error);
}
}
// `parse_important` is not called here, `!important` is not allowed in keyframe blocks.

View file

@ -333,8 +333,8 @@ impl<'a, 'b, R: ParseErrorReporter> NestedRuleParser<'a, 'b, R> {
match result {
Ok(rule) => rules.push(rule),
Err((error, slice)) => {
let location = error.location;
let error = ContextualParseError::UnsupportedRule(slice, error);
let location = iter.input.current_source_location();
self.context.log_css_error(self.error_context, location, error);
}
}

View file

@ -395,8 +395,8 @@ impl Stylesheet {
}
},
Err((error, slice)) => {
let location = error.location;
let error = ContextualParseError::InvalidRule(slice, error);
let location = iter.input.current_source_location();
iter.parser.context.log_css_error(&iter.parser.error_context,
location, error);
}

View file

@ -369,8 +369,9 @@ impl ViewportRule {
}
}
Err((error, slice)) => {
let location = error.location;
let error = ContextualParseError::UnsupportedViewportDescriptorDeclaration(slice, error);
context.log_css_error(error_context, parser.input.current_source_location(), error);
context.log_css_error(error_context, location, error);
}
}
}