1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#![feature(type_alias_impl_trait)] // check-pass trait Foo<T> {} impl<T, U> Foo<T> for U {} type Scope = impl Foo<()>; #[allow(unused)] fn infer_scope() -> Scope { () } #[allow(unused)] fn ice() -> impl Foo<Scope> { loop {} } fn main() {}