about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSamarth1696 <samarthrobo03@gmail.com>2024-07-27 02:35:16 +0530
committerSamarth1696 <samarthrobo03@gmail.com>2024-09-07 13:21:14 +0530
commitbed44418eca84e81c7efa7a3ee45f450b8a834f4 (patch)
tree3175b4847b4f11de6d6345a00f741f5ea8020778
parent0f99aa992ea19b0148767c137ff1a936d58b65e0 (diff)
downloadrust-bed44418eca84e81c7efa7a3ee45f450b8a834f4.tar.gz
rust-bed44418eca84e81c7efa7a3ee45f450b8a834f4.zip
refactored the code
-rw-r--r--clippy_lints/src/non_zero_suggestions.rs31
1 files changed, 15 insertions, 16 deletions
diff --git a/clippy_lints/src/non_zero_suggestions.rs b/clippy_lints/src/non_zero_suggestions.rs
index fc2920868d4..1624c365ee9 100644
--- a/clippy_lints/src/non_zero_suggestions.rs
+++ b/clippy_lints/src/non_zero_suggestions.rs
@@ -48,23 +48,22 @@ declare_lint_pass!(NonZeroSuggestions => [NON_ZERO_SUGGESTIONS]);
 
 impl<'tcx> LateLintPass<'tcx> for NonZeroSuggestions {
     fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) {
-        if let ExprKind::Call(func, [arg]) = expr.kind {
-            if let ExprKind::Path(qpath) = &func.kind {
-                if let Some(def_id) = cx.qpath_res(qpath, func.hir_id).opt_def_id() {
-                    let fn_name = cx.tcx.item_name(def_id);
-                    let target_ty = cx.typeck_results().expr_ty(expr);
+        if let ExprKind::Call(func, [arg]) = expr.kind
+            && let ExprKind::Path(qpath) = &func.kind
+            && let Some(def_id) = cx.qpath_res(qpath, func.hir_id).opt_def_id()
+            && let ExprKind::MethodCall(rcv_path, receiver, _, _) = &arg.kind
+        {
+            let fn_name = cx.tcx.item_name(def_id);
+            let target_ty = cx.typeck_results().expr_ty(expr);
+            let receiver_ty = cx.typeck_results().expr_ty(receiver);
 
-                    if let ExprKind::MethodCall(rcv_path, receiver, _, _) = &arg.kind {
-                        let receiver_ty = cx.typeck_results().expr_ty(receiver);
-                        if let ty::Adt(adt_def, _) = receiver_ty.kind() {
-                            if adt_def.is_struct() && cx.tcx.get_diagnostic_name(adt_def.did()) == Some(sym::NonZero) {
-                                if let Some(target_non_zero_type) = get_target_non_zero_type(target_ty) {
-                                    let arg_snippet = get_arg_snippet(cx, arg, rcv_path);
-                                    suggest_non_zero_conversion(cx, expr, fn_name, target_non_zero_type, &arg_snippet);
-                                }
-                            }
-                        }
-                    }
+            if let ty::Adt(adt_def, _) = receiver_ty.kind()
+                && adt_def.is_struct()
+                && cx.tcx.get_diagnostic_name(adt_def.did()) == Some(sym::NonZero)
+            {
+                if let Some(target_non_zero_type) = get_target_non_zero_type(target_ty) {
+                    let arg_snippet = get_arg_snippet(cx, arg, rcv_path);
+                    suggest_non_zero_conversion(cx, expr, fn_name, target_non_zero_type, &arg_snippet);
                 }
             }
         }