diff options
| author | Oli Scherer <git-spam-no-reply9815368754983@oli-obk.de> | 2022-07-08 14:28:19 +0000 |
|---|---|---|
| committer | Oli Scherer <git-spam-no-reply9815368754983@oli-obk.de> | 2022-07-08 14:28:19 +0000 |
| commit | 4bfba76a3da28d780be3cb31fd6269b8bc6183df (patch) | |
| tree | 08c0fe9e1245a3221c1ac13ecb66c88a869d9946 /src | |
| parent | 8d9f609d0d4465285ac9f0257c706c559644fef5 (diff) | |
| download | rust-4bfba76a3da28d780be3cb31fd6269b8bc6183df.tar.gz rust-4bfba76a3da28d780be3cb31fd6269b8bc6183df.zip | |
Add tests for libstd types
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/layout/unsafe-cell-hides-niche.rs | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/test/ui/layout/unsafe-cell-hides-niche.rs b/src/test/ui/layout/unsafe-cell-hides-niche.rs index eb65756a5f6..f6a8e0de27a 100644 --- a/src/test/ui/layout/unsafe-cell-hides-niche.rs +++ b/src/test/ui/layout/unsafe-cell-hides-niche.rs @@ -5,9 +5,10 @@ // run-pass -use std::cell::UnsafeCell; +use std::cell::{UnsafeCell, RefCell, Cell}; use std::mem::size_of; use std::num::NonZeroU32 as N32; +use std::sync::{Mutex, RwLock}; struct Wrapper<T>(T); @@ -18,12 +19,23 @@ struct NoNiche<T>(UnsafeCell<T>); fn main() { assert_eq!(size_of::<Option<Wrapper<u32>>>(), 8); - assert_eq!(size_of::<Option<Wrapper<N32>>>(), 4); + assert_eq!(size_of::<Option<Wrapper<N32>>>(), 4); // (✓ niche opt) assert_eq!(size_of::<Option<Transparent<u32>>>(), 8); - assert_eq!(size_of::<Option<Transparent<N32>>>(), 4); + assert_eq!(size_of::<Option<Transparent<N32>>>(), 4); // (✓ niche opt) assert_eq!(size_of::<Option<NoNiche<u32>>>(), 8); - assert_eq!(size_of::<Option<NoNiche<N32>>>(), 8); + assert_eq!(size_of::<Option<NoNiche<N32>>>(), 8); // (✗ niche opt) assert_eq!(size_of::<Option<UnsafeCell<u32>>>(), 8); - assert_eq!(size_of::<Option<UnsafeCell<N32>>>(), 8); + assert_eq!(size_of::<Option<UnsafeCell<N32>>>(), 8); // (✗ niche opt) + + assert_eq!(size_of::< UnsafeCell<&()> >(), 8); + assert_eq!(size_of::<Option<UnsafeCell<&()>>>(), 16); // (✗ niche opt) + assert_eq!(size_of::< Cell<&()> >(), 8); + assert_eq!(size_of::<Option< Cell<&()>>>(), 16); // (✗ niche opt) + assert_eq!(size_of::< RefCell<&()> >(), 16); + assert_eq!(size_of::<Option< RefCell<&()>>>(), 24); // (✗ niche opt) + assert_eq!(size_of::< RwLock<&()> >(), 24); + assert_eq!(size_of::<Option< RwLock<&()>>>(), 32); // (✗ niche opt) + assert_eq!(size_of::< Mutex<&()> >(), 16); + assert_eq!(size_of::<Option< Mutex<&()>>>(), 24); // (✗ niche opt) } |
