3 #![allow(non_camel_case_types)]
8 // Resources can't be copied, but storing into data structures counts
9 // as a move unless the stored thing is used afterwards.
15 struct BoxR<'a> { x: r<'a> }
17 impl<'a> Drop for r<'a> {
19 self.i.set(self.i.get() + 1)
23 fn r(i: &Cell<isize>) -> r {
30 let i = &Cell::new(0);
32 let _a = BoxR {x: r(i)};
34 assert_eq!(i.get(), 1);
42 let i = &Cell::new(0);
46 assert_eq!(i.get(), 1);
50 let i = &Cell::new(0);
54 assert_eq!(i.get(), 1);
58 let i = &Cell::new(0);
60 let _a: Box<_> = Box::new(r(i));
62 assert_eq!(i.get(), 1);
65 fn test_unique_rec() {
66 let i = &Cell::new(0);
68 let _a: Box<_> = Box::new(BoxR {
72 assert_eq!(i.get(), 1);