diff options
Diffstat (limited to 'src/test/ui/consts/qualif-indirect-mutation-fail.rs')
-rw-r--r-- | src/test/ui/consts/qualif-indirect-mutation-fail.rs | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/src/test/ui/consts/qualif-indirect-mutation-fail.rs b/src/test/ui/consts/qualif-indirect-mutation-fail.rs deleted file mode 100644 index a6d293404..000000000 --- a/src/test/ui/consts/qualif-indirect-mutation-fail.rs +++ /dev/null @@ -1,64 +0,0 @@ -// compile-flags: --crate-type=lib -#![feature(const_mut_refs)] -#![feature(const_precise_live_drops)] -#![feature(const_swap)] -#![feature(raw_ref_op)] - -// Mutable borrow of a field with drop impl. -pub const fn f() { - let mut a: (u32, Option<String>) = (0, None); //~ ERROR destructor of - let _ = &mut a.1; -} - -// Mutable borrow of a type with drop impl. -pub const A1: () = { - let mut x = None; //~ ERROR destructor of - let mut y = Some(String::new()); - let a = &mut x; - let b = &mut y; - std::mem::swap(a, b); - std::mem::forget(y); -}; - -// Mutable borrow of a type with drop impl. -pub const A2: () = { - let mut x = None; - let mut y = Some(String::new()); - let a = &mut x; - let b = &mut y; - std::mem::swap(a, b); - std::mem::forget(y); - let _z = x; //~ ERROR destructor of -}; - -// Shared borrow of a type that might be !Freeze and Drop. -pub const fn g1<T>() { - let x: Option<T> = None; //~ ERROR destructor of - let _ = x.is_some(); -} - -// Shared borrow of a type that might be !Freeze and Drop. -pub const fn g2<T>() { - let x: Option<T> = None; - let _ = x.is_some(); - let _y = x; //~ ERROR destructor of -} - -// Mutable raw reference to a Drop type. -pub const fn address_of_mut() { - let mut x: Option<String> = None; //~ ERROR destructor of - &raw mut x; - - let mut y: Option<String> = None; //~ ERROR destructor of - std::ptr::addr_of_mut!(y); -} - -// Const raw reference to a Drop type. Conservatively assumed to allow mutation -// until resolution of https://github.com/rust-lang/rust/issues/56604. -pub const fn address_of_const() { - let x: Option<String> = None; //~ ERROR destructor of - &raw const x; - - let y: Option<String> = None; //~ ERROR destructor of - std::ptr::addr_of!(y); -} |