about summary refs log tree commit diff
diff options
context:
space:
mode:
authorThom Chiovoloni <chiovolonit@gmail.com>2022-03-23 17:29:19 -0700
committerPietro Albini <pietro.albini@ferrous-systems.com>2022-04-04 10:47:28 +0200
commit72bc4ae3bb8e4534543499ed7a2dc4b586ea717c (patch)
tree46b8986800847ba79d843f85d17aca877eca9d69
parentc763f0607450be8ccd52d171400fdf6a30a71d45 (diff)
downloadrust-72bc4ae3bb8e4534543499ed7a2dc4b586ea717c.tar.gz
rust-72bc4ae3bb8e4534543499ed7a2dc4b586ea717c.zip
Add a `compile_fail` doctest to check that `io::Error: !UnwindSafe`
-rw-r--r--library/std/src/io/error/repr_bitpacked.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/library/std/src/io/error/repr_bitpacked.rs b/library/std/src/io/error/repr_bitpacked.rs
index 803853a3c90..2f7d2e5d111 100644
--- a/library/std/src/io/error/repr_bitpacked.rs
+++ b/library/std/src/io/error/repr_bitpacked.rs
@@ -115,6 +115,15 @@ const TAG_CUSTOM: usize = 0b01;
 const TAG_OS: usize = 0b10;
 const TAG_SIMPLE: usize = 0b11;
 
+/// The internal representation.
+///
+/// See the module docs for more, this is just a way to hack in a check that we
+/// indeed are not unwind-safe.
+///
+/// ```compile_fail
+/// fn is_unwind_safe<T: core::panic::UnwindSafe>() {}
+/// is_unwind_safe::<std::io::Error>();
+/// ```
 #[repr(transparent)]
 pub(super) struct Repr(NonNull<()>, PhantomData<ErrorData<Box<Custom>>>);