#![feature(raw_ref_op)]
-const A: () = { let mut x = 2; &raw mut x; }; //~ ERROR `&raw mut` is not allowed
+const A: () = { let mut x = 2; &raw mut x; }; //~ mutable reference
-static B: () = { let mut x = 2; &raw mut x; }; //~ ERROR `&raw mut` is not allowed
+static B: () = { let mut x = 2; &raw mut x; }; //~ mutable reference
-static mut C: () = { let mut x = 2; &raw mut x; }; //~ ERROR `&raw mut` is not allowed
+static mut C: () = { let mut x = 2; &raw mut x; }; //~ mutable reference
const fn foo() {
let mut x = 0;
- let y = &raw mut x; //~ ERROR `&raw mut` is not allowed
+ let y = &raw mut x; //~ mutable reference
}
fn main() {}
-error[E0658]: `&raw mut` is not allowed in constants
+error[E0764]: raw mutable references are not allowed in constants
--> $DIR/const-address-of-mut.rs:3:32
|
LL | const A: () = { let mut x = 2; &raw mut x; };
- | ^^^^^^^^^^
- |
- = note: see issue #57349 <https://github.com/rust-lang/rust/issues/57349> for more information
- = help: add `#![feature(const_mut_refs)]` to the crate attributes to enable
+ | ^^^^^^^^^^ `&raw mut` is only allowed in `const fn`
-error[E0658]: `&raw mut` is not allowed in statics
+error[E0764]: raw mutable references are not allowed in statics
--> $DIR/const-address-of-mut.rs:5:33
|
LL | static B: () = { let mut x = 2; &raw mut x; };
- | ^^^^^^^^^^
- |
- = note: see issue #57349 <https://github.com/rust-lang/rust/issues/57349> for more information
- = help: add `#![feature(const_mut_refs)]` to the crate attributes to enable
+ | ^^^^^^^^^^ `&raw mut` is only allowed in `const fn`
-error[E0658]: `&raw mut` is not allowed in statics
+error[E0764]: raw mutable references are not allowed in statics
--> $DIR/const-address-of-mut.rs:7:37
|
LL | static mut C: () = { let mut x = 2; &raw mut x; };
- | ^^^^^^^^^^
- |
- = note: see issue #57349 <https://github.com/rust-lang/rust/issues/57349> for more information
- = help: add `#![feature(const_mut_refs)]` to the crate attributes to enable
+ | ^^^^^^^^^^ `&raw mut` is only allowed in `const fn`
-error[E0658]: `&raw mut` is not allowed in constant functions
+error[E0658]: raw mutable references are not allowed in constant functions
--> $DIR/const-address-of-mut.rs:11:13
|
LL | let y = &raw mut x;
error: aborting due to 4 previous errors
-For more information about this error, try `rustc --explain E0658`.
+Some errors have detailed explanations: E0658, E0764.
+For more information about an error, try `rustc --explain E0658`.
const fn mutable_address_of_in_const() {
let mut a = 0;
- let b = &raw mut a; //~ ERROR `&raw mut` is not allowed
+ let b = &raw mut a; //~ ERROR mutable reference
}
struct X;
impl X {
const fn inherent_mutable_address_of_in_const() {
let mut a = 0;
- let b = &raw mut a; //~ ERROR `&raw mut` is not allowed
+ let b = &raw mut a; //~ ERROR mutable reference
}
}
-error[E0658]: `&raw mut` is not allowed in constant functions
+error[E0658]: raw mutable references are not allowed in constant functions
--> $DIR/address_of.rs:5:13
|
LL | let b = &raw mut a;
= note: see issue #57349 <https://github.com/rust-lang/rust/issues/57349> for more information
= help: add `#![feature(const_mut_refs)]` to the crate attributes to enable
-error[E0658]: `&raw mut` is not allowed in constant functions
+error[E0658]: raw mutable references are not allowed in constant functions
--> $DIR/address_of.rs:13:17
|
LL | let b = &raw mut a;