about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGary Guo <gary@garyguo.net>2022-10-13 17:24:19 +0100
committerGary Guo <gary@garyguo.net>2022-10-13 17:24:19 +0100
commitf1452fc1c99bc6d126a096694b0f70d9fe4734b6 (patch)
treec3ac21bcc1c602e5ebe52b4ae56697289b33803b
parentde0396c7180f8e36165c3fefb9325b0ec1bfb5a2 (diff)
Add test for issue 102389
-rw-r--r--src/test/ui/mir/issue-102389.rs8
-rw-r--r--src/test/ui/mir/issue-102389.stderr9
2 files changed, 17 insertions, 0 deletions
diff --git a/src/test/ui/mir/issue-102389.rs b/src/test/ui/mir/issue-102389.rs
new file mode 100644
index 00000000000..8b27d5e5574
--- /dev/null
+++ b/src/test/ui/mir/issue-102389.rs
@@ -0,0 +1,8 @@
+enum Enum { A, B, C }
+
+fn func(inbounds: &Enum, array: &[i16; 3]) -> i16 {
+    array[*inbounds as usize]
+    //~^ ERROR [E0507]
+}
+
+fn main() {}
diff --git a/src/test/ui/mir/issue-102389.stderr b/src/test/ui/mir/issue-102389.stderr
new file mode 100644
index 00000000000..925dc258a4c
--- /dev/null
+++ b/src/test/ui/mir/issue-102389.stderr
@@ -0,0 +1,9 @@
+error[E0507]: cannot move out of `*inbounds` which is behind a shared reference
+  --> $DIR/issue-102389.rs:4:11
+   |
+LL |     array[*inbounds as usize]
+   |           ^^^^^^^^^ move occurs because `*inbounds` has type `Enum`, which does not implement the `Copy` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.