| //@aux-build:proc_macro_derive.rs |
| #![warn(clippy::ignored_unit_patterns)] |
| #![allow(clippy::let_unit_value, clippy::redundant_pattern_matching, clippy::single_match)] |
| |
| fn foo() -> Result<(), ()> { |
| unimplemented!() |
| } |
| |
| fn main() { |
| match foo() { |
| Ok(()) => {}, //~ ERROR: matching over `()` is more explicit |
| Err(()) => {}, //~ ERROR: matching over `()` is more explicit |
| } |
| if let Ok(()) = foo() {} |
| //~^ ERROR: matching over `()` is more explicit |
| let _ = foo().map_err(|()| todo!()); |
| //~^ ERROR: matching over `()` is more explicit |
| |
| println!( |
| "{:?}", |
| match foo() { |
| Ok(()) => {}, |
| //~^ ERROR: matching over `()` is more explicit |
| Err(()) => {}, |
| //~^ ERROR: matching over `()` is more explicit |
| } |
| ); |
| } |
| |
| // ignored_unit_patterns in derive macro should be ok |
| #[derive(proc_macro_derive::StructIgnoredUnitPattern)] |
| pub struct B; |
| |
| #[allow(unused)] |
| pub fn moo(_: ()) { |
| let () = foo().unwrap(); |
| //~^ ERROR: matching over `()` is more explicit |
| let _: () = foo().unwrap(); |
| let _: () = (); |
| } |
| |
| fn test_unit_ref_1() { |
| let x: (usize, &&&&&()) = (1, &&&&&&()); |
| match x { |
| (1, ()) => unimplemented!(), |
| //~^ ERROR: matching over `()` is more explicit |
| _ => unimplemented!(), |
| }; |
| } |
| |
| fn test_unit_ref_2(v: &[(usize, ())]) { |
| for (x, ()) in v { |
| //~^ ERROR: matching over `()` is more explicit |
| let _ = x; |
| } |
| } |