| //@ check-pass |
| |
| #![feature(trait_alias)] |
| |
| trait SimpleAlias = Default; |
| trait GenericAlias<T> = Iterator<Item = T>; |
| trait Partial<T> = IntoIterator<Item = T>; |
| trait SpecificAlias = GenericAlias<i32>; |
| trait PartialEqRef<'a, T: 'a> = PartialEq<&'a T>; |
| trait StaticAlias = 'static; |
| |
| trait Things<T> {} |
| trait Romeo {} |
| #[allow(dead_code)] |
| struct The<T>(T); |
| #[allow(dead_code)] |
| struct Fore<T>(T); |
| impl<T, U> Things<T> for The<U> {} |
| impl<T> Romeo for Fore<T> {} |
| |
| trait WithWhere<Art, Thou> = Romeo + Romeo where Fore<(Art, Thou)>: Romeo; |
| trait BareWhere<Wild, Are> = where The<Wild>: Things<Are>; |
| |
| fn main() {} |