79 lines
1.6 KiB
Rust
79 lines
1.6 KiB
Rust
#![warn(clippy::ifs_same_cond)]
|
|
#![allow(
|
|
clippy::if_same_then_else,
|
|
clippy::comparison_chain,
|
|
clippy::needless_if,
|
|
clippy::needless_else
|
|
)] // all empty blocks
|
|
|
|
fn ifs_same_cond() {
|
|
let a = 0;
|
|
let b = false;
|
|
|
|
if b {
|
|
} else if b {
|
|
//~^ ERROR: this `if` has the same condition as a previous `if`
|
|
}
|
|
|
|
if a == 1 {
|
|
} else if a == 1 {
|
|
//~^ ERROR: this `if` has the same condition as a previous `if`
|
|
}
|
|
|
|
if 2 * a == 1 {
|
|
} else if 2 * a == 2 {
|
|
} else if 2 * a == 1 {
|
|
//~^ ERROR: this `if` has the same condition as a previous `if`
|
|
} 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];
|
|
if v.pop().is_none() {
|
|
// ok, functions
|
|
} else if v.pop().is_none() {
|
|
}
|
|
|
|
if v.len() == 42 {
|
|
// ok, functions
|
|
} else if v.len() == 42 {
|
|
}
|
|
}
|
|
|
|
fn issue10272() {
|
|
let a = String::from("ha");
|
|
if a.contains("ah") {
|
|
} else if a.contains("ah") {
|
|
//~^ ERROR: this `if` has the same condition as a previous `if`
|
|
// 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 {
|
|
}
|
|
}
|
|
|
|
fn main() {}
|