summaryrefslogtreecommitdiffstats
path: root/src/test/ui/methods/method-ambig-one-trait-unknown-int-type.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/methods/method-ambig-one-trait-unknown-int-type.stderr')
-rw-r--r--src/test/ui/methods/method-ambig-one-trait-unknown-int-type.stderr47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/test/ui/methods/method-ambig-one-trait-unknown-int-type.stderr b/src/test/ui/methods/method-ambig-one-trait-unknown-int-type.stderr
new file mode 100644
index 000000000..e0f8a5447
--- /dev/null
+++ b/src/test/ui/methods/method-ambig-one-trait-unknown-int-type.stderr
@@ -0,0 +1,47 @@
+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();
+ | ^^^^^
+ |
+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`.