// check-pass

struct AtomicRefMut<'a> {
    value: &'a mut i32,
    borrow: AtomicBorrowRefMut,
}

struct AtomicBorrowRefMut {
}

impl Drop for AtomicBorrowRefMut {
    fn drop(&mut self) {
    }
}

fn map(orig: AtomicRefMut) -> AtomicRefMut {
    AtomicRefMut {
        value: orig.value,
        borrow: orig.borrow,
    }
}

fn main() {}