| 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`. |