Made the ptr::Unique type accept unsized types, to allow for use cases

like sending a raw pointer slice across thread boundaries.
This commit is contained in:
Marvin Löbel
2015-02-10 14:37:44 +01:00
parent de8bc44753
commit 792dc8d067
2 changed files with 12 additions and 3 deletions

View File

@@ -167,3 +167,12 @@ fn test_set_memory() {
unsafe { set_memory(ptr, 5u8, xs.len()); }
assert!(xs == [5u8; 20]);
}
#[test]
fn test_unsized_unique() {
let xs: &mut [_] = &mut [1, 2, 3];
let ptr = Unique(xs as *mut [_]);
let ys = unsafe { &mut *ptr.0 };
let zs: &mut [_] = &mut [1, 2, 3];
assert!(ys == zs);
}