struct A { //~^ ERROR recursive types `A` and `B` have infinite size x: T, y: B, } struct B { z: A } struct C { //~^ ERROR recursive types `C` and `D` have infinite size x: T, y: Option>>, } struct D { z: Option>>, } fn main() {}