about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFabian Wolff <fabian.wolff@alumni.ethz.ch>2021-10-04 22:13:00 +0200
committerFabian Wolff <fabian.wolff@alumni.ethz.ch>2021-10-04 22:13:00 +0200
commit079c075f24d2aae84cd6715f350cf56420816f63 (patch)
tree9aef3bf0be630852c057cf9014a39bd668d38ec6
parentcf19131cb356591d27dded5bdb1d00df1bd077c9 (diff)
downloadrust-079c075f24d2aae84cd6715f350cf56420816f63.tar.gz
rust-079c075f24d2aae84cd6715f350cf56420816f63.zip
Use `TokenKind::similar_tokens()`
-rw-r--r--compiler/rustc_ast/src/token.rs1
-rw-r--r--compiler/rustc_parse/src/parser/expr.rs5
2 files changed, 5 insertions, 1 deletions
diff --git a/compiler/rustc_ast/src/token.rs b/compiler/rustc_ast/src/token.rs
index 3a65ffe41ae..db066d7c6a5 100644
--- a/compiler/rustc_ast/src/token.rs
+++ b/compiler/rustc_ast/src/token.rs
@@ -295,6 +295,7 @@ impl TokenKind {
         match *self {
             Comma => Some(vec![Dot, Lt, Semi]),
             Semi => Some(vec![Colon, Comma]),
+            FatArrow => Some(vec![Eq, RArrow]),
             _ => None,
         }
     }
diff --git a/compiler/rustc_parse/src/parser/expr.rs b/compiler/rustc_parse/src/parser/expr.rs
index e6a0c4c7952..79f46be73f6 100644
--- a/compiler/rustc_parse/src/parser/expr.rs
+++ b/compiler/rustc_parse/src/parser/expr.rs
@@ -2324,7 +2324,10 @@ impl<'a> Parser<'a> {
             let arrow_span = this.token.span;
             if let Err(mut err) = this.expect(&token::FatArrow) {
                 // We might have a `=>` -> `=` or `->` typo (issue #89396).
-                if let token::Eq | token::RArrow = this.token.kind {
+                if TokenKind::FatArrow
+                    .similar_tokens()
+                    .map_or(false, |similar_tokens| similar_tokens.contains(&this.token.kind))
+                {
                     err.span_suggestion(
                         this.token.span,
                         "try using a fat arrow here",