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