about summary refs log tree commit diff
path: root/src/test/ui/structs-enums/struct-rec/mutual-struct-recursion.rs
diff options
context:
space:
mode:
authorFabian Wolff <fabi.wolff@arcor.de>2021-05-10 17:47:50 +0200
committerFabian Wolff <fabi.wolff@arcor.de>2021-05-10 17:47:50 +0200
commit98728c2b35da6600e15d57e494041dcf6dc21c1a (patch)
tree575c194d960a22d7462daa76b6bb688268c26b94 /src/test/ui/structs-enums/struct-rec/mutual-struct-recursion.rs
parentee882b3a4b74f8b19146008900a3971968e1a5b3 (diff)
downloadrust-98728c2b35da6600e15d57e494041dcf6dc21c1a.tar.gz
rust-98728c2b35da6600e15d57e494041dcf6dc21c1a.zip
Implement changes suggested by tmiasko and davidtwco
Diffstat (limited to 'src/test/ui/structs-enums/struct-rec/mutual-struct-recursion.rs')
-rw-r--r--src/test/ui/structs-enums/struct-rec/mutual-struct-recursion.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/test/ui/structs-enums/struct-rec/mutual-struct-recursion.rs b/src/test/ui/structs-enums/struct-rec/mutual-struct-recursion.rs
new file mode 100644
index 00000000000..cca97f43eff
--- /dev/null
+++ b/src/test/ui/structs-enums/struct-rec/mutual-struct-recursion.rs
@@ -0,0 +1,23 @@
+struct A<T> {
+//~^ ERROR recursive type `A` has infinite size
+    x: T,
+    y: B<T>,
+}
+
+struct B<T> {
+//~^ ERROR recursive type `B` has infinite size
+    z: A<T>
+}
+
+struct C<T> {
+//~^ ERROR recursive type `C` has infinite size
+    x: T,
+    y: Option<Option<D<T>>>,
+}
+
+struct D<T> {
+//~^ ERROR recursive type `D` has infinite size
+    z: Option<Option<C<T>>>,
+}
+
+fn main() {}