Simplify Parser::ident_or_error

Avoid a nested `Result<T, PResult<T>>`.
This commit is contained in:
DaniPopes 2023-12-27 21:16:29 +01:00
parent a861c8965e
commit 826269eddb
No known key found for this signature in database
GPG Key ID: 0F09640DDB7AC692

View File

@ -504,18 +504,10 @@ fn parse_ident_common(&mut self, recover: bool) -> PResult<'a, Ident> {
}
fn ident_or_err(&mut self, recover: bool) -> PResult<'a, (Ident, /* is_raw */ bool)> {
let result = self.token.ident().ok_or_else(|| self.expected_ident_found(recover));
let (ident, is_raw) = match result {
Ok(ident) => ident,
Err(err) => match err {
// we recovered!
Ok(ident) => ident,
Err(err) => return Err(err),
},
};
Ok((ident, is_raw))
match self.token.ident() {
Some(ident) => Ok(ident),
None => self.expected_ident_found(recover),
}
}
/// Checks if the next token is `tok`, and returns `true` if so.