2019-01-02 06:59:48 +00:00
|
|
|
#![warn(clippy::ifs_same_cond)]
|
2019-09-24 21:55:05 +00:00
|
|
|
#![allow(clippy::if_same_then_else, clippy::comparison_chain)] // all empty blocks
|
2019-01-02 06:59:48 +00:00
|
|
|
|
|
|
|
fn ifs_same_cond() {
|
|
|
|
let a = 0;
|
|
|
|
let b = false;
|
|
|
|
|
|
|
|
if b {
|
|
|
|
} else if b {
|
|
|
|
//~ ERROR ifs same condition
|
|
|
|
}
|
|
|
|
|
|
|
|
if a == 1 {
|
|
|
|
} else if a == 1 {
|
|
|
|
//~ ERROR ifs same condition
|
|
|
|
}
|
|
|
|
|
|
|
|
if 2 * a == 1 {
|
|
|
|
} else if 2 * a == 2 {
|
|
|
|
} else if 2 * a == 1 {
|
|
|
|
//~ ERROR ifs same condition
|
|
|
|
} else if a == 1 {
|
|
|
|
}
|
|
|
|
|
|
|
|
// See #659
|
|
|
|
if cfg!(feature = "feature1-659") {
|
|
|
|
1
|
|
|
|
} else if cfg!(feature = "feature2-659") {
|
|
|
|
2
|
|
|
|
} else {
|
|
|
|
3
|
|
|
|
};
|
|
|
|
|
|
|
|
let mut v = vec![1];
|
2022-08-11 17:42:16 +00:00
|
|
|
if v.pop().is_none() {
|
2019-01-02 06:59:48 +00:00
|
|
|
// ok, functions
|
2022-08-11 17:42:16 +00:00
|
|
|
} else if v.pop().is_none() {
|
2019-01-02 06:59:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if v.len() == 42 {
|
|
|
|
// ok, functions
|
|
|
|
} else if v.len() == 42 {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-03-24 13:04:35 +00:00
|
|
|
fn issue10272() {
|
|
|
|
let a = String::from("ha");
|
|
|
|
if a.contains("ah") {
|
|
|
|
} else if a.contains("ah") {
|
|
|
|
// Trigger this lint
|
|
|
|
} else if a.contains("ha") {
|
|
|
|
} else if a == "wow" {
|
|
|
|
}
|
|
|
|
|
|
|
|
let p: *mut i8 = std::ptr::null_mut();
|
|
|
|
if p.is_null() {
|
|
|
|
} else if p.align_offset(0) == 0 {
|
|
|
|
} else if p.is_null() {
|
|
|
|
// ok, p is mutable pointer
|
|
|
|
} else {
|
|
|
|
}
|
|
|
|
|
|
|
|
let x = std::cell::Cell::new(true);
|
|
|
|
if x.get() {
|
|
|
|
} else if !x.take() {
|
|
|
|
} else if x.get() {
|
|
|
|
// ok, x is interior mutable type
|
|
|
|
} else {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-01-02 06:59:48 +00:00
|
|
|
fn main() {}
|