Forbid non-derefable types explicitly in unsizing casts

This commit is contained in:
Yuki Okushi 2020-08-04 17:46:10 +09:00
parent 40857b9453
commit cd7204ef39
No known key found for this signature in database
GPG key ID: B0986C85C0E2DAA1
3 changed files with 31 additions and 1 deletions

View file

@ -0,0 +1,10 @@
// Regression test for #75118.
use std::ptr::NonNull;
pub const fn dangling_slice<T>() -> NonNull<[T]> {
NonNull::<[T; 0]>::dangling()
//~^ ERROR: unsizing casts are only allowed for references right now
}
fn main() {}

View file

@ -0,0 +1,12 @@
error[E0723]: unsizing casts are only allowed for references right now
--> $DIR/unsizing-cast-non-null.rs:6:5
|
LL | NonNull::<[T; 0]>::dangling()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #57563 <https://github.com/rust-lang/rust/issues/57563> for more information
= help: add `#![feature(const_fn)]` to the crate attributes to enable
error: aborting due to previous error
For more information about this error, try `rustc --explain E0723`.