about summary refs log tree commit diff
path: root/clippy_lints/src/mem_replace.rs
diff options
context:
space:
mode:
authorGabriel Fernandes <fernandesbgabriel@gmail.com>2024-02-11 21:11:13 -0300
committerGabriel Fernandes <fernandesbgabriel@gmail.com>2024-02-11 21:11:13 -0300
commit83555914edf10727bab5a97113ce2b3faa9abb7b (patch)
tree6004a80b162867b802cbd35883946c2f6ee8eabf /clippy_lints/src/mem_replace.rs
parentfff46c1667a0f104e4537f638abfa35527bb541b (diff)
[mem_replace_with_default] No longer triggers on unused expression
Diffstat (limited to 'clippy_lints/src/mem_replace.rs')
-rw-r--r--clippy_lints/src/mem_replace.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/clippy_lints/src/mem_replace.rs b/clippy_lints/src/mem_replace.rs
index fa4f4a47e38..1cdb7921f81 100644
--- a/clippy_lints/src/mem_replace.rs
+++ b/clippy_lints/src/mem_replace.rs
@@ -3,7 +3,9 @@ use clippy_utils::diagnostics::{span_lint_and_help, span_lint_and_sugg, span_lin
 use clippy_utils::source::{snippet, snippet_with_applicability};
 use clippy_utils::sugg::Sugg;
 use clippy_utils::ty::is_non_aggregate_primitive_type;
-use clippy_utils::{is_default_equivalent, is_res_lang_ctor, path_res, peel_ref_operators, std_or_core};
+use clippy_utils::{
+    is_default_equivalent, is_expr_used_or_unified, is_res_lang_ctor, path_res, peel_ref_operators, std_or_core,
+};
 use rustc_errors::Applicability;
 use rustc_hir::LangItem::OptionNone;
 use rustc_hir::{Expr, ExprKind};
@@ -232,7 +234,7 @@ impl<'tcx> LateLintPass<'tcx> for MemReplace {
             // Check that second argument is `Option::None`
             if is_res_lang_ctor(cx, path_res(cx, src), OptionNone) {
                 check_replace_option_with_none(cx, dest, expr.span);
-            } else if self.msrv.meets(msrvs::MEM_TAKE) {
+            } else if self.msrv.meets(msrvs::MEM_TAKE) && is_expr_used_or_unified(cx.tcx, expr) {
                 check_replace_with_default(cx, src, dest, expr.span);
             }
             check_replace_with_uninit(cx, src, dest, expr.span);