error[E0072]: recursive types `A` and `B` have infinite size --> $DIR/mutual-struct-recursion.rs:1:1 | LL | struct A<T> { | ^^^^^^^^^^^ ... LL | y: B<T>, | ---- recursive without indirection ... LL | struct B<T> { | ^^^^^^^^^^^ LL | z: A<T> | ---- recursive without indirection | help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to break the cycle | LL ~ y: Box<B<T>>, LL | } LL | LL | struct B<T> { LL ~ z: Box<A<T>> | error[E0072]: recursive types `C` and `D` have infinite size --> $DIR/mutual-struct-recursion.rs:11:1 | LL | struct C<T> { | ^^^^^^^^^^^ ... LL | y: Option<Option<D<T>>>, | ---- recursive without indirection ... LL | struct D<T> { | ^^^^^^^^^^^ LL | z: Option<Option<C<T>>>, | ---- recursive without indirection | help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to break the cycle | LL ~ y: Option<Option<Box<D<T>>>>, LL | } LL | LL | struct D<T> { LL ~ z: Option<Option<Box<C<T>>>>, | error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0072`.