| // When we notice something breaks only without validation, we add a test here. |
| //@compile-flags: -Zmiri-disable-validation |
| use std::cell::*; |
| |
| fn refcell_unsize() { |
| let cell: RefCell<[i32; 3]> = RefCell::new([1, 2, 3]); |
| { |
| let mut cellref: RefMut<'_, [i32; 3]> = cell.borrow_mut(); |
| cellref[0] = 4; |
| let mut coerced: RefMut<'_, [i32]> = cellref; |
| coerced[2] = 5; |
| } |
| { |
| let comp: &mut [i32] = &mut [4, 2, 5]; |
| let cellref: Ref<'_, [i32; 3]> = cell.borrow(); |
| assert_eq!(&*cellref, comp); |
| let coerced: Ref<'_, [i32]> = cellref; |
| assert_eq!(&*coerced, comp); |
| } |
| } |
| |
| fn main() { |
| refcell_unsize(); |
| } |