]>
Commit | Line | Data |
---|---|---|
b7449926 | 1 | // run-pass |
9346a6ac | 2 | pub trait MyEq {} |
c34b1796 | 3 | |
9346a6ac | 4 | pub trait MyNum { |
041b39d2 | 5 | fn from_int(_: isize) -> Self; |
223e47cc LB |
6 | } |
7 | ||
8 | pub trait NumExt: MyEq + MyNum { } | |
9 | ||
c34b1796 | 10 | struct S { v: isize } |
223e47cc LB |
11 | |
12 | impl MyEq for S { } | |
13 | ||
14 | impl MyNum for S { | |
c34b1796 | 15 | fn from_int(i: isize) -> S { |
223e47cc LB |
16 | S { |
17 | v: i | |
18 | } | |
19 | } | |
20 | } | |
21 | ||
22 | impl NumExt for S { } | |
23 | ||
24 | fn greater_than_one<T:NumExt>() -> T { MyNum::from_int(1) } | |
25 | ||
26 | pub fn main() { | |
27 | let v: S = greater_than_one(); | |
970d7e83 | 28 | assert_eq!(v.v, 1); |
223e47cc | 29 | } |