use std::mem::drop;
-struct DroppableStruct;
-impl Drop for DroppableStruct { fn drop(&mut self) {} }
+struct SomeStruct;
fn main() {
- drop(&DroppableStruct); //~ERROR call to `std::mem::drop` with a reference argument
+ drop(&SomeStruct); //~ERROR call to `std::mem::drop` with a reference argument
- let mut owned = DroppableStruct;
+ let mut owned = SomeStruct;
drop(&owned); //~ERROR call to `std::mem::drop` with a reference argument
drop(&&owned); //~ERROR call to `std::mem::drop` with a reference argument
drop(&mut owned); //~ERROR call to `std::mem::drop` with a reference argument
drop(owned); //OK
- let reference1 = &DroppableStruct;
+ let reference1 = &SomeStruct;
drop(reference1); //~ERROR call to `std::mem::drop` with a reference argument
drop(&*reference1); //~ERROR call to `std::mem::drop` with a reference argument
- let reference2 = &mut DroppableStruct;
+ let reference2 = &mut SomeStruct;
drop(reference2); //~ERROR call to `std::mem::drop` with a reference argument
- let ref reference3 = DroppableStruct;
+ let ref reference3 = SomeStruct;
drop(reference3); //~ERROR call to `std::mem::drop` with a reference argument
}
#[allow(dead_code)]
fn test_similarly_named_function() {
fn drop<T>(_val: T) {}
- drop(&DroppableStruct); //OK; call to unrelated function which happens to have the same name
- std::mem::drop(&DroppableStruct); //~ERROR call to `std::mem::drop` with a reference argument
+ drop(&SomeStruct); //OK; call to unrelated function which happens to have the same name
+ std::mem::drop(&SomeStruct); //~ERROR call to `std::mem::drop` with a reference argument
}