about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-07-08 14:28:19 +0000
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-07-08 14:28:19 +0000
commit4bfba76a3da28d780be3cb31fd6269b8bc6183df (patch)
tree08c0fe9e1245a3221c1ac13ecb66c88a869d9946 /src
parent8d9f609d0d4465285ac9f0257c706c559644fef5 (diff)
downloadrust-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.rs22
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)
 }