summaryrefslogtreecommitdiffstats
path: root/tests/ui/derives/issue-91492.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/derives/issue-91492.rs')
-rw-r--r--tests/ui/derives/issue-91492.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/ui/derives/issue-91492.rs b/tests/ui/derives/issue-91492.rs
new file mode 100644
index 000000000..df792f118
--- /dev/null
+++ b/tests/ui/derives/issue-91492.rs
@@ -0,0 +1,25 @@
+// Reproduce the issue with vec
+pub struct NoDerives;
+fn fun1(foo: &mut Vec<NoDerives>, bar: &[NoDerives]) {
+ foo.extend_from_slice(bar); //~ ERROR
+}
+
+// Reproduce the issue with vec
+// and demonstrate that other derives are ignored in the suggested output
+#[derive(Default, PartialEq)]
+pub struct SomeDerives;
+fn fun2(foo: &mut Vec<SomeDerives>, bar: &[SomeDerives]) {
+ foo.extend_from_slice(bar); //~ ERROR
+}
+
+// Try and fail to reproduce the issue without vec.
+// No idea why it doesnt reproduce the issue but its still a useful test case.
+struct Object<T, A>(T, A);
+impl<T: Clone, A: Default> Object<T, A> {
+ fn use_clone(&self) {}
+}
+fn fun3(foo: Object<NoDerives, SomeDerives>) {
+ foo.use_clone(); //~ ERROR
+}
+
+fn main() {}