Rollup merge of #92389 - chordtoll:test-92015, r=Mark-Simulacrum

Regression test for borrowck ICE #92015

This issue has come up a few times. Creating a regression test.
Closes #92015.
This commit is contained in:
Matthias Krüger 2022-01-06 12:01:03 +01:00 committed by GitHub
commit 96a267ee1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 0 deletions

View File

@ -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
}

View File

@ -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`.