]> git.proxmox.com Git - rustc.git/blob - src/test/ui/traits/trait-alias/trait-alias-syntax.rs
New upstream version 1.51.0+dfsg1
[rustc.git] / src / test / ui / traits / trait-alias / trait-alias-syntax.rs
1 // run-pass
2
3 #![feature(trait_alias)]
4
5 trait SimpleAlias = Default;
6 trait GenericAlias<T> = Iterator<Item = T>;
7 trait Partial<T> = IntoIterator<Item = T>;
8 trait SpecificAlias = GenericAlias<i32>;
9 trait PartialEqRef<'a, T: 'a> = PartialEq<&'a T>;
10 trait StaticAlias = 'static;
11
12 trait Things<T> {}
13 trait Romeo {}
14 #[allow(dead_code)]
15 struct The<T>(T);
16 #[allow(dead_code)]
17 struct Fore<T>(T);
18 impl<T, U> Things<T> for The<U> {}
19 impl<T> Romeo for Fore<T> {}
20
21 trait WithWhere<Art, Thou> = Romeo + Romeo where Fore<(Art, Thou)>: Romeo;
22 trait BareWhere<Wild, Are> = where The<Wild>: Things<Are>;
23
24 fn main() {}