| // Regression test for issue #57807 - ensure | |
| // that we properly unify associated types within | |
| // a type alias impl trait | |
| //@ check-pass | |
| #![feature(impl_trait_in_assoc_type)] | |
| trait Bar { | |
| type A; | |
| } | |
| impl Bar for () { | |
| type A = (); | |
| } | |
| trait Foo { | |
| type A; | |
| type B: Bar<A = Self::A>; | |
| fn foo() -> Self::B; | |
| } | |
| impl Foo for () { | |
| type A = (); | |
| type B = impl Bar<A = Self::A>; | |
| fn foo() -> Self::B { | |
| () | |
| } | |
| } | |
| fn main() {} |