2 #![allow(non_snake_case)]
13 fn new(number: usize, state: Rc<Cell<usize>>) -> Field {
23 println!("Dropping field {}", self.number);
24 assert_eq!(self.state.get(), self.number);
25 self.state.set(self.state.get()+1);
41 impl Drop for HasDropImpl {
43 println!("HasDropImpl.drop()");
44 assert_eq!(self._one.state.get(), 0);
45 self._one.state.set(1);
50 let state = Rc::new(Cell::new(1));
51 let noImpl = NoDropImpl {
52 _one: Field::new(1, state.clone()),
53 _two: Field::new(2, state.clone()),
54 _three: Field::new(3, state.clone())
57 assert_eq!(state.get(), 4);
60 let hasImpl = HasDropImpl {
61 _one: Field::new(1, state.clone()),
62 _two: Field::new(2, state.clone()),
63 _three: Field::new(3, state.clone())
66 assert_eq!(state.get(), 4);