mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-12-22 02:53:20 +00:00
42 lines
751 B
Rust
42 lines
751 B
Rust
#![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);
|
|
//~^ ERROR: call to `std::mem::drop` with a value that does not implement `Drop`. 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));
|
|
//~^ ERROR: call to `std::mem::drop` with a value that does not implement `Drop`. Drop
|
|
// Don't lint
|
|
drop(Baz(Bar));
|
|
}
|