• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // run-pass
2 
3 pub trait MyNum {
from_int(_: isize) -> Self4     fn from_int(_: isize) -> Self;
5 }
6 
7 pub trait NumExt: MyNum { }
8 
9 struct S { v: isize }
10 
11 impl MyNum for S {
from_int(i: isize) -> S12     fn from_int(i: isize) -> S {
13         S {
14             v: i
15         }
16     }
17 }
18 
19 impl NumExt for S { }
20 
greater_than_one<T:NumExt>() -> T21 fn greater_than_one<T:NumExt>() -> T { MyNum::from_int(1) }
22 
main()23 pub fn main() {
24     let v: S = greater_than_one();
25     assert_eq!(v.v, 1);
26 }
27