#![warn(clippy::drop_non_drop)] | |
use core::mem::drop; | |
fn make_result<T>(t: T) -> Result<T, ()> { | |
Ok(t) | |
} | |
#[must_use] | |
fn must_use<T>(t: T) -> T { | |
t | |
} | |
fn drop_generic<T>(t: T) { | |
// Don't lint | |
drop(t) | |
} | |
fn main() { | |
struct Foo; | |
// Lint | |
drop(Foo); | |
//~^ drop_non_drop | |
// Don't lint | |
drop(make_result(Foo)); | |
// Don't lint | |
drop(must_use(Foo)); | |
struct Bar; | |
impl Drop for Bar { | |
fn drop(&mut self) {} | |
} | |
// Don't lint | |
drop(Bar); | |
struct Baz<T>(T); | |
// Lint | |
drop(Baz(Foo)); | |
//~^ drop_non_drop | |
// Don't lint | |
drop(Baz(Bar)); | |
} |