// check-pass // Regression test for issue #63677 - ensure that // coherence checking can properly handle 'impl trait' // in type aliases #![feature(type_alias_impl_trait)] pub trait Trait {} pub struct S1(T); pub struct S2(T); pub type T1 = impl Trait; pub type T2 = S1; pub type T3 = S2; impl Trait for S1 {} impl S2 {} impl T3 {} pub fn use_t1() -> T1 { S1(()) } fn main() {}