rust/src/test/run-pass/option-unwrap.rs
2018-12-25 21:08:33 -07:00

31 lines
451 B
Rust

#![allow(non_camel_case_types)]
use std::cell::Cell;
struct dtor<'a> {
x: &'a Cell<isize>,
}
impl<'a> Drop for dtor<'a> {
fn drop(&mut self) {
self.x.set(self.x.get() - 1);
}
}
fn unwrap<T>(o: Option<T>) -> T {
match o {
Some(v) => v,
None => panic!()
}
}
pub fn main() {
let x = &Cell::new(1);
{
let b = Some(dtor { x:x });
let _c = unwrap(b);
}
assert_eq!(x.get(), 0);
}