2016-01-25 23:55:51 -06:00
|
|
|
// rustfmt-where_trailing_comma: true
|
|
|
|
|
|
|
|
fn f<S, T>(x: T, y: S) -> T
|
|
|
|
where T: P,
|
|
|
|
S: Q,
|
|
|
|
{
|
|
|
|
x
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Trait for T
|
|
|
|
where T: P,
|
|
|
|
{
|
|
|
|
fn f(x: T) -> T
|
|
|
|
where T: Q + R,
|
|
|
|
{
|
|
|
|
x
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
struct Pair<S, T>
|
|
|
|
where T: P,
|
|
|
|
S: P + Q,
|
|
|
|
{
|
|
|
|
a: T,
|
|
|
|
b: S,
|
|
|
|
}
|
|
|
|
|
|
|
|
struct TupPair<S, T>(S, T)
|
|
|
|
where T: P,
|
|
|
|
S: P + Q;
|
|
|
|
|
|
|
|
enum E<S, T>
|
|
|
|
where S: P,
|
|
|
|
T: P,
|
|
|
|
{
|
2016-05-18 15:38:49 -05:00
|
|
|
A { a: T },
|
2016-01-25 23:55:51 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
type Double<T>
|
|
|
|
where T: P,
|
|
|
|
T: Q = Pair<T, T>;
|
|
|
|
|
|
|
|
extern "C" {
|
|
|
|
fn f<S, T>(x: T, y: S) -> T
|
|
|
|
where T: P,
|
|
|
|
S: Q;
|
|
|
|
}
|
|
|
|
|
2016-03-14 21:05:20 -05:00
|
|
|
trait Q<S, T>
|
|
|
|
where T: P,
|
|
|
|
S: R,
|
2016-01-25 23:55:51 -06:00
|
|
|
{
|
|
|
|
fn f<U, V>(self, x: T, y: S, z: U) -> Self
|
|
|
|
where U: P,
|
|
|
|
V: P;
|
|
|
|
}
|