| //@ check-pass |
| |
| #![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<u32>, |
| } |
| |
| 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"); |
| } |
| } |
| } |