diff options
| author | sjwang05 <63834813+sjwang05@users.noreply.github.com> | 2023-10-27 15:14:55 -0700 |
|---|---|---|
| committer | sjwang05 <63834813+sjwang05@users.noreply.github.com> | 2023-12-26 20:59:14 -0800 |
| commit | 97cf1c87bd98c13f4de91f7afbc971dba829ac92 (patch) | |
| tree | 31444bc560707e904eb92f20262d97268664edc3 /compiler/rustc_parse/src/parser/diagnostics.rs | |
| parent | ed086d86b8b224f7df2da09cf48ac2a654bf841e (diff) | |
| download | rust-97cf1c87bd98c13f4de91f7afbc971dba829ac92.tar.gz rust-97cf1c87bd98c13f4de91f7afbc971dba829ac92.zip | |
Suggest `=>` --> `>=` in conditions
Diffstat (limited to 'compiler/rustc_parse/src/parser/diagnostics.rs')
| -rw-r--r-- | compiler/rustc_parse/src/parser/diagnostics.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/compiler/rustc_parse/src/parser/diagnostics.rs b/compiler/rustc_parse/src/parser/diagnostics.rs index 2a8eb6edd23..8803b243aa8 100644 --- a/compiler/rustc_parse/src/parser/diagnostics.rs +++ b/compiler/rustc_parse/src/parser/diagnostics.rs @@ -610,6 +610,26 @@ impl<'a> Parser<'a> { // FIXME: translation requires list formatting (for `expect`) let mut err = self.struct_span_err(self.token.span, msg_exp); + // Look for usages of '=>' where '>=' was probably intended + if self.token == token::FatArrow + && expected + .iter() + .any(|tok| matches!(tok, TokenType::Operator | TokenType::Token(TokenKind::Le))) + && !expected.iter().any(|tok| { + matches!( + tok, + TokenType::Token(TokenKind::FatArrow) | TokenType::Token(TokenKind::Comma) + ) + }) + { + err.span_suggestion( + self.token.span, + "you might have meant to write a \"greater than or equal to\" comparison", + ">=", + Applicability::MaybeIncorrect, + ); + } + if let TokenKind::Ident(symbol, _) = &self.prev_token.kind { if ["def", "fun", "func", "function"].contains(&symbol.as_str()) { err.span_suggestion_short( |
