// edition: 2021 // build-fail //~^^ ERROR overflow evaluating the requirement `<() as B>::Assoc == _` #![feature(rustc_attrs)] #![feature(impl_trait_in_assoc_type)] #[rustc_coinductive] trait A { type Assoc; fn test() -> Self::Assoc; } #[rustc_coinductive] trait B { type Assoc; fn test() -> Self::Assoc; } impl B for T { type Assoc = impl Sized; fn test() -> ::Assoc { ::test() } } fn main() { <() as A>::test(); } impl A for T { type Assoc = impl Sized; fn test() -> ::Assoc { ::test() } }