| trait TraitA { | |
| fn method_a(&self) -> isize; | |
| } | |
| trait TraitB { | |
| fn gimme_an_a<A:TraitA>(&self, a: A) -> isize; | |
| } | |
| impl TraitB for isize { | |
| fn gimme_an_a<A:TraitA>(&self, a: A) -> isize { | |
| a.method_a() + *self | |
| } | |
| } | |
| fn call_it<B:TraitB>(b: B) -> isize { | |
| let y = 4; | |
| b.gimme_an_a(y) //~ ERROR `{integer}: TraitA` is not satisfied | |
| } | |
| fn main() { | |
| let x = 3; | |
| assert_eq!(call_it(x), 22); | |
| } |