error[E0282]: type annotations needed for `Vec` --> $DIR/method-ambig-one-trait-unknown-int-type.rs:24:17 | LL | let mut x = Vec::new(); | ----- ^^^^^^^^ cannot infer type for type parameter `T` | | | consider giving `x` the explicit type `Vec`, where the type parameter `T` is specified error[E0283]: type annotations needed --> $DIR/method-ambig-one-trait-unknown-int-type.rs:26:7 | LL | x.foo(); | ^^^ cannot infer type for struct `Vec<_>` | note: multiple `impl`s satisfying `Vec<_>: Foo` found --> $DIR/method-ambig-one-trait-unknown-int-type.rs:9:1 | LL | impl Foo for Vec { | ^^^^^^^^^^^^^^^^^^^^^^^ ... LL | impl Foo for Vec { | ^^^^^^^^^^^^^^^^^^^^^^^ error[E0308]: mismatched types --> $DIR/method-ambig-one-trait-unknown-int-type.rs:33:20 | LL | let y: usize = x.foo(); | ----- ^^^^^^^ expected `usize`, found `isize` | | | expected due to this | help: you can convert an `isize` to a `usize` and panic if the converted value doesn't fit | LL | let y: usize = x.foo().try_into().unwrap(); | ++++++++++++++++++++ error: aborting due to 3 previous errors Some errors have detailed explanations: E0282, E0283, E0308. For more information about an error, try `rustc --explain E0282`.