diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-03-21 19:00:14 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-21 19:00:14 +0100 |
| commit | 96f35ed7200db11d86fbc3057e10c9df5793766a (patch) | |
| tree | c80c2b6181f24a74223c84f46b3f36e1656913cd /compiler/rustc_parse/src/parser | |
| parent | 25b062d586118b2c58e151ed4f0aa467271b03d9 (diff) | |
| parent | 93eeb127241928a2c64b0bd8c81d5ed859b864aa (diff) | |
| download | rust-96f35ed7200db11d86fbc3057e10c9df5793766a.tar.gz rust-96f35ed7200db11d86fbc3057e10c9df5793766a.zip | |
Rollup merge of #109415 - nnethercote:refactor-handle_missing_lit, r=petrochenkov
Refactor `handle_missing_lit`. A small code readability improvement. r? ```@petrochenkov```
Diffstat (limited to 'compiler/rustc_parse/src/parser')
| -rw-r--r-- | compiler/rustc_parse/src/parser/expr.rs | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/compiler/rustc_parse/src/parser/expr.rs b/compiler/rustc_parse/src/parser/expr.rs index 296eb4d653c..8b69b3cb036 100644 --- a/compiler/rustc_parse/src/parser/expr.rs +++ b/compiler/rustc_parse/src/parser/expr.rs @@ -1843,20 +1843,14 @@ impl<'a> Parser<'a> { &mut self, mk_lit_char: impl FnOnce(Symbol, Span) -> L, ) -> PResult<'a, L> { - if let token::Interpolated(inner) = &self.token.kind { - let expr = match inner.as_ref() { - token::NtExpr(expr) => Some(expr), - token::NtLiteral(expr) => Some(expr), - _ => None, - }; - if let Some(expr) = expr { - if matches!(expr.kind, ExprKind::Err) { - let mut err = errors::InvalidInterpolatedExpression { span: self.token.span } - .into_diagnostic(&self.sess.span_diagnostic); - err.downgrade_to_delayed_bug(); - return Err(err); - } - } + if let token::Interpolated(nt) = &self.token.kind + && let token::NtExpr(e) | token::NtLiteral(e) = &**nt + && matches!(e.kind, ExprKind::Err) + { + let mut err = errors::InvalidInterpolatedExpression { span: self.token.span } + .into_diagnostic(&self.sess.span_diagnostic); + err.downgrade_to_delayed_bug(); + return Err(err); } let token = self.token.clone(); let err = |self_: &Self| { |
