diff options
| author | Thom Chiovoloni <chiovolonit@gmail.com> | 2022-03-23 17:29:19 -0700 |
|---|---|---|
| committer | Pietro Albini <pietro.albini@ferrous-systems.com> | 2022-04-04 10:47:28 +0200 |
| commit | 72bc4ae3bb8e4534543499ed7a2dc4b586ea717c (patch) | |
| tree | 46b8986800847ba79d843f85d17aca877eca9d69 | |
| parent | c763f0607450be8ccd52d171400fdf6a30a71d45 (diff) | |
| download | rust-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.rs | 9 |
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>>>); |
