about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNahua Kang <kangnahua@gmail.com>2022-08-23 19:05:57 +0200
committerNahua Kang <kangnahua@gmail.com>2022-08-23 19:05:57 +0200
commita6444a69e27275c69e7287fe02ba0c88d554c445 (patch)
treee265d1a1ef5434669f7b7738b6b4228acede9e56
parent5735a3bef6db84156d78d05fdd43e6332687cf2c (diff)
downloadrust-a6444a69e27275c69e7287fe02ba0c88d554c445.tar.gz
rust-a6444a69e27275c69e7287fe02ba0c88d554c445.zip
Remove if_chain from equatable_if_let
-rw-r--r--clippy_lints/src/equatable_if_let.rs59
1 files changed, 27 insertions, 32 deletions
diff --git a/clippy_lints/src/equatable_if_let.rs b/clippy_lints/src/equatable_if_let.rs
index fdfb821ac78..ba615c8c164 100644
--- a/clippy_lints/src/equatable_if_let.rs
+++ b/clippy_lints/src/equatable_if_let.rs
@@ -1,7 +1,6 @@
 use clippy_utils::diagnostics::span_lint_and_sugg;
 use clippy_utils::source::snippet_with_context;
 use clippy_utils::ty::implements_trait;
-use if_chain::if_chain;
 use rustc_errors::Applicability;
 use rustc_hir::{Expr, ExprKind, Pat, PatKind};
 use rustc_lint::{LateContext, LateLintPass, LintContext};
@@ -67,37 +66,33 @@ fn is_structural_partial_eq<'tcx>(cx: &LateContext<'tcx>, ty: Ty<'tcx>, other: T
 
 impl<'tcx> LateLintPass<'tcx> for PatternEquality {
     fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) {
-        if_chain! {
-            if !in_external_macro(cx.sess(), expr.span);
-            if let ExprKind::Let(let_expr) = expr.kind;
-            if unary_pattern(let_expr.pat);
-            let exp_ty = cx.typeck_results().expr_ty(let_expr.init);
-            let pat_ty = cx.typeck_results().pat_ty(let_expr.pat);
-            if is_structural_partial_eq(cx, exp_ty, pat_ty);
-            then {
-
-                let mut applicability = Applicability::MachineApplicable;
-                let pat_str = match let_expr.pat.kind {
-                    PatKind::Struct(..) => format!(
-                        "({})",
-                        snippet_with_context(cx, let_expr.pat.span, expr.span.ctxt(), "..", &mut applicability).0,
-                    ),
-                    _ => snippet_with_context(cx, let_expr.pat.span, expr.span.ctxt(), "..", &mut applicability).0.to_string(),
-                };
-                span_lint_and_sugg(
-                    cx,
-                    EQUATABLE_IF_LET,
-                    expr.span,
-                    "this pattern matching can be expressed using equality",
-                    "try",
-                    format!(
-                        "{} == {}",
-                        snippet_with_context(cx, let_expr.init.span, expr.span.ctxt(), "..", &mut applicability).0,
-                        pat_str,
-                    ),
-                    applicability,
-                );
-            }
+        if !in_external_macro(cx.sess(), expr.span)
+            && let ExprKind::Let(let_expr) = expr.kind
+            && unary_pattern(let_expr.pat)
+            && let exp_ty = cx.typeck_results().expr_ty(let_expr.init)
+            && let pat_ty = cx.typeck_results().pat_ty(let_expr.pat)
+            && is_structural_partial_eq(cx, exp_ty, pat_ty) {
+            let mut applicability = Applicability::MachineApplicable;
+            let pat_str = match let_expr.pat.kind {
+                PatKind::Struct(..) => format!(
+                    "({})",
+                    snippet_with_context(cx, let_expr.pat.span, expr.span.ctxt(), "..", &mut applicability).0,
+                ),
+                _ => snippet_with_context(cx, let_expr.pat.span, expr.span.ctxt(), "..", &mut applicability).0.to_string(),
+            };
+            span_lint_and_sugg(
+                cx,
+                EQUATABLE_IF_LET,
+                expr.span,
+                "this pattern matching can be expressed using equality",
+                "try",
+                format!(
+                    "{} == {}",
+                    snippet_with_context(cx, let_expr.init.span, expr.span.ctxt(), "..", &mut applicability).0,
+                    pat_str,
+                ),
+                applicability,
+            );
         }
     }
 }