about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tests/ui/traits/solver-cycles/107481-self-referential-struct-cow-as-last-field.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/ui/traits/solver-cycles/107481-self-referential-struct-cow-as-last-field.rs b/tests/ui/traits/solver-cycles/107481-self-referential-struct-cow-as-last-field.rs
new file mode 100644
index 00000000000..f953eb1c0f7
--- /dev/null
+++ b/tests/ui/traits/solver-cycles/107481-self-referential-struct-cow-as-last-field.rs
@@ -0,0 +1,19 @@
+// Regression test for #107481
+
+//@ check-pass
+
+use std::{borrow::Cow, collections::HashMap};
+
+#[derive(Clone)]
+struct Foo<'a>(Cow<'a, [Self]>);
+
+#[derive(Clone)]
+struct Bar<'a>(Cow<'a, HashMap<String, Self>>);
+
+#[derive(Clone)]
+struct Baz<'a>(Cow<'a, Vec<Self>>);
+
+#[derive(Clone)]
+struct Qux<'a>(Cow<'a, Box<Self>>);
+
+fn main() {}