#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::cell::UnsafeCell; fn main() { let x: UnsafeCell = 42.into(); let (p1, p2): (&UnsafeCell, &UnsafeCell) = (&x, &x); unsafe { let p1_exclusive: &mut i32 = &mut *p1.get(); *p1_exclusive += 27; } unsafe { let p2_shared: &i32 = &*p2.get(); assert_eq!(* p2_shared, 42 + 27); let p1_shared: &i32 = &*p1.get(); assert_eq!(* p1_shared, * p2_shared); } }