diff options
| author | Nikolai Vazquez <hello@nikolaivazquez.com> | 2022-06-03 03:28:19 -0400 |
|---|---|---|
| committer | Nikolai Vazquez <hello@nikolaivazquez.com> | 2022-06-03 03:28:19 -0400 |
| commit | 7a8b96f89d40aeba3bdfdd517acc47a179fe7d98 (patch) | |
| tree | 0d72f19d50966d9f7abcc7c4a72dc016e2010cfe | |
| parent | 722c724a9506bcfc445af4052b297e3c48838008 (diff) | |
| download | rust-7a8b96f89d40aeba3bdfdd517acc47a179fe7d98.tar.gz rust-7a8b96f89d40aeba3bdfdd517acc47a179fe7d98.zip | |
Make `std::mem::needs_drop` accept `?Sized`
| -rw-r--r-- | example/mini_core.rs | 2 | ||||
| -rw-r--r-- | example/mini_core_hello_world.rs | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/example/mini_core.rs b/example/mini_core.rs index 8da705e0cb0..489259d1a6b 100644 --- a/example/mini_core.rs +++ b/example/mini_core.rs @@ -567,7 +567,7 @@ pub mod intrinsics { pub fn copy<T>(src: *const T, dst: *mut T, count: usize); pub fn transmute<T, U>(e: T) -> U; pub fn ctlz_nonzero<T>(x: T) -> T; - pub fn needs_drop<T>() -> bool; + pub fn needs_drop<T: ?::Sized>() -> bool; pub fn bitreverse<T>(x: T) -> T; pub fn bswap<T>(x: T) -> T; pub fn write_bytes<T>(dst: *mut T, val: u8, count: usize); diff --git a/example/mini_core_hello_world.rs b/example/mini_core_hello_world.rs index 85ca908d0a2..059f62f7bf8 100644 --- a/example/mini_core_hello_world.rs +++ b/example/mini_core_hello_world.rs @@ -55,6 +55,11 @@ struct NoisyDrop { inner: NoisyDropInner, } +struct NoisyDropUnsized { + text: str, + inner: NoisyDropInner, +} + struct NoisyDropInner; impl Drop for NoisyDrop { @@ -170,7 +175,9 @@ fn main() { assert_eq!(intrinsics::min_align_of_val(&a) as u8, intrinsics::min_align_of::<&str>() as u8); assert!(!intrinsics::needs_drop::<u8>()); + assert!(!intrinsics::needs_drop::<[u8]>()); assert!(intrinsics::needs_drop::<NoisyDrop>()); + assert!(intrinsics::needs_drop::<NoisyDropUnsized>()); Unique { pointer: NonNull(1 as *mut &str), |
