The drop_ref test does not require implementing the Drop trait.

This commit is contained in:
Theemathas Chirananthavat 2016-12-29 18:28:49 -08:00
parent f145fc44f8
commit 920a2b7468

View File

@ -6,26 +6,25 @@
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
}
@ -38,6 +37,6 @@ fn test_generic_fn<T>(val: T) {
#[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
}