Skip to content

Commit

Permalink
Rollup merge of rust-lang#92389 - chordtoll:test-92015, r=Mark-Simula…
Browse files Browse the repository at this point in the history
…crum

Regression test for borrowck ICE rust-lang#92015

This issue has come up a few times. Creating a regression test.
Closes rust-lang#92015.
  • Loading branch information
matthiaskrgr authored Jan 5, 2022
2 parents 2758a54 + 57ac317 commit 6041442
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 6041442

Please sign in to comment.