#![feature(type_alias_impl_trait)] //@ check-pass pub trait Foo {} impl Foo for U {} mod scope { pub type Scope = impl super::Foo<()>; #[allow(unused)] fn infer_scope() -> Scope { () } } #[allow(unused)] fn ice() -> impl Foo { loop {} } fn main() {}