about summary refs log tree commit diff
diff options
context:
space:
mode:
authoroli <github35764891676564198441@oli-obk.de>2021-01-03 13:45:16 +0000
committeroli <github35764891676564198441@oli-obk.de>2021-01-03 13:45:16 +0000
commita137ff17069feb67a2ef5a0f3ddbe09707c2d6cd (patch)
tree1bf6d5ae1442a4a771ce3ad596816a5256f07d55
parente5330a4f52fcf9de8112f3dd0abb094640b668e3 (diff)
downloadrust-a137ff17069feb67a2ef5a0f3ddbe09707c2d6cd.tar.gz
rust-a137ff17069feb67a2ef5a0f3ddbe09707c2d6cd.zip
Update now-more-precise operation with a preciser message
-rw-r--r--compiler/rustc_mir/src/transform/check_consts/ops.rs4
-rw-r--r--src/test/ui/consts/partial_qualif.rs2
-rw-r--r--src/test/ui/consts/partial_qualif.stderr2
-rw-r--r--src/test/ui/consts/qualif_overwrite.rs2
-rw-r--r--src/test/ui/consts/qualif_overwrite.stderr2
-rw-r--r--src/test/ui/consts/qualif_overwrite_2.rs2
-rw-r--r--src/test/ui/consts/qualif_overwrite_2.stderr2
-rw-r--r--src/test/ui/error-codes/E0492.stderr4
-rw-r--r--src/test/ui/issues/issue-17718-const-borrow.rs6
-rw-r--r--src/test/ui/issues/issue-17718-const-borrow.stderr6
10 files changed, 16 insertions, 16 deletions
diff --git a/compiler/rustc_mir/src/transform/check_consts/ops.rs b/compiler/rustc_mir/src/transform/check_consts/ops.rs
index a85303d4cd3..cf81b69fede 100644
--- a/compiler/rustc_mir/src/transform/check_consts/ops.rs
+++ b/compiler/rustc_mir/src/transform/check_consts/ops.rs
@@ -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(),
         )
     }
 }
diff --git a/src/test/ui/consts/partial_qualif.rs b/src/test/ui/consts/partial_qualif.rs
index 32c68e69f4b..4aacdec7c51 100644
--- a/src/test/ui/consts/partial_qualif.rs
+++ b/src/test/ui/consts/partial_qualif.rs
@@ -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() {}
diff --git a/src/test/ui/consts/partial_qualif.stderr b/src/test/ui/consts/partial_qualif.stderr
index 221e449b6f9..5ea0cbc4f7c 100644
--- a/src/test/ui/consts/partial_qualif.stderr
+++ b/src/test/ui/consts/partial_qualif.stderr
@@ -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}
diff --git a/src/test/ui/consts/qualif_overwrite.rs b/src/test/ui/consts/qualif_overwrite.rs
index 9b3f6786ae6..485a4a2fcc3 100644
--- a/src/test/ui/consts/qualif_overwrite.rs
+++ b/src/test/ui/consts/qualif_overwrite.rs
@@ -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() {}
diff --git a/src/test/ui/consts/qualif_overwrite.stderr b/src/test/ui/consts/qualif_overwrite.stderr
index fbaae711d7c..995f8600587 100644
--- a/src/test/ui/consts/qualif_overwrite.stderr
+++ b/src/test/ui/consts/qualif_overwrite.stderr
@@ -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}
diff --git a/src/test/ui/consts/qualif_overwrite_2.rs b/src/test/ui/consts/qualif_overwrite_2.rs
index fa79b5c14a7..6b90988869d 100644
--- a/src/test/ui/consts/qualif_overwrite_2.rs
+++ b/src/test/ui/consts/qualif_overwrite_2.rs
@@ -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() {}
diff --git a/src/test/ui/consts/qualif_overwrite_2.stderr b/src/test/ui/consts/qualif_overwrite_2.stderr
index a393c4e336d..006199514fc 100644
--- a/src/test/ui/consts/qualif_overwrite_2.stderr
+++ b/src/test/ui/consts/qualif_overwrite_2.stderr
@@ -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}
diff --git a/src/test/ui/error-codes/E0492.stderr b/src/test/ui/error-codes/E0492.stderr
index 54306433b87..9aa84c2bff3 100644
--- a/src/test/ui/error-codes/E0492.stderr
+++ b/src/test/ui/error-codes/E0492.stderr
@@ -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;
diff --git a/src/test/ui/issues/issue-17718-const-borrow.rs b/src/test/ui/issues/issue-17718-const-borrow.rs
index b11e83144ed..4b13c0f0c15 100644
--- a/src/test/ui/issues/issue-17718-const-borrow.rs
+++ b/src/test/ui/issues/issue-17718-const-borrow.rs
@@ -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() {}
diff --git a/src/test/ui/issues/issue-17718-const-borrow.stderr b/src/test/ui/issues/issue-17718-const-borrow.stderr
index b4330049689..c94ae2a3a18 100644
--- a/src/test/ui/issues/issue-17718-const-borrow.stderr
+++ b/src/test/ui/issues/issue-17718-const-borrow.stderr
@@ -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;