| error[E0282]: type annotations needed for `Vec<T>` |
| --> $DIR/method-ambig-one-trait-unknown-int-type.rs:24:9 |
| | |
| LL | let mut x = Vec::new(); |
| | ^^^^^ ---------- type must be known at this point |
| | |
| help: consider giving `x` an explicit type, where the type for type parameter `T` is specified |
| | |
| LL | let mut x: Vec<T> = Vec::new(); |
| | ++++++++ |
| |
| error[E0283]: type annotations needed |
| --> $DIR/method-ambig-one-trait-unknown-int-type.rs:26:7 |
| | |
| LL | x.foo(); |
| | ^^^ |
| | |
| note: multiple `impl`s satisfying `Vec<_>: Foo` found |
| --> $DIR/method-ambig-one-trait-unknown-int-type.rs:9:1 |
| | |
| LL | impl Foo for Vec<usize> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^ |
| ... |
| LL | impl Foo for Vec<isize> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^ |
| help: try using a fully qualified path to specify the expected types |
| | |
| LL | <Vec<T> as Foo>::foo(&x); |
| | ++++++++++++++++++++++ ~ |
| |
| 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`. |