Suggest => --> >= in conditions

This commit is contained in:
sjwang05 2023-10-27 15:14:55 -07:00
parent ed086d86b8
commit 97cf1c87bd
No known key found for this signature in database
GPG key ID: 8725BCA68FE25D6C
6 changed files with 230 additions and 0 deletions

View file

@ -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(