Skip to content

Commit dad5a84

Browse files
Make cached_prefix_error return a Result to avoid unwrap_err
1 parent f437c63 commit dad5a84

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

src/parser/mod.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1755,7 +1755,7 @@ impl<'a> Parser<'a> {
17551755
// succeeds (e.g. `case-case-...c`).
17561756
let start_index = self.index;
17571757
if let Some(&cached) = self.failed_prefix_positions.get(&start_index) {
1758-
return Err(self.cached_prefix_error(cached, self.peek_token_ref()));
1758+
return self.cached_prefix_error(cached, self.peek_token_ref());
17591759
}
17601760
let result = self.parse_prefix_inner();
17611761
if let Err(ref e) = result {
@@ -1765,10 +1765,14 @@ impl<'a> Parser<'a> {
17651765
}
17661766

17671767
/// Rebuild the error for a cached prefix failure at the `found` token.
1768-
fn cached_prefix_error(&self, cached: ExprPrefixError, found: &TokenWithSpan) -> ParserError {
1768+
fn cached_prefix_error<T>(
1769+
&self,
1770+
cached: ExprPrefixError,
1771+
found: &TokenWithSpan,
1772+
) -> Result<T, ParserError> {
17691773
match cached {
1770-
ExprPrefixError::RecursionLimitExceeded => ParserError::RecursionLimitExceeded,
1771-
ExprPrefixError::Err => self.expected_ref::<()>("an expression", found).unwrap_err(),
1774+
ExprPrefixError::RecursionLimitExceeded => Err(ParserError::RecursionLimitExceeded),
1775+
ExprPrefixError::Err => self.expected_ref("an expression", found),
17721776
}
17731777
}
17741778

@@ -1867,7 +1871,7 @@ impl<'a> Parser<'a> {
18671871
.failed_reserved_word_prefix_positions
18681872
.get(&next_token_index)
18691873
{
1870-
Err(self.cached_prefix_error(cached, self.get_current_token()))
1874+
self.cached_prefix_error(cached, self.get_current_token())
18711875
} else {
18721876
self.try_parse(|parser| parser.parse_expr_prefix_by_reserved_word(&w, span))
18731877
};

0 commit comments

Comments
 (0)