// run-rustfix
#[warn(clippy::all, clippy::needless_borrow)]
-#[allow(unused_variables)]
+#[allow(unused_variables, clippy::unnecessary_mut_passed)]
fn main() {
let a = 5;
+ let ref_a = &a;
let _ = x(&a); // no warning
let _ = x(&a); // warn
44 => &a,
45 => {
println!("foo");
- &&a // FIXME: this should lint, too
+ &a
},
46 => &a,
+ 47 => {
+ println!("foo");
+ loop {
+ println!("{}", a);
+ if a == 25 {
+ break ref_a;
+ }
+ }
+ },
_ => panic!(),
};
+
+ let _ = x(&a);
+ let _ = x(&a);
+ let _ = x(&mut b);
+ let _ = x(ref_a);
+ {
+ let b = &mut b;
+ x(b);
+ }
+
+ // Issue #8191
+ let mut x = 5;
+ let mut x = &mut x;
+
+ mut_ref(x);
+ mut_ref(x);
+ let y: &mut i32 = x;
+ let y: &mut i32 = x;
+
+ let y = match 0 {
+ // Don't lint. Removing the borrow would move 'x'
+ 0 => &mut x,
+ _ => &mut *x,
+ };
+
+ *x = 5;
+
+ let s = String::new();
+ let _ = s.len();
+ let _ = s.capacity();
+ let _ = s.capacity();
+
+ let x = (1, 2);
+ let _ = x.0;
+ let x = &x as *const (i32, i32);
+ let _ = unsafe { (*x).0 };
}
#[allow(clippy::needless_borrowed_reference)]