File tree 2 files changed +19
-1
lines changed
2 files changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -114,7 +114,12 @@ impl<'tcx> LateLintPass<'tcx> for NoopMethodCall {
114
114
115
115
let orig_ty = expr_ty.peel_refs();
116
116
117
- if receiver_ty == expr_ty {
117
+ if receiver_ty == expr_ty
118
+ && matches!(
119
+ name,
120
+ sym::noop_method_borrow | sym::noop_method_clone | sym::noop_method_deref
121
+ )
122
+ {
118
123
cx.emit_spanned_lint(
119
124
NOOP_METHOD_CALL,
120
125
span,
Original file line number Diff line number Diff line change 1
1
// check-pass
2
2
// run-rustfix
3
3
4
+ #![feature(rustc_attrs)]
4
5
#![allow(unused)]
5
6
6
7
use std::borrow::Borrow;
@@ -49,3 +50,15 @@ fn non_generic(non_clone_type: &PlainType<u32>) {
49
50
non_clone_type.clone();
50
51
//~^ WARN call to `.clone()` on a reference in this situation does nothing
51
52
}
53
+
54
+ struct DiagnosticClone;
55
+ impl Clone for DiagnosticClone {
56
+ #[rustc_diagnostic_item = "other_clone"]
57
+ fn clone(&self) -> Self {
58
+ DiagnosticClone
59
+ }
60
+ }
61
+
62
+ fn with_other_diagnostic_item(x: DiagnosticClone) {
63
+ x.clone();
64
+ }
You can’t perform that action at this time.
0 commit comments