File tree Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Expand file tree Collapse file tree 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 {
114114
115115 let orig_ty = expr_ty. peel_refs ( ) ;
116116
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+ {
118123 cx. emit_spanned_lint (
119124 NOOP_METHOD_CALL ,
120125 span,
Original file line number Diff line number Diff line change 11// check-pass
22// run-rustfix
33
4+ #![ feature( rustc_attrs) ]
45#![ allow( unused) ]
56
67use std:: borrow:: Borrow ;
@@ -49,3 +50,15 @@ fn non_generic(non_clone_type: &PlainType<u32>) {
4950 non_clone_type. clone ( ) ;
5051 //~^ WARN call to `.clone()` on a reference in this situation does nothing
5152}
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