]> git.lizzy.rs Git - rust.git/commitdiff
Added regression test for issue 92015
authorchordtoll <git@chordtoll.com>
Wed, 29 Dec 2021 05:50:00 +0000 (21:50 -0800)
committerchordtoll <git@chordtoll.com>
Wed, 29 Dec 2021 05:50:00 +0000 (21:50 -0800)
src/test/ui/borrowck/issue-92015.rs [new file with mode: 0644]
src/test/ui/borrowck/issue-92015.stderr [new file with mode: 0644]

diff --git a/src/test/ui/borrowck/issue-92015.rs b/src/test/ui/borrowck/issue-92015.rs
new file mode 100644 (file)
index 0000000..16d6517
--- /dev/null
@@ -0,0 +1,7 @@
+// Regression test for #92105.
+// ICE when mutating immutable reference from last statement of a block.
+
+fn main() {
+    let foo = Some(&0).unwrap();
+    *foo = 1; //~ ERROR cannot assign
+}
diff --git a/src/test/ui/borrowck/issue-92015.stderr b/src/test/ui/borrowck/issue-92015.stderr
new file mode 100644 (file)
index 0000000..32a65d3
--- /dev/null
@@ -0,0 +1,11 @@
+error[E0594]: cannot assign to `*foo`, which is behind a `&` reference
+  --> $DIR/issue-92015.rs:6:5
+   |
+LL |     let foo = Some(&0).unwrap();
+   |         --- help: consider changing this to be a mutable reference: `&mut i32`
+LL |     *foo = 1;
+   |     ^^^^^^^^ `foo` is a `&` reference, so the data it refers to cannot be written
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0594`.