Skip to content

Commit

Permalink
Rollup merge of #92389 - chordtoll:test-92015, r=Mark-Simulacrum
Browse files Browse the repository at this point in the history
Regression test for borrowck ICE #92015

This issue has come up a few times. Creating a regression test.
Closes #92015.
  • Loading branch information
matthiaskrgr committed Jan 6, 2022
2 parents fb87e7c + 57ac317 commit 96a267e
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/test/ui/borrowck/issue-92015.rs
Original file line number Diff line number Diff line change
@@ -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
}
11 changes: 11 additions & 0 deletions src/test/ui/borrowck/issue-92015.stderr
Original file line number Diff line number Diff line change
@@ -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`.

0 comments on commit 96a267e

Please sign in to comment.