summaryrefslogtreecommitdiffstats
path: root/src/test/ui/consts/miri_unleashed/mutable_references.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/consts/miri_unleashed/mutable_references.rs')
-rw-r--r--src/test/ui/consts/miri_unleashed/mutable_references.rs36
1 files changed, 0 insertions, 36 deletions
diff --git a/src/test/ui/consts/miri_unleashed/mutable_references.rs b/src/test/ui/consts/miri_unleashed/mutable_references.rs
deleted file mode 100644
index 4e9964647..000000000
--- a/src/test/ui/consts/miri_unleashed/mutable_references.rs
+++ /dev/null
@@ -1,36 +0,0 @@
-// compile-flags: -Zunleash-the-miri-inside-of-you
-
-use std::cell::UnsafeCell;
-
-// a test demonstrating what things we could allow with a smarter const qualification
-
-// this is fine because is not possible to mutate through an immutable reference.
-static FOO: &&mut u32 = &&mut 42;
-
-// this is fine because accessing an immutable static `BAR` is equivalent to accessing `*&BAR`
-// which puts the mutable reference behind an immutable one.
-static BAR: &mut () = &mut ();
-
-struct Foo<T>(T);
-
-// this is fine for the same reason as `BAR`.
-static BOO: &mut Foo<()> = &mut Foo(());
-
-// interior mutability is fine
-struct Meh {
- x: &'static UnsafeCell<i32>,
-}
-unsafe impl Sync for Meh {}
-static MEH: Meh = Meh {
- x: &UnsafeCell::new(42),
-};
-
-// this is fine for the same reason as `BAR`.
-static OH_YES: &mut i32 = &mut 42;
-
-fn main() {
- unsafe {
- *MEH.x.get() = 99;
- }
- *OH_YES = 99; //~ ERROR cannot assign to `*OH_YES`, as `OH_YES` is an immutable static item
-}