未验证 提交 f5206672 编写于 作者: H hyd-dev

Fix assertion in `MaybeUninit::array_assume_init()` for zero-length arrays

上级 1483e67a
......@@ -839,7 +839,7 @@ pub unsafe fn assume_init_drop(&mut self) {
// * MaybeUnint does not drop, so there are no double-frees
// And thus the conversion is safe
unsafe {
intrinsics::assert_inhabited::<T>();
intrinsics::assert_inhabited::<[T; N]>();
(&array as *const _ as *const [T; N]).read()
}
}
......
......@@ -152,6 +152,8 @@ fn uninit_array_assume_init() {
let array = unsafe { MaybeUninit::array_assume_init(array) };
assert_eq!(array, [3, 1, 4, 1, 5]);
let [] = unsafe { MaybeUninit::<!>::array_assume_init([]) };
}
#[test]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册