rust/tests/ui/type-alias-impl-trait/mututally-recursive-overflo...

41 lines
615 B
Rust

//@ 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<T: A> B for T {
type Assoc = impl Sized;
fn test() -> <Self as B>::Assoc {
<T as A>::test()
}
}
fn main() {
<() as A>::test();
}
impl<T: B> A for T {
type Assoc = impl Sized;
fn test() -> <Self as A>::Assoc {
<T as B>::test()
}
}