From f1452fc1c99bc6d126a096694b0f70d9fe4734b6 Mon Sep 17 00:00:00 2001 From: Gary Guo Date: Thu, 13 Oct 2022 17:24:19 +0100 Subject: [PATCH] Add test for issue 102389 --- src/test/ui/mir/issue-102389.rs | 8 ++++++++ src/test/ui/mir/issue-102389.stderr | 9 +++++++++ 2 files changed, 17 insertions(+) create mode 100644 src/test/ui/mir/issue-102389.rs create mode 100644 src/test/ui/mir/issue-102389.stderr diff --git a/src/test/ui/mir/issue-102389.rs b/src/test/ui/mir/issue-102389.rs new file mode 100644 index 0000000000000..8b27d5e55743d --- /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 0000000000000..925dc258a4c3c --- /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`.