mirror of https://github.com/rust-lang/rust
41 lines
615 B
Rust
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()
|
|
}
|
|
}
|