//@ check-fail //@ run-rustfix #![deny(dropping_references)] struct SomeStruct; fn main() { drop(&SomeStruct); //~ ERROR calls to `std::mem::drop` let mut owned1 = SomeStruct; drop(&owned1); //~ ERROR calls to `std::mem::drop` drop(&&owned1); //~ ERROR calls to `std::mem::drop` drop(&mut owned1); //~ ERROR calls to `std::mem::drop` drop(owned1); let reference1 = &SomeStruct; drop(reference1); //~ ERROR calls to `std::mem::drop` let reference2 = &mut SomeStruct; drop(reference2); //~ ERROR calls to `std::mem::drop` let ref reference3 = SomeStruct; drop(reference3); //~ ERROR calls to `std::mem::drop` } #[allow(dead_code)] fn test_generic_fn_drop(val: T) { drop(&val); //~ ERROR calls to `std::mem::drop` drop(val); }