summaryrefslogtreecommitdiffstats
path: root/tests/ui/methods/disambiguate-multiple-trait-2.stderr
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tests/ui/methods/disambiguate-multiple-trait-2.stderr132
1 files changed, 132 insertions, 0 deletions
diff --git a/tests/ui/methods/disambiguate-multiple-trait-2.stderr b/tests/ui/methods/disambiguate-multiple-trait-2.stderr
new file mode 100644
index 000000000..2778f254a
--- /dev/null
+++ b/tests/ui/methods/disambiguate-multiple-trait-2.stderr
@@ -0,0 +1,132 @@
+error[E0221]: ambiguous associated type `Type` in bounds of `T`
+ --> $DIR/disambiguate-multiple-trait-2.rs:23:12
+ |
+LL | type Type;
+ | --------- ambiguous `Type` from `A`
+...
+LL | type Type;
+ | --------- ambiguous `Type` from `B`
+...
+LL | let _: T::Type;
+ | ^^^^^^^ ambiguous associated type `Type`
+ |
+help: use fully-qualified syntax to disambiguate
+ |
+LL | let _: <T as A>::Type;
+ | ~~~~~~~~~~
+help: use fully-qualified syntax to disambiguate
+ |
+LL | let _: <T as B>::Type;
+ | ~~~~~~~~~~
+
+error[E0034]: multiple applicable items in scope
+ --> $DIR/disambiguate-multiple-trait-2.rs:16:7
+ |
+LL | t.foo();
+ | ^^^ multiple `foo` found
+ |
+note: candidate #1 is defined in the trait `A`
+ --> $DIR/disambiguate-multiple-trait-2.rs:4:5
+ |
+LL | fn foo(&self);
+ | ^^^^^^^^^^^^^^
+note: candidate #2 is defined in the trait `B`
+ --> $DIR/disambiguate-multiple-trait-2.rs:10:5
+ |
+LL | fn foo(&self);
+ | ^^^^^^^^^^^^^^
+help: disambiguate the method for candidate #1
+ |
+LL | A::foo(&t);
+ | ~~~~~~~~~~
+help: disambiguate the method for candidate #2
+ |
+LL | B::foo(&t);
+ | ~~~~~~~~~~
+
+error[E0034]: multiple applicable items in scope
+ --> $DIR/disambiguate-multiple-trait-2.rs:20:16
+ |
+LL | let _ = T::CONST;
+ | ^^^^^ multiple `CONST` found
+ |
+note: candidate #1 is defined in the trait `A`
+ --> $DIR/disambiguate-multiple-trait-2.rs:3:5
+ |
+LL | const CONST: usize = 1;
+ | ^^^^^^^^^^^^^^^^^^
+note: candidate #2 is defined in the trait `B`
+ --> $DIR/disambiguate-multiple-trait-2.rs:9:5
+ |
+LL | const CONST: usize;
+ | ^^^^^^^^^^^^^^^^^^
+help: use fully-qualified syntax to disambiguate
+ |
+LL | let _ = <T as A>::CONST;
+ | ~~~~~~~~~~
+LL | let _ = <T as B>::CONST;
+ | ~~~~~~~~~~
+
+error[E0223]: ambiguous associated type
+ --> $DIR/disambiguate-multiple-trait-2.rs:52:12
+ |
+LL | let _: S::Type;
+ | ^^^^^^^
+ |
+help: use fully-qualified syntax
+ |
+LL | let _: <S as A>::Type;
+ | ~~~~~~~~~~~~~~
+LL | let _: <S as B>::Type;
+ | ~~~~~~~~~~~~~~
+
+error[E0034]: multiple applicable items in scope
+ --> $DIR/disambiguate-multiple-trait-2.rs:46:8
+ |
+LL | S::foo(&s);
+ | ^^^ multiple `foo` found
+ |
+note: candidate #1 is defined in an impl of the trait `A` for the type `T`
+ --> $DIR/disambiguate-multiple-trait-2.rs:35:5
+ |
+LL | fn foo(&self) {}
+ | ^^^^^^^^^^^^^
+note: candidate #2 is defined in an impl of the trait `B` for the type `T`
+ --> $DIR/disambiguate-multiple-trait-2.rs:41:5
+ |
+LL | fn foo(&self) {}
+ | ^^^^^^^^^^^^^
+help: use fully-qualified syntax to disambiguate
+ |
+LL | A::foo(&s);
+ | ~~~
+LL | B::foo(&s);
+ | ~~~
+
+error[E0034]: multiple applicable items in scope
+ --> $DIR/disambiguate-multiple-trait-2.rs:49:16
+ |
+LL | let _ = S::CONST;
+ | ^^^^^ multiple `CONST` found
+ |
+note: candidate #1 is defined in an impl of the trait `A` for the type `T`
+ --> $DIR/disambiguate-multiple-trait-2.rs:34:5
+ |
+LL | const CONST: usize = 1;
+ | ^^^^^^^^^^^^^^^^^^
+note: candidate #2 is defined in an impl of the trait `B` for the type `T`
+ --> $DIR/disambiguate-multiple-trait-2.rs:40:5
+ |
+LL | const CONST: usize = 1;
+ | ^^^^^^^^^^^^^^^^^^
+help: use fully-qualified syntax to disambiguate
+ |
+LL | let _ = <S as A>::CONST;
+ | ~~~~~~~~~~
+LL | let _ = <S as B>::CONST;
+ | ~~~~~~~~~~
+
+error: aborting due to 6 previous errors
+
+Some errors have detailed explanations: E0034, E0221, E0223.
+For more information about an error, try `rustc --explain E0034`.