1 #![feature(type_alias_impl_trait)]
5 use std::future::Future;
9 type Fut2: Future<Output=Self::T>; // ICE got triggered with traits other than Future here
10 type Fut: Future<Output=Self::Fut2>;
11 fn get_fut(&self) -> Self::Fut;
16 impl Foo for Implementor {
18 type Fut2 = impl Future<Output=u64>;
19 type Fut = impl Future<Output=Self::Fut2>;
21 fn get_fut(&self) -> Self::Fut {
22 //~^ ERROR `{integer}` is not a future
25 // 42 does not impl Future and rustc does actually point out the error,
26 // but rustc used to panic.
27 // Putting a valid Future here always worked fine.