about summary refs log tree commit diff
path: root/src/test/ui/let-else
diff options
context:
space:
mode:
authorYuki Okushi <yuki.okushi@huawei.com>2021-10-17 07:12:22 +0900
committerYuki Okushi <yuki.okushi@huawei.com>2021-10-17 07:12:22 +0900
commitbf7c32a4477a76bfd18fdcd8f45a939cbed82d34 (patch)
treecc3d1787d30be96608a1faa86a070cd3387d3252 /src/test/ui/let-else
parent7fbd4ce2768744b3bd2ddf8453b73f4f18dbe5bc (diff)
downloadrust-bf7c32a4477a76bfd18fdcd8f45a939cbed82d34.tar.gz
rust-bf7c32a4477a76bfd18fdcd8f45a939cbed82d34.zip
Fix ICE with `let...else` and `ref mut`
Diffstat (limited to 'src/test/ui/let-else')
-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`.