mirror of https://github.com/rust-lang/rust
30 lines
498 B
Rust
30 lines
498 B
Rust
//@ run-pass
|
|
#![allow(unused_variables)]
|
|
static mut DROP: bool = false;
|
|
|
|
struct ConnWrap(Conn);
|
|
impl ::std::ops::Deref for ConnWrap {
|
|
type Target=Conn;
|
|
fn deref(&self) -> &Conn { &self.0 }
|
|
}
|
|
|
|
struct Conn;
|
|
impl Drop for Conn {
|
|
fn drop(&mut self) { unsafe { DROP = true; } }
|
|
}
|
|
|
|
fn inner() {
|
|
let conn = &*match Some(ConnWrap(Conn)) {
|
|
Some(val) => val,
|
|
None => return,
|
|
};
|
|
return;
|
|
}
|
|
|
|
fn main() {
|
|
inner();
|
|
unsafe {
|
|
assert_eq!(DROP, true);
|
|
}
|
|
}
|