struct A(B); //~^ ERROR recursive types `A` and `B` have infinite size //~| ERROR `T` is only used recursively struct B(A>); //~^ ERROR `T` is only used recursively trait Foo {} impl Foo for T where T: Send {} impl Foo for B {} //~^ ERROR conflicting implementations of trait `Foo` for type `B` fn main() {}