2019-09-18 01:37:41 -05:00
|
|
|
#![warn(clippy::double_must_use)]
|
2020-10-23 15:16:59 -05:00
|
|
|
#![allow(clippy::result_unit_err)]
|
2019-09-18 01:37:41 -05:00
|
|
|
|
|
|
|
#[must_use]
|
|
|
|
pub fn must_use_result() -> Result<(), ()> {
|
2024-08-24 16:34:45 -05:00
|
|
|
//~^ ERROR: this function has a `#[must_use]` attribute with no message, but returns a type already
|
2019-09-18 01:37:41 -05:00
|
|
|
unimplemented!();
|
|
|
|
}
|
|
|
|
|
|
|
|
#[must_use]
|
|
|
|
pub fn must_use_tuple() -> (Result<(), ()>, u8) {
|
2024-08-24 16:34:45 -05:00
|
|
|
//~^ ERROR: this function has a `#[must_use]` attribute with no message, but returns a type already
|
2019-09-18 01:37:41 -05:00
|
|
|
unimplemented!();
|
|
|
|
}
|
|
|
|
|
|
|
|
#[must_use]
|
|
|
|
pub fn must_use_array() -> [Result<(), ()>; 1] {
|
2024-08-24 16:34:45 -05:00
|
|
|
//~^ ERROR: this function has a `#[must_use]` attribute with no message, but returns a type already
|
2019-09-18 01:37:41 -05:00
|
|
|
unimplemented!();
|
|
|
|
}
|
|
|
|
|
|
|
|
#[must_use = "With note"]
|
|
|
|
pub fn must_use_with_note() -> Result<(), ()> {
|
|
|
|
unimplemented!();
|
|
|
|
}
|
|
|
|
|
2023-04-11 08:31:08 -05:00
|
|
|
// vvvv Should not lint (#10486)
|
|
|
|
#[must_use]
|
|
|
|
async fn async_must_use() -> usize {
|
|
|
|
unimplemented!();
|
|
|
|
}
|
|
|
|
|
|
|
|
#[must_use]
|
|
|
|
async fn async_must_use_result() -> Result<(), ()> {
|
2024-08-24 16:34:45 -05:00
|
|
|
//~^ ERROR: this function has a `#[must_use]` attribute with no message, but returns a type already
|
2023-04-11 08:31:08 -05:00
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
|
2019-09-18 01:37:41 -05:00
|
|
|
fn main() {
|
|
|
|
must_use_result();
|
|
|
|
must_use_tuple();
|
|
|
|
must_use_with_note();
|
|
|
|
}
|