diff options
| author | Kisaragi Marine <kisaragi.effective@gmail.com> | 2023-11-28 00:27:51 +0900 |
|---|---|---|
| committer | Kisaragi Marine <kisaragi.effective@gmail.com> | 2023-11-28 00:27:51 +0900 |
| commit | 33182495ac8045af2b20210dd628690c52332e44 (patch) | |
| tree | 96afacc6936b10039fbfef8c57441da46f125972 /clippy_lints | |
| parent | 40b6aa0e8622e54dbea4c99869d7d62b4313d0eb (diff) | |
don't add paren on occurrences that is in call args
Diffstat (limited to 'clippy_lints')
| -rw-r--r-- | clippy_lints/src/redundant_closure_call.rs | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/clippy_lints/src/redundant_closure_call.rs b/clippy_lints/src/redundant_closure_call.rs index efdd78a1c92..17a17890be7 100644 --- a/clippy_lints/src/redundant_closure_call.rs +++ b/clippy_lints/src/redundant_closure_call.rs @@ -5,7 +5,7 @@ use clippy_utils::sugg::Sugg; use rustc_errors::Applicability; use rustc_hir as hir; use rustc_hir::intravisit::{Visitor as HirVisitor, Visitor}; -use rustc_hir::{intravisit as hir_visit, CoroutineKind, CoroutineSource}; +use rustc_hir::{intravisit as hir_visit, CoroutineKind, CoroutineSource, Node}; use rustc_lint::{LateContext, LateLintPass}; use rustc_middle::hir::nested_filter; use rustc_middle::lint::in_external_macro; @@ -176,12 +176,19 @@ impl<'tcx> LateLintPass<'tcx> for RedundantClosureCall { hint = hint.asyncify(); } - diag.span_suggestion( - full_expr.span, - "try doing something like", - hint.maybe_par(), - applicability, - ); + let is_in_fn_call_arg = clippy_utils::get_parent_node(cx.tcx, expr.hir_id) + .map(|x| match x { + Node::Expr(expr) => matches!(expr.kind, hir::ExprKind::Call(_, _)), + _ => false, + }) + .unwrap_or(false); + + // avoid clippy::double_parens + if !is_in_fn_call_arg { + hint = hint.maybe_par() + }; + + diag.span_suggestion(full_expr.span, "try doing something like", hint, applicability); } }, ); |
