1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
struct A<T> { //~^ ERROR recursive types `A` and `B` have infinite size x: T, y: B<T>, } struct B<T> { z: A<T> } struct C<T> { //~^ ERROR recursive types `C` and `D` have infinite size x: T, y: Option<Option<D<T>>>, } struct D<T> { z: Option<Option<C<T>>>, } fn main() {}