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