Skip to content

Commit

Permalink
Add UI test for needless_pass_by_ref_mut
Browse files Browse the repository at this point in the history
  • Loading branch information
GuillaumeGomez committed Jun 6, 2023
1 parent 1d8e20a commit 111f7ad
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
29 changes: 29 additions & 0 deletions tests/ui/needless_pass_by_ref_mut.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#![allow(unused)]

// Should only warn for `s`.
fn foo(s: &mut Vec<u32>, b: &u32, x: &mut u32) {
*x += *b + s.len() as u32;
}

struct Bar;

impl Bar {
// Should not warn on `&mut self`.
fn bar(&mut self) {}
}

trait Babar {
// Should not warn here since it's a trait method.
fn method(arg: &mut u32);
}

impl Babar for Bar {
// Should not warn here since it's a trait method.
fn method(a: &mut u32) {}
}

fn main() {
let mut u = 0;
foo(&mut vec![0], &0, &mut u);
println!("{u}");
}
10 changes: 10 additions & 0 deletions tests/ui/needless_pass_by_ref_mut.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
error: this argument is a mutable reference, but not used mutably
--> $DIR/needless_pass_by_ref_mut.rs:4:11
|
LL | fn foo(s: &mut Vec<u32>, b: &u32, x: &mut u32) {
| ^^^^^^^^^^^^^ help: consider changing to &Vec<u32>
|
= note: `-D clippy::needless-pass-by-ref-mut` implied by `-D warnings`

error: aborting due to previous error

0 comments on commit 111f7ad

Please sign in to comment.