trait Trait {} | |
impl Trait for () {} | |
fn foo<T: Trait, U: Trait>() -> impl Trait { | |
//~^ WARN function cannot return without recursing [unconditional_recursion] | |
let a: T = foo::<T, U>(); | |
loop {} | |
let _: T = foo::<U, T>(); | |
//~^ ERROR concrete type differs from previous defining opaque type use | |
} | |
fn main() {} |