25 lines
600 B
Rust
25 lines
600 B
Rust
// run-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() {}
|