struct A<T>(T); | |
struct B; | |
trait I<T> {} | |
impl I<i32> for B {} | |
impl I<u32> for B {} | |
trait V<U> { | |
fn method(self) -> U; | |
} | |
impl<T, U> V<U> for A<T> | |
where | |
T: I<U>, | |
{ | |
fn method(self) -> U { unimplemented!() } | |
} | |
fn main() { | |
let a = A(B); | |
a.method(); //~ ERROR type annotations needed | |
} |