From 6fb736bd42d487947d97a477e95b0b3f1ab7c8a6 Mon Sep 17 00:00:00 2001 From: sinkuu Date: Tue, 7 Nov 2017 06:33:25 +0900 Subject: [PATCH] Fix false positive in needless_pass_by_value trait methods --- clippy_lints/src/needless_pass_by_value.rs | 4 +++- tests/ui/needless_pass_by_value.rs | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/clippy_lints/src/needless_pass_by_value.rs b/clippy_lints/src/needless_pass_by_value.rs index 81edd58af57..c7410d29df4 100644 --- a/clippy_lints/src/needless_pass_by_value.rs +++ b/clippy_lints/src/needless_pass_by_value.rs @@ -87,7 +87,9 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for NeedlessPassByValue { // Exclude non-inherent impls if let Some(NodeItem(item)) = cx.tcx.hir.find(cx.tcx.hir.get_parent_node(node_id)) { - if matches!(item.node, ItemImpl(_, _, _, _, Some(_), _, _) | ItemAutoImpl(..)) { + if matches!(item.node, ItemImpl(_, _, _, _, Some(_), _, _) | ItemAutoImpl(..) | + ItemTrait(..)) + { return; } } diff --git a/tests/ui/needless_pass_by_value.rs b/tests/ui/needless_pass_by_value.rs index f4d490b214f..84c7e832951 100644 --- a/tests/ui/needless_pass_by_value.rs +++ b/tests/ui/needless_pass_by_value.rs @@ -103,4 +103,11 @@ impl S { } } +trait FalsePositive { + fn visit_str(s: &str); + fn visit_string(s: String) { + Self::visit_str(&s); + } +} + fn main() {}