in gazebo/src/cell.rs [58:69]
fn drop(&mut self) {
if self.borrow.is_some() {
let me: ARef<T> = ARef {
value: self.value,
borrow: self.borrow,
};
// The transmute forgets me, so I won't get called recursively
let them: Ref<T> = unsafe { cast::transmute_unchecked(me) };
// But we can now drop on the Ref
mem::drop(them);
}
}