diff options
| author | Ralf Jung <post@ralfj.de> | 2021-05-08 16:36:39 +0200 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2021-05-22 10:35:53 +0200 |
| commit | 5c6f41e349a08e792d7635dc88a6ca9fc51050d3 (patch) | |
| tree | 4c1b5f7cf32611526c54b111eaf48e401366660e | |
| parent | 65cd051b4a883327e8d286eaab1a171f3f904c92 (diff) | |
| download | rust-5c6f41e349a08e792d7635dc88a6ca9fc51050d3.tar.gz rust-5c6f41e349a08e792d7635dc88a6ca9fc51050d3.zip | |
const_fn_unsize: check that the cast behaves correctly
| -rw-r--r-- | src/test/ui/consts/const_fn_unsize.rs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/test/ui/consts/const_fn_unsize.rs b/src/test/ui/consts/const_fn_unsize.rs index 4547623bdce..01da57320c2 100644 --- a/src/test/ui/consts/const_fn_unsize.rs +++ b/src/test/ui/consts/const_fn_unsize.rs @@ -1,14 +1,21 @@ -// check-pass +// run-pass +#![feature(slice_ptr_len)] use std::ptr::NonNull; +#[allow(unused)] const fn test() { let _x = NonNull::<[i32; 0]>::dangling() as NonNull<[i32]>; } // Regression test for #75118. pub const fn dangling_slice<T>() -> NonNull<[T]> { - NonNull::<[T; 0]>::dangling() + NonNull::<[T; 1]>::dangling() } -fn main() {} +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); +} |
