1 use std::cell::UnsafeCell; 2 main()3fn main() { unsafe { 4 let c = &UnsafeCell::new(UnsafeCell::new(0)); 5 let inner_uniq = &mut *c.get(); 6 // stack: [c: SharedReadWrite, inner_uniq: Unique] 7 8 let inner_shr = &*inner_uniq; // adds a SharedReadWrite 9 // stack: [c: SharedReadWrite, inner_uniq: Unique, inner_shr: SharedReadWrite] 10 11 *c.get() = UnsafeCell::new(1); // invalidates inner_shr 12 // stack: [c: SharedReadWrite] 13 14 let _val = *inner_shr.get(); //~ ERROR borrow stack 15 } } 16