From 64d98f8ee037282c35007b64c2649055c56af1db Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:19:03 +0200 Subject: Merging upstream version 1.68.2+dfsg1. Signed-off-by: Daniel Baumann --- .../ui/interior-mutability/interior-mutability.rs | 7 +++++++ .../interior-mutability/interior-mutability.stderr | 22 ++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 tests/ui/interior-mutability/interior-mutability.rs create mode 100644 tests/ui/interior-mutability/interior-mutability.stderr (limited to 'tests/ui/interior-mutability') diff --git a/tests/ui/interior-mutability/interior-mutability.rs b/tests/ui/interior-mutability/interior-mutability.rs new file mode 100644 index 000000000..c704acc22 --- /dev/null +++ b/tests/ui/interior-mutability/interior-mutability.rs @@ -0,0 +1,7 @@ +use std::cell::Cell; +use std::panic::catch_unwind; +fn main() { + let mut x = Cell::new(22); + catch_unwind(|| { x.set(23); }); + //~^ ERROR the type `UnsafeCell` may contain interior mutability and a +} diff --git a/tests/ui/interior-mutability/interior-mutability.stderr b/tests/ui/interior-mutability/interior-mutability.stderr new file mode 100644 index 000000000..034d22591 --- /dev/null +++ b/tests/ui/interior-mutability/interior-mutability.stderr @@ -0,0 +1,22 @@ +error[E0277]: the type `UnsafeCell` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary + --> $DIR/interior-mutability.rs:5:18 + | +LL | catch_unwind(|| { x.set(23); }); + | ------------ ^^^^^^^^^^^^^^^^^ `UnsafeCell` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary + | | + | required by a bound introduced by this call + | + = help: within `Cell`, the trait `RefUnwindSafe` is not implemented for `UnsafeCell` + = note: required because it appears within the type `Cell` + = note: required for `&Cell` to implement `UnwindSafe` +note: required because it's used within this closure + --> $DIR/interior-mutability.rs:5:18 + | +LL | catch_unwind(|| { x.set(23); }); + | ^^ +note: required by a bound in `catch_unwind` + --> $SRC_DIR/std/src/panic.rs:LL:COL + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0277`. -- cgit v1.2.3