| #![allow(unused)] |
| #![warn(clippy::missing_assert_message)] |
| |
| macro_rules! bar { |
| ($( $x:expr ),*) => { |
| foo() |
| }; |
| } |
| |
| // Should trigger warning |
| fn asserts_without_message() { |
| assert!(foo()); |
| //~^ ERROR: assert without any message |
| assert_eq!(foo(), foo()); |
| //~^ ERROR: assert without any message |
| assert_ne!(foo(), foo()); |
| //~^ ERROR: assert without any message |
| debug_assert!(foo()); |
| //~^ ERROR: assert without any message |
| debug_assert_eq!(foo(), foo()); |
| //~^ ERROR: assert without any message |
| debug_assert_ne!(foo(), foo()); |
| //~^ ERROR: assert without any message |
| } |
| |
| // Should trigger warning |
| fn asserts_without_message_but_with_macro_calls() { |
| assert!(bar!(true)); |
| //~^ ERROR: assert without any message |
| assert!(bar!(true, false)); |
| //~^ ERROR: assert without any message |
| assert_eq!(bar!(true), foo()); |
| //~^ ERROR: assert without any message |
| assert_ne!(bar!(true, true), bar!(true)); |
| //~^ ERROR: assert without any message |
| } |
| |
| // Should trigger warning |
| fn asserts_with_trailing_commas() { |
| assert!(foo(),); |
| //~^ ERROR: assert without any message |
| assert_eq!(foo(), foo(),); |
| //~^ ERROR: assert without any message |
| assert_ne!(foo(), foo(),); |
| //~^ ERROR: assert without any message |
| debug_assert!(foo(),); |
| //~^ ERROR: assert without any message |
| debug_assert_eq!(foo(), foo(),); |
| //~^ ERROR: assert without any message |
| debug_assert_ne!(foo(), foo(),); |
| //~^ ERROR: assert without any message |
| } |
| |
| // Should not trigger warning |
| fn asserts_with_message_and_with_macro_calls() { |
| assert!(bar!(true), "msg"); |
| assert!(bar!(true, false), "msg"); |
| assert_eq!(bar!(true), foo(), "msg"); |
| assert_ne!(bar!(true, true), bar!(true), "msg"); |
| } |
| |
| // Should not trigger warning |
| fn asserts_with_message() { |
| assert!(foo(), "msg"); |
| assert_eq!(foo(), foo(), "msg"); |
| assert_ne!(foo(), foo(), "msg"); |
| debug_assert!(foo(), "msg"); |
| debug_assert_eq!(foo(), foo(), "msg"); |
| debug_assert_ne!(foo(), foo(), "msg"); |
| } |
| |
| // Should not trigger warning |
| #[test] |
| fn asserts_without_message_but_inside_a_test_function() { |
| assert!(foo()); |
| assert_eq!(foo(), foo()); |
| assert_ne!(foo(), foo()); |
| debug_assert!(foo()); |
| debug_assert_eq!(foo(), foo()); |
| debug_assert_ne!(foo(), foo()); |
| } |
| |
| fn foo() -> bool { |
| true |
| } |
| |
| // Should not trigger warning |
| #[cfg(test)] |
| mod tests { |
| use super::foo; |
| fn asserts_without_message_but_inside_a_test_module() { |
| assert!(foo()); |
| assert_eq!(foo(), foo()); |
| assert_ne!(foo(), foo()); |
| debug_assert!(foo()); |
| debug_assert_eq!(foo(), foo()); |
| debug_assert_ne!(foo(), foo()); |
| } |
| } |