about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2021-10-18 08:13:26 +0200
committerGitHub <noreply@github.com>2021-10-18 08:13:26 +0200
commitb356a04c9a158f4f16301afa4300f2c18a8d99d6 (patch)
tree7ae852f2b91052f28bd48df6b0ea4607a28f62c4 /src/test
parentb902aa98e580c43ea5b2bb7b15d56ecc02c17856 (diff)
parentbf7c32a4477a76bfd18fdcd8f45a939cbed82d34 (diff)
downloadrust-b356a04c9a158f4f16301afa4300f2c18a8d99d6.tar.gz
rust-b356a04c9a158f4f16301afa4300f2c18a8d99d6.zip
Rollup merge of #89965 - JohnTitor:fix-let-else-ice-with-ref-mut, r=petrochenkov
Fix ICE with `let...else` and `ref mut`

Fixes #89960, opened for review.
I'm not satisfied with the current diagnostics, any ideas?
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/let-else/issue-89960.rs7
-rw-r--r--src/test/ui/let-else/issue-89960.stderr12
2 files changed, 19 insertions, 0 deletions
diff --git a/src/test/ui/let-else/issue-89960.rs b/src/test/ui/let-else/issue-89960.rs
new file mode 100644
index 00000000000..8fd55adbfd4
--- /dev/null
+++ b/src/test/ui/let-else/issue-89960.rs
@@ -0,0 +1,7 @@
+#![feature(let_else)]
+
+fn main() {
+    // FIXME: more precise diagnostics
+    let Some(ref mut meow) = Some(()) else { return };
+    //~^ ERROR: cannot borrow value as mutable, as `val` is not declared as mutable
+}
diff --git a/src/test/ui/let-else/issue-89960.stderr b/src/test/ui/let-else/issue-89960.stderr
new file mode 100644
index 00000000000..697f04d6d27
--- /dev/null
+++ b/src/test/ui/let-else/issue-89960.stderr
@@ -0,0 +1,12 @@
+error[E0596]: cannot borrow value as mutable, as `val` is not declared as mutable
+  --> $DIR/issue-89960.rs:5:14
+   |
+LL |     let Some(ref mut meow) = Some(()) else { return };
+   |     ---------^^^^^^^^^^^^-----------------------------
+   |     |        |
+   |     |        cannot borrow as mutable
+   |     help: consider changing this to be mutable: `mut val`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0596`.