#![feature(type_alias_impl_trait)] use std::fmt::Debug; fn main() {} type Two = impl Debug; fn three(t: T) -> Two { (t, 5i8) //~^ ERROR `T` doesn't implement `Debug` } trait Bar { type Blub: Debug; const FOO: Self::Blub; } impl Bar for u32 { type Blub = i32; const FOO: i32 = 42; } fn four(t: T) -> Two { (t, ::FOO) //~^ ERROR `U: Bar` is not satisfied //~| ERROR `T` doesn't implement `Debug` } fn is_sync() {} fn asdfl() { //FIXME(oli-obk): these currently cause cycle errors //is_sync::>(); //is_sync::>(); }