blob: 7da0b049264c298b610c3a29ed1809dff125bf0f [file] [log] [blame]
// check-pass
// Regression test for issue #67844
// Ensures that we properly handle nested TAIT occurrences
// with generic parameters
#![feature(type_alias_impl_trait)]
trait WithAssoc { type AssocType; }
trait WithParam<A> {}
type Return<A> = impl WithAssoc<AssocType = impl WithParam<A>>;
struct MyParam;
impl<A> WithParam<A> for MyParam {}
struct MyStruct;
impl WithAssoc for MyStruct {
type AssocType = MyParam;
}
fn my_fun<A>() -> Return<A> {
MyStruct
}
fn my_other_fn<A>() -> impl WithAssoc<AssocType = impl WithParam<A>> {
MyStruct
}
fn main() {}