diff options
| author | Ada Alakbarova <ada.alakbarova@proton.me> | 2025-08-20 00:49:30 +0200 |
|---|---|---|
| committer | Ada Alakbarova <ada.alakbarova@proton.me> | 2025-08-22 15:03:13 +0200 |
| commit | ff831ed40eaab37a13cb5f9a90b80ec97d74299c (patch) | |
| tree | c54c40c34058a7130a5d1c8ba7c64b6f45c5fb24 | |
| parent | f0daf23b28d72557cf8d5a859ec3e32c9dee9fb4 (diff) | |
| download | rust-ff831ed40eaab37a13cb5f9a90b80ec97d74299c.tar.gz rust-ff831ed40eaab37a13cb5f9a90b80ec97d74299c.zip | |
redundant_clone: partially inline `is_type_diagnostic_item`
to be able to reuse `did`
| -rw-r--r-- | clippy_lints/src/redundant_clone.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/clippy_lints/src/redundant_clone.rs b/clippy_lints/src/redundant_clone.rs index 193d9dda884..1d58cdd26d8 100644 --- a/clippy_lints/src/redundant_clone.rs +++ b/clippy_lints/src/redundant_clone.rs @@ -2,7 +2,7 @@ use clippy_utils::diagnostics::{span_lint_hir, span_lint_hir_and_then}; use clippy_utils::fn_has_unsatisfiable_preds; use clippy_utils::mir::{LocalUsage, PossibleBorrowerMap, visit_local_usage}; use clippy_utils::source::SpanRangeExt; -use clippy_utils::ty::{has_drop, is_copy, is_type_diagnostic_item, is_type_lang_item, walk_ptrs_ty_depth}; +use clippy_utils::ty::{has_drop, is_copy, is_type_lang_item, walk_ptrs_ty_depth}; use rustc_errors::Applicability; use rustc_hir::intravisit::FnKind; use rustc_hir::{Body, FnDecl, LangItem, def_id}; @@ -147,8 +147,9 @@ impl<'tcx> LateLintPass<'tcx> for RedundantClone { is_call_with_ref_arg(cx, mir, &pred_terminator.kind) && res == cloned && cx.tcx.is_diagnostic_item(sym::deref_method, pred_fn_def_id) - && (is_type_diagnostic_item(cx, pred_arg_ty, sym::PathBuf) - || is_type_diagnostic_item(cx, pred_arg_ty, sym::OsString)) + && let ty::Adt(pred_arg_def, _) = pred_arg_ty.kind() + && let Some(pred_arg_name) = cx.tcx.get_diagnostic_name(pred_arg_def.did()) + && matches!(pred_arg_name, sym::PathBuf | sym::OsString) { (pred_arg, res) } else { |
