#![allow(dead_code)] #![deny(clippy::if_same_then_else, clippy::branches_sharing_code)] use std::sync::Mutex; // ################################## // # Issue clippy#7369 // ################################## #[derive(Debug)] pub struct FooBar { foo: Vec, } impl FooBar { pub fn bar(&mut self) { if true { self.foo.pop(); } else { self.baz(); self.foo.pop(); self.baz() } } fn baz(&mut self) {} } fn foo(x: u32, y: u32) -> u32 { x / y } fn main() { let x = (1, 2); let _ = if true { let (x, y) = x; foo(x, y) } else { let (y, x) = x; foo(x, y) }; let m = Mutex::new(0u32); let l = m.lock().unwrap(); let _ = if true { drop(l); println!("foo"); m.lock().unwrap(); 0 } else if *l == 0 { drop(l); println!("foo"); println!("bar"); m.lock().unwrap(); 1 } else { drop(l); println!("foo"); println!("baz"); m.lock().unwrap(); 2 }; if true { let _guard = m.lock(); println!("foo"); } else { println!("foo"); } if true { let _guard = m.lock(); println!("foo"); println!("bar"); } else { let _guard = m.lock(); println!("foo"); println!("baz"); } let mut c = 0; for _ in 0..5 { if c == 0 { c += 1; println!("0"); } else if c == 1 { c += 1; println!("1"); } else { c += 1; println!("more"); } } }