//@ known-bug: #119272 #![feature(type_alias_impl_trait)] mod defining_scope { use super::*; pub type Alias = impl Sized; pub fn cast(x: Container, T>) -> Container { x } } struct Container, U> { x: >::Assoc, } trait Trait { type Assoc; } impl Trait for T { type Assoc = Box; } impl Trait for defining_scope::Alias { type Assoc = usize; } fn main() {}