added missing refcell ref/refmut coercions to unsized

This commit is contained in:
Валерий Лашманов
2016-03-31 10:11:59 -04:00
parent 102a5be712
commit 33db2d65ff
2 changed files with 28 additions and 2 deletions

View File

@@ -261,3 +261,23 @@ fn refcell_unsized() {
let comp: &mut [i32] = &mut [4, 2, 5];
assert_eq!(&*cell.borrow(), comp);
}
#[test]
fn refcell_ref_coercion() {
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);
}
}