]> git.lizzy.rs Git - rust.git/blob - src/test/ui/associated-types/associated-types-multiple-types-one-trait.rs
Rollup merge of #105710 - compiler-errors:dyn-star-rigid-cast, r=eholk
[rust.git] / src / test / ui / associated-types / associated-types-multiple-types-one-trait.rs
1 trait Foo {
2     type X;
3     type Y;
4 }
5
6 fn have_x_want_x<T:Foo<X=u32>>(t: &T)
7 {
8     want_x(t);
9 }
10
11 fn have_x_want_y<T:Foo<X=u32>>(t: &T)
12 {
13     want_y(t); //~ ERROR type mismatch
14 }
15
16 fn have_y_want_x<T:Foo<Y=i32>>(t: &T)
17 {
18     want_x(t); //~ ERROR type mismatch
19 }
20
21 fn have_y_want_y<T:Foo<Y=i32>>(t: &T)
22 {
23     want_y(t);
24 }
25
26 fn have_xy_want_x<T:Foo<X=u32,Y=i32>>(t: &T)
27 {
28     want_x(t);
29 }
30
31 fn have_xy_want_y<T:Foo<X=u32,Y=i32>>(t: &T)
32 {
33     want_y(t);
34 }
35
36 fn have_xy_want_xy<T:Foo<X=u32,Y=i32>>(t: &T)
37 {
38     want_x(t);
39     want_y(t);
40 }
41
42 fn want_x<T:Foo<X=u32>>(t: &T) { }
43
44 fn want_y<T:Foo<Y=i32>>(t: &T) { }
45
46 fn main() { }