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