X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=src%2Ftools%2Fclippy%2Ftests%2Fui%2Fblocks_in_if_conditions.rs;fp=src%2Ftools%2Fclippy%2Ftests%2Fui%2Fblocks_in_if_conditions.rs;h=69387ff5782b33d6451be91fe14c4a019dd1adf5;hb=a33a295584b7f296fedf3a50990e6b12210adf59;hp=0000000000000000000000000000000000000000;hpb=9c18a685fcfe68770bcd6ddb2059847f28403b69;p=rustc.git diff --git a/src/tools/clippy/tests/ui/blocks_in_if_conditions.rs b/src/tools/clippy/tests/ui/blocks_in_if_conditions.rs new file mode 100644 index 0000000000..69387ff578 --- /dev/null +++ b/src/tools/clippy/tests/ui/blocks_in_if_conditions.rs @@ -0,0 +1,65 @@ +// run-rustfix +#![warn(clippy::blocks_in_if_conditions)] +#![allow(unused, clippy::let_and_return)] +#![warn(clippy::nonminimal_bool)] + +macro_rules! blocky { + () => {{ true }}; +} + +macro_rules! blocky_too { + () => {{ + let r = true; + r + }}; +} + +fn macro_if() { + if blocky!() {} + + if blocky_too!() {} +} + +fn condition_has_block() -> i32 { + if { + let x = 3; + x == 3 + } { + 6 + } else { + 10 + } +} + +fn condition_has_block_with_single_expression() -> i32 { + if { true } { 6 } else { 10 } +} + +fn condition_is_normal() -> i32 { + let x = 3; + if true && x == 3 { 6 } else { 10 } +} + +fn condition_is_unsafe_block() { + let a: i32 = 1; + + // this should not warn because the condition is an unsafe block + if unsafe { 1u32 == std::mem::transmute(a) } { + println!("1u32 == a"); + } +} + +fn block_in_assert() { + let opt = Some(42); + assert!( + opt.as_ref() + .map(|val| { + let mut v = val * 2; + v -= 1; + v * 3 + }) + .is_some() + ); +} + +fn main() {}