]>
Commit | Line | Data |
---|---|---|
29967ef6 XL |
1 | // Check that we don't have a cycle when we try to normalize `Self::V` in the |
2 | // bound below. | |
3 | ||
4 | // check-pass | |
5 | ||
6 | trait Is { | |
7 | type T; | |
8 | } | |
9 | ||
10 | impl<U> Is for U { | |
11 | type T = U; | |
12 | } | |
13 | ||
14 | trait Super { | |
15 | type V; | |
16 | } | |
17 | ||
18 | trait Obj: Super { | |
19 | type U: Is<T = Self::V>; | |
20 | } | |
21 | ||
22 | fn is_obj<T: ?Sized + Obj>(_: &T) {} | |
23 | ||
24 | fn f(x: &dyn Obj<U = i32, V = i32>) { | |
25 | is_obj(x) | |
26 | } | |
27 | ||
28 | fn main() {} |