about summary refs log tree commit diff
path: root/src/test/ui
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-10-14 00:45:19 +0200
committerGitHub <noreply@github.com>2022-10-14 00:45:19 +0200
commitcf675656cb07cb349c074041d3176c8a749b29e1 (patch)
tree0c34895f375438cdadb76cebcb2023fccd5fcab0 /src/test/ui
parentea709c28c39fbc0ebcf4a9f77e6317c0c52ec771 (diff)
parent4a25a49edfcca0392a9731df351f1a1229a6e662 (diff)
Rollup merge of #103016 - nbdd0121:enum, r=pnkfelix
Ensure enum cast moves

Fix #102389

r? ``@pnkfelix``
Diffstat (limited to 'src/test/ui')
-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`.