1 static static_x : i32 = 1;
2 static mut static_x_mut : i32 = 1;
9 let _y1 = &mut x; //~ ERROR [E0596]
10 let _y2 = &mut x_mut; // No error
14 let _y1 = &mut static_x; //~ ERROR [E0596]
15 unsafe { let _y2 = &mut static_x_mut; } // No error
18 { // borrow of deref to box
19 let box_x = Box::new(1);
20 let mut box_x_mut = Box::new(1);
22 let _y1 = &mut *box_x; //~ ERROR [E0596]
23 let _y2 = &mut *box_x_mut; // No error
26 { // borrow of deref to reference
28 let ref_x_mut = &mut x_mut;
30 let _y1 = &mut *ref_x; //~ ERROR [E0596]
31 let _y2 = &mut *ref_x_mut; // No error
34 { // borrow of deref to pointer
35 let ptr_x : *const _ = &x;
36 let ptr_mut_x : *mut _ = &mut x_mut;
39 let _y1 = &mut *ptr_x; //~ ERROR [E0596]
40 let _y2 = &mut *ptr_mut_x; // No error
44 { // borrowing mutably through an immutable reference
45 struct Foo<'a> { f: &'a mut i32, g: &'a i32 };
46 let mut foo = Foo { f: &mut x_mut, g: &x };
48 let _y = &mut *foo_ref.f; //~ ERROR [E0596]