Update now-more-precise operation with a preciser message

This commit is contained in:
oli 2021-01-03 13:45:16 +00:00
parent e5330a4f52
commit a137ff1706
10 changed files with 16 additions and 16 deletions

View File

@ -242,8 +242,8 @@ impl NonConstOp for CellBorrow {
ccx.tcx.sess,
span,
E0492,
"cannot borrow a constant which may contain \
interior mutability, create a static instead"
"this borrow to an interior mutable value may end up in the final value of this {}",
ccx.const_kind(),
)
}
}

View File

@ -3,7 +3,7 @@ use std::cell::Cell;
const FOO: &(Cell<usize>, bool) = {
let mut a = (Cell::new(0), false);
a.1 = true; // sets `qualif(a)` to `qualif(a) | qualif(true)`
&{a} //~ ERROR cannot borrow a constant which may contain interior mutability
&{a} //~ ERROR borrow to an interior mutable value may end up in the final value
};
fn main() {}

View File

@ -1,4 +1,4 @@
error[E0492]: cannot borrow a constant which may contain interior mutability, create a static instead
error[E0492]: this borrow to an interior mutable value may end up in the final value of this constant
--> $DIR/partial_qualif.rs:6:5
|
LL | &{a}

View File

@ -7,7 +7,7 @@ use std::cell::Cell;
const FOO: &Option<Cell<usize>> = {
let mut a = Some(Cell::new(0));
a = None; // sets `qualif(a)` to `qualif(a) | qualif(None)`
&{a}//~ ERROR cannot borrow a constant which may contain interior mutability
&{a} //~ ERROR borrow to an interior mutable value may end up in the final value
};
fn main() {}

View File

@ -1,4 +1,4 @@
error[E0492]: cannot borrow a constant which may contain interior mutability, create a static instead
error[E0492]: this borrow to an interior mutable value may end up in the final value of this constant
--> $DIR/qualif_overwrite.rs:10:5
|
LL | &{a}

View File

@ -5,7 +5,7 @@ use std::cell::Cell;
const FOO: &Option<Cell<usize>> = {
let mut a = (Some(Cell::new(0)),);
a.0 = None; // sets `qualif(a)` to `qualif(a) | qualif(None)`
&{a.0} //~ ERROR cannot borrow a constant which may contain interior mutability
&{a.0} //~ ERROR borrow to an interior mutable value may end up in the final value
};
fn main() {}

View File

@ -1,4 +1,4 @@
error[E0492]: cannot borrow a constant which may contain interior mutability, create a static instead
error[E0492]: this borrow to an interior mutable value may end up in the final value of this constant
--> $DIR/qualif_overwrite_2.rs:8:5
|
LL | &{a.0}

View File

@ -1,10 +1,10 @@
error[E0492]: cannot borrow a constant which may contain interior mutability, create a static instead
error[E0492]: this borrow to an interior mutable value may end up in the final value of this constant
--> $DIR/E0492.rs:4:33
|
LL | const B: &'static AtomicUsize = &A;
| ^^
error[E0492]: cannot borrow a constant which may contain interior mutability, create a static instead
error[E0492]: this borrow to an interior mutable value may end up in the final value of this static
--> $DIR/E0492.rs:5:34
|
LL | static C: &'static AtomicUsize = &A;

View File

@ -2,13 +2,13 @@ use std::cell::UnsafeCell;
const A: UnsafeCell<usize> = UnsafeCell::new(1);
const B: &'static UnsafeCell<usize> = &A;
//~^ ERROR: may contain interior mutability
//~^ ERROR: borrow to an interior mutable value
struct C { a: UnsafeCell<usize> }
const D: C = C { a: UnsafeCell::new(1) };
const E: &'static UnsafeCell<usize> = &D.a;
//~^ ERROR: may contain interior mutability
//~^ ERROR: borrow to an interior mutable value
const F: &'static C = &D;
//~^ ERROR: may contain interior mutability
//~^ ERROR: borrow to an interior mutable value
fn main() {}

View File

@ -1,16 +1,16 @@
error[E0492]: cannot borrow a constant which may contain interior mutability, create a static instead
error[E0492]: this borrow to an interior mutable value may end up in the final value of this constant
--> $DIR/issue-17718-const-borrow.rs:4:39
|
LL | const B: &'static UnsafeCell<usize> = &A;
| ^^
error[E0492]: cannot borrow a constant which may contain interior mutability, create a static instead
error[E0492]: this borrow to an interior mutable value may end up in the final value of this constant
--> $DIR/issue-17718-const-borrow.rs:9:39
|
LL | const E: &'static UnsafeCell<usize> = &D.a;
| ^^^^
error[E0492]: cannot borrow a constant which may contain interior mutability, create a static instead
error[E0492]: this borrow to an interior mutable value may end up in the final value of this constant
--> $DIR/issue-17718-const-borrow.rs:11:23
|
LL | const F: &'static C = &D;