1 // revisions: min_tait full_tait
2 #![feature(min_type_alias_impl_trait)]
3 #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
4 //[full_tait]~^ WARN incomplete
10 type Two<T, U> = impl Debug;
12 fn two<T: Debug>(t: T) -> Two<T, u32> {
13 //~^ ERROR non-defining opaque type use in defining scope
17 fn three<T: Debug, U>(t: T) -> Two<T, U> {
23 const FOO: Self::Blub;
31 fn four<T: Debug, U: Bar>(t: T) -> Two<T, U> {
35 fn is_sync<T: Sync>() {}
38 //FIXME(oli-obk): these currently cause cycle errors
39 //is_sync::<Two<i32, u32>>();
40 //is_sync::<Two<i32, *const i32>>();