summaryrefslogtreecommitdiffstats
path: root/tests/ui/lint/missing-copy-implementations-non-exhaustive.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/lint/missing-copy-implementations-non-exhaustive.rs')
-rw-r--r--tests/ui/lint/missing-copy-implementations-non-exhaustive.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/ui/lint/missing-copy-implementations-non-exhaustive.rs b/tests/ui/lint/missing-copy-implementations-non-exhaustive.rs
new file mode 100644
index 000000000..2d5e90720
--- /dev/null
+++ b/tests/ui/lint/missing-copy-implementations-non-exhaustive.rs
@@ -0,0 +1,25 @@
+// Test for issue #116766.
+// Ensure that we don't suggest impl'ing `Copy` for a type if it or at least one
+// of it's variants are marked as `non_exhaustive`.
+
+// check-pass
+
+#![deny(missing_copy_implementations)]
+
+#[non_exhaustive]
+pub enum MyEnum {
+ A,
+}
+
+#[non_exhaustive]
+pub struct MyStruct {
+ foo: usize,
+}
+
+pub enum MyEnum2 {
+ #[non_exhaustive]
+ A,
+ B,
+}
+
+fn main() {}