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