]> git.lizzy.rs Git - rust.git/blob - tests/ui/consts/const_fn_unsize.rs
Rollup merge of #106949 - compiler-errors:is-poly, r=BoxyUwU
[rust.git] / tests / ui / consts / const_fn_unsize.rs
1 // run-pass
2 #![feature(slice_ptr_len)]
3
4 use std::ptr::NonNull;
5
6 #[allow(unused)]
7 const fn test() {
8     let _x = NonNull::<[i32; 0]>::dangling() as NonNull<[i32]>;
9 }
10
11 // Regression test for #75118.
12 pub const fn dangling_slice<T>() -> NonNull<[T]> {
13     NonNull::<[T; 1]>::dangling()
14 }
15
16 const C: NonNull<[i32]> = dangling_slice();
17
18 fn main() {
19     assert_eq!(C.as_ptr(), NonNull::<[i32; 1]>::dangling().as_ptr() as *mut _);
20     assert_eq!(C.as_ptr().len(), 1);
21 }