X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=src%2Ftools%2Fclippy%2Ftests%2Fui%2Ftoplevel_ref_arg.fixed;fp=src%2Ftools%2Fclippy%2Ftests%2Fui%2Ftoplevel_ref_arg.fixed;h=b129d95c5602fd4d62e626d8f3c50517ea85d3f3;hb=f20569fa03b3b370f70f0df777c134d7f38d09e9;hp=0000000000000000000000000000000000000000;hpb=36d6ef2b3b6819c441d79135fddfee590bb92ee1;p=rustc.git diff --git a/src/tools/clippy/tests/ui/toplevel_ref_arg.fixed b/src/tools/clippy/tests/ui/toplevel_ref_arg.fixed new file mode 100644 index 0000000000..b129d95c56 --- /dev/null +++ b/src/tools/clippy/tests/ui/toplevel_ref_arg.fixed @@ -0,0 +1,50 @@ +// run-rustfix +// aux-build:macro_rules.rs + +#![warn(clippy::toplevel_ref_arg)] + +#[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 _y: &(&_, u8) = &(&1, 2); + + let _z = &(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]; + + // Make sure that allowing the lint works + #[allow(clippy::toplevel_ref_arg)] + 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!(); + } +}