2023-10-06 15:35:45 +00:00
|
|
|
//@aux-build:proc_macro_derive.rs
|
2023-08-11 12:05:13 +00:00
|
|
|
#![warn(clippy::ignored_unit_patterns)]
|
2023-09-12 16:13:53 +00:00
|
|
|
#![allow(clippy::let_unit_value, clippy::redundant_pattern_matching, clippy::single_match)]
|
2023-08-11 12:05:13 +00:00
|
|
|
|
|
|
|
fn foo() -> Result<(), ()> {
|
|
|
|
unimplemented!()
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
match foo() {
|
2023-09-12 16:13:53 +00:00
|
|
|
Ok(_) => {}, //~ ERROR: matching over `()` is more explicit
|
|
|
|
Err(_) => {}, //~ ERROR: matching over `()` is more explicit
|
2023-08-11 12:05:13 +00:00
|
|
|
}
|
|
|
|
if let Ok(_) = foo() {}
|
2023-09-12 16:13:53 +00:00
|
|
|
//~^ ERROR: matching over `()` is more explicit
|
2023-08-11 12:05:13 +00:00
|
|
|
let _ = foo().map_err(|_| todo!());
|
2023-09-12 16:13:53 +00:00
|
|
|
//~^ ERROR: matching over `()` is more explicit
|
2023-10-06 15:35:45 +00:00
|
|
|
|
|
|
|
println!(
|
|
|
|
"{:?}",
|
|
|
|
match foo() {
|
|
|
|
Ok(_) => {},
|
|
|
|
//~^ ERROR: matching over `()` is more explicit
|
|
|
|
Err(_) => {},
|
|
|
|
//~^ ERROR: matching over `()` is more explicit
|
|
|
|
}
|
|
|
|
);
|
2023-09-12 16:13:53 +00:00
|
|
|
}
|
|
|
|
|
2023-10-06 15:35:45 +00:00
|
|
|
// ignored_unit_patterns in derive macro should be ok
|
|
|
|
#[derive(proc_macro_derive::StructIgnoredUnitPattern)]
|
|
|
|
pub struct B;
|
|
|
|
|
2023-09-12 16:13:53 +00:00
|
|
|
#[allow(unused)]
|
|
|
|
pub fn moo(_: ()) {
|
|
|
|
let _ = foo().unwrap();
|
|
|
|
//~^ ERROR: matching over `()` is more explicit
|
|
|
|
let _: () = foo().unwrap();
|
|
|
|
let _: () = ();
|
2023-08-11 12:05:13 +00:00
|
|
|
}
|