about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDylan MacKenzie <ecstaticmorse@gmail.com>2019-10-16 18:00:44 -0700
committerDylan MacKenzie <ecstaticmorse@gmail.com>2019-10-16 18:00:44 -0700
commit75f4dac5f38cfe46cf9ccd3b2c602a5e1336453c (patch)
tree7a65e2fb14e47788a08f07a157492e40560e3f4a
parentc27f7568bc74c418996892028a629eed5a7f5f00 (diff)
downloadrust-75f4dac5f38cfe46cf9ccd3b2c602a5e1336453c.tar.gz
rust-75f4dac5f38cfe46cf9ccd3b2c602a5e1336453c.zip
Add regression test for #65394
-rw-r--r--src/test/ui/consts/const-eval/issue-65394.rs13
-rw-r--r--src/test/ui/consts/const-eval/issue-65394.stderr11
2 files changed, 24 insertions, 0 deletions
diff --git a/src/test/ui/consts/const-eval/issue-65394.rs b/src/test/ui/consts/const-eval/issue-65394.rs
new file mode 100644
index 00000000000..978e227bcc8
--- /dev/null
+++ b/src/test/ui/consts/const-eval/issue-65394.rs
@@ -0,0 +1,13 @@
+// Test for absence of validation mismatch ICE in #65394
+
+#![feature(rustc_attrs)]
+
+#[rustc_mir(borrowck_graphviz_postflow="hello.dot")]
+const _: Vec<i32> = {
+    let mut x = Vec::<i32>::new();
+    let r = &mut x; //~ ERROR references in constants may only refer to immutable values
+    let y = x;
+    y
+};
+
+fn main() {}
diff --git a/src/test/ui/consts/const-eval/issue-65394.stderr b/src/test/ui/consts/const-eval/issue-65394.stderr
new file mode 100644
index 00000000000..f48c551cb50
--- /dev/null
+++ b/src/test/ui/consts/const-eval/issue-65394.stderr
@@ -0,0 +1,11 @@
+error[E0017]: references in constants may only refer to immutable values
+  --> $DIR/issue-65394.rs:8:13
+   |
+LL |     let r = &mut x;
+   |             ^^^^^^ constants require immutable values
+
+[ERROR rustc_mir::transform::qualify_consts] old validator: [($DIR/issue-65394.rs:8:13: 8:19, "MutBorrow(Mut { allow_two_phase_borrow: false })")]
+[ERROR rustc_mir::transform::qualify_consts] new validator: [($DIR/issue-65394.rs:8:13: 8:19, "MutBorrow(Mut { allow_two_phase_borrow: false })"), ($DIR/issue-65394.rs:7:9: 7:14, "LiveDrop")]
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0017`.