#![warn(clippy::drop_non_drop)] use core::mem::drop; fn make_result(t: T) -> Result { Ok(t) } #[must_use] fn must_use(t: T) -> T { t } fn drop_generic(t: T) { // Don't lint drop(t) } fn main() { struct Foo; // Lint drop(Foo); // 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); // Lint drop(Baz(Foo)); // Don't lint drop(Baz(Bar)); }