Update test for mutably borrowed statics in a const
This checks `static mut` as well for E0017, and blesses tests now that we emit an error for a mut deref.
This commit is contained in:
parent
a70ac50ec4
commit
846be82277
@ -1,8 +1,11 @@
|
||||
static X: i32 = 1;
|
||||
const C: i32 = 2;
|
||||
static mut M: i32 = 3;
|
||||
|
||||
const CR: &'static mut i32 = &mut C; //~ ERROR E0017
|
||||
static STATIC_REF: &'static mut i32 = &mut X; //~ ERROR E0017
|
||||
//~| ERROR E0019
|
||||
//~| ERROR cannot borrow
|
||||
static CONST_REF: &'static mut i32 = &mut C; //~ ERROR E0017
|
||||
static STATIC_MUT_REF: &'static mut i32 = unsafe { &mut M }; //~ ERROR E0017
|
||||
fn main() {}
|
||||
|
@ -1,28 +1,40 @@
|
||||
error[E0017]: references in constants may only refer to immutable values
|
||||
--> $DIR/E0017.rs:4:30
|
||||
--> $DIR/E0017.rs:5:30
|
||||
|
|
||||
LL | const CR: &'static mut i32 = &mut C;
|
||||
| ^^^^^^ constants require immutable values
|
||||
|
||||
error[E0019]: static contains unimplemented expression type
|
||||
--> $DIR/E0017.rs:6:39
|
||||
|
|
||||
LL | static STATIC_REF: &'static mut i32 = &mut X;
|
||||
| ^^^^^^
|
||||
|
||||
error[E0017]: references in statics may only refer to immutable values
|
||||
--> $DIR/E0017.rs:5:39
|
||||
--> $DIR/E0017.rs:6:39
|
||||
|
|
||||
LL | static STATIC_REF: &'static mut i32 = &mut X;
|
||||
| ^^^^^^ statics require immutable values
|
||||
|
||||
error[E0596]: cannot borrow immutable static item `X` as mutable
|
||||
--> $DIR/E0017.rs:5:39
|
||||
--> $DIR/E0017.rs:6:39
|
||||
|
|
||||
LL | static STATIC_REF: &'static mut i32 = &mut X;
|
||||
| ^^^^^^ cannot borrow as mutable
|
||||
|
||||
error[E0017]: references in statics may only refer to immutable values
|
||||
--> $DIR/E0017.rs:7:38
|
||||
--> $DIR/E0017.rs:9:38
|
||||
|
|
||||
LL | static CONST_REF: &'static mut i32 = &mut C;
|
||||
| ^^^^^^ statics require immutable values
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
error[E0017]: references in statics may only refer to immutable values
|
||||
--> $DIR/E0017.rs:10:52
|
||||
|
|
||||
LL | static STATIC_MUT_REF: &'static mut i32 = unsafe { &mut M };
|
||||
| ^^^^^^ statics require immutable values
|
||||
|
||||
Some errors have detailed explanations: E0017, E0596.
|
||||
error: aborting due to 6 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0017, E0019, E0596.
|
||||
For more information about an error, try `rustc --explain E0017`.
|
||||
|
Loading…
x
Reference in New Issue
Block a user