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