diff options
Diffstat (limited to 'src/tools/clippy/tests/ui/drop_non_drop.rs')
-rw-r--r-- | src/tools/clippy/tests/ui/drop_non_drop.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui/drop_non_drop.rs b/src/tools/clippy/tests/ui/drop_non_drop.rs new file mode 100644 index 000000000..5a0ebde82 --- /dev/null +++ b/src/tools/clippy/tests/ui/drop_non_drop.rs @@ -0,0 +1,40 @@ +#![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); + // 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)); + // Don't lint + drop(Baz(Bar)); +} |