#![warn(clippy::comparison_to_empty)] #![allow(clippy::borrow_deref_ref, clippy::needless_if, clippy::useless_vec)] fn main() { // Disallow comparisons to empty let s = String::new(); let _ = s.is_empty(); //~^ comparison_to_empty let _ = !s.is_empty(); //~^ comparison_to_empty let v = vec![0]; let _ = v.is_empty(); //~^ comparison_to_empty let _ = !v.is_empty(); //~^ comparison_to_empty if (*v).is_empty() {} //~^ comparison_to_empty let s = [0].as_slice(); if s.is_empty() {} //~^ comparison_to_empty if s.is_empty() {} //~^ comparison_to_empty if s.is_empty() //~^ comparison_to_empty && s.is_empty() //~^ comparison_to_empty {} // Allow comparisons to non-empty let s = String::new(); let _ = s == " "; let _ = s != " "; let v = vec![0]; let _ = v == [0]; let _ = v != [0]; if let [0] = &*v {} let s = [0].as_slice(); if let [0] = s {} if let [0] = &*s && s == [0] {} // Also lint the `PartialEq` methods let s = String::new(); let _ = s.is_empty(); //~^ comparison_to_empty let _ = !s.is_empty(); //~^ comparison_to_empty let v = vec![0]; let _ = v.is_empty(); //~^ comparison_to_empty let _ = !v.is_empty(); //~^ comparison_to_empty }