| //@revisions: edition2018 edition2021 | |
| //@[edition2018] edition:2018 | |
| //@[edition2021] edition:2021 | |
| #![warn(clippy::manual_assert)] | |
| #![allow(dead_code, unused_doc_comments)] | |
| #![allow(clippy::nonminimal_bool, clippy::uninlined_format_args, clippy::useless_vec)] | |
| macro_rules! one { | |
| () => { | |
| 1 | |
| }; | |
| } | |
| fn main() { | |
| let a = vec![1, 2, 3]; | |
| let c = Some(2); | |
| if !a.is_empty() | |
| && a.len() == 3 | |
| && c.is_some() | |
| && !a.is_empty() | |
| && a.len() == 3 | |
| && !a.is_empty() | |
| && a.len() == 3 | |
| && !a.is_empty() | |
| && a.len() == 3 | |
| { | |
| panic!("qaqaq{:?}", a); | |
| } | |
| //~^ manual_assert | |
| assert!(a.is_empty(), "qaqaq{:?}", a); | |
| //~^ manual_assert | |
| assert!(a.is_empty(), "qwqwq"); | |
| if a.len() == 3 { | |
| println!("qwq"); | |
| println!("qwq"); | |
| println!("qwq"); | |
| } | |
| if let Some(b) = c { | |
| panic!("orz {}", b); | |
| } | |
| if a.len() == 3 { | |
| panic!("qaqaq"); | |
| } else { | |
| println!("qwq"); | |
| } | |
| let b = vec![1, 2, 3]; | |
| //~^ manual_assert | |
| assert!(!b.is_empty(), "panic1"); | |
| //~^ manual_assert | |
| assert!(!(b.is_empty() && a.is_empty()), "panic2"); | |
| //~^ manual_assert | |
| assert!(!(a.is_empty() && !b.is_empty()), "panic3"); | |
| //~^ manual_assert | |
| assert!(!(b.is_empty() || a.is_empty()), "panic4"); | |
| //~^ manual_assert | |
| assert!(!(a.is_empty() || !b.is_empty()), "panic5"); | |
| //~^ manual_assert | |
| assert!(!a.is_empty(), "with expansion {}", one!()); | |
| if a.is_empty() { | |
| let _ = 0; | |
| } else if a.len() == 1 { | |
| panic!("panic6"); | |
| } | |
| } | |
| fn issue7730(a: u8) { | |
| // Suggestion should preserve comment | |
| //~^ manual_assert | |
| // comment | |
| /* this is a | |
| multiline | |
| comment */ | |
| /// Doc comment | |
| // comment after `panic!` | |
| assert!(a <= 2, "panic with comment"); | |
| } | |
| fn issue12505() { | |
| struct Foo<T, const N: usize>(T); | |
| impl<T, const N: usize> Foo<T, N> { | |
| const BAR: () = //~^ manual_assert | |
| assert!(N != 0, ); | |
| } | |
| } | |
| fn issue15227(left: u64, right: u64) -> u64 { | |
| macro_rules! is_x86_feature_detected { | |
| ($feature:literal) => { | |
| $feature.len() > 0 && $feature.starts_with("ss") | |
| }; | |
| } | |
| //~^ manual_assert | |
| assert!(is_x86_feature_detected!("ssse3"), "SSSE3 is not supported"); | |
| unsafe { todo!() } | |
| } |