]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/toplevel_ref_arg.fixed
Auto merge of #8374 - Alexendoo:bless-revisions, r=camsteffen
[rust.git] / tests / ui / toplevel_ref_arg.fixed
index df3c15ed59e65d5823cf4211a000d4cdaed10946..b129d95c5602fd4d62e626d8f3c50517ea85d3f3 100644 (file)
@@ -1,27 +1,50 @@
 // run-rustfix
+// aux-build:macro_rules.rs
 
 #![warn(clippy::toplevel_ref_arg)]
-#![allow(unused)]
+
+#[macro_use]
+extern crate macro_rules;
+
+macro_rules! gen_binding {
+    () => {
+        let _y = &42;
+    };
+}
 
 fn main() {
     // Closures should not warn
     let y = |ref x| println!("{:?}", x);
     y(1u8);
 
-    let x = &1;
+    let _x = &1;
 
-    let y: &(&_, u8) = &(&1, 2);
+    let _y: &(&_, u8) = &(&1, 2);
 
-    let z = &(1 + 2);
+    let _z = &(1 + 2);
 
-    let z = &mut (1 + 2);
+    let _z = &mut (1 + 2);
 
     let (ref x, _) = (1, 2); // ok, not top level
     println!("The answer is {}.", x);
 
-    let x = &vec![1, 2, 3];
+    let _x = &vec![1, 2, 3];
 
     // Make sure that allowing the lint works
     #[allow(clippy::toplevel_ref_arg)]
-    let ref mut x = 1_234_543;
+    let ref mut _x = 1_234_543;
+
+    // ok
+    for ref _x in 0..10 {}
+
+    // lint in macro
+    #[allow(unused)]
+    {
+        gen_binding!();
+    }
+
+    // do not lint in external macro
+    {
+        ref_arg_binding!();
+    }
 }