//@ run-pass | |
pub trait MyNum { | |
fn from_int(_: isize) -> Self; | |
} | |
pub trait NumExt: MyNum { } | |
struct S { v: isize } | |
impl MyNum for S { | |
fn from_int(i: isize) -> S { | |
S { | |
v: i | |
} | |
} | |
} | |
impl NumExt for S { } | |
fn greater_than_one<T:NumExt>() -> T { MyNum::from_int(1) } | |
pub fn main() { | |
let v: S = greater_than_one(); | |
assert_eq!(v.v, 1); | |
} |