rust/tests/ui/consts/const_fn_unsize.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

22 lines
461 B
Rust
Raw Normal View History

// run-pass
#![feature(slice_ptr_len)]
2021-04-19 03:15:56 -05:00
use std::ptr::NonNull;
#[allow(unused)]
2021-04-19 03:15:56 -05:00
const fn test() {
let _x = NonNull::<[i32; 0]>::dangling() as NonNull<[i32]>;
}
2021-05-08 09:28:29 -05:00
// Regression test for #75118.
pub const fn dangling_slice<T>() -> NonNull<[T]> {
NonNull::<[T; 1]>::dangling()
2021-05-08 09:28:29 -05:00
}
const C: NonNull<[i32]> = dangling_slice();
fn main() {
assert_eq!(C.as_ptr(), NonNull::<[i32; 1]>::dangling().as_ptr() as *mut _);
assert_eq!(C.as_ptr().len(), 1);
}