Slightly simplify parse_one_simple_selector. r?heycam
draft
Slightly simplify parse_one_simple_selector. r?heycam
MozReview-Commit-ID: 7RJ334vHKru
--- a/servo/components/selectors/parser.rs
+++ b/servo/components/selectors/parser.rs
@@ -1484,63 +1484,60 @@ fn parse_one_simple_selector<'i, 't, P,
{
let start_position = input.position();
match input.next_including_whitespace() {
Ok(Token::IDHash(id)) => {
let id = Component::ID(from_cow_str(id.into()));
Ok(Some(SimpleSelectorParseResult::SimpleSelector(id)))
}
Ok(Token::Delim('.')) => {
- match input.next_including_whitespace() {
- Ok(Token::Ident(class)) => {
+ match input.next_including_whitespace()? {
+ Token::Ident(class) => {
let class = Component::Class(from_cow_str(class.into()));
Ok(Some(SimpleSelectorParseResult::SimpleSelector(class)))
}
- Ok(t) => Err(ParseError::Basic(BasicParseError::UnexpectedToken(t))),
- Err(e) => Err(ParseError::Basic(e)),
+ t => Err(ParseError::Basic(BasicParseError::UnexpectedToken(t))),
}
}
Ok(Token::SquareBracketBlock) => {
let attr = input.parse_nested_block(|input| parse_attribute_selector(parser, input))?;
Ok(Some(SimpleSelectorParseResult::SimpleSelector(attr)))
}
Ok(Token::Colon) => {
- match input.next_including_whitespace() {
- Ok(Token::Ident(name)) => {
+ match input.next_including_whitespace()? {
+ Token::Ident(name) => {
// Supported CSS 2.1 pseudo-elements only.
// ** Do not add to this list! **
if name.eq_ignore_ascii_case("before") ||
name.eq_ignore_ascii_case("after") ||
name.eq_ignore_ascii_case("first-line") ||
name.eq_ignore_ascii_case("first-letter") {
let pseudo_element = P::parse_pseudo_element(parser, name)?;
Ok(Some(SimpleSelectorParseResult::PseudoElement(pseudo_element)))
} else {
let pseudo_class = parse_simple_pseudo_class(parser, name)?;
Ok(Some(SimpleSelectorParseResult::SimpleSelector(pseudo_class)))
}
}
- Ok(Token::Function(name)) => {
+ Token::Function(name) => {
let pseudo = input.parse_nested_block(|input| {
parse_functional_pseudo_class(parser, input, name, inside_negation)
})?;
Ok(Some(SimpleSelectorParseResult::SimpleSelector(pseudo)))
}
- Ok(Token::Colon) => {
- match input.next_including_whitespace() {
- Ok(Token::Ident(name)) => {
+ Token::Colon => {
+ match input.next_including_whitespace()? {
+ Token::Ident(name) => {
let pseudo = P::parse_pseudo_element(parser, name)?;
Ok(Some(SimpleSelectorParseResult::PseudoElement(pseudo)))
}
- Ok(t) => Err(ParseError::Basic(BasicParseError::UnexpectedToken(t))),
- Err(e) => Err(ParseError::Basic(e)),
+ t => Err(ParseError::Basic(BasicParseError::UnexpectedToken(t))),
}
}
- Ok(t) => Err(ParseError::Basic(BasicParseError::UnexpectedToken(t))),
- Err(e) => Err(ParseError::Basic(e)),
+ t => Err(ParseError::Basic(BasicParseError::UnexpectedToken(t))),
}
}
_ => {
input.reset(start_position);
Ok(None)
}
}
}