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