error[E0034]: multiple applicable items in scope --> $DIR/issue-37767.rs:10:7 | LL | a.foo() | ^^^ multiple `foo` found | note: candidate #1 is defined in the trait `A` --> $DIR/issue-37767.rs:2:5 | LL | fn foo(&mut self) {} | ^^^^^^^^^^^^^^^^^ note: candidate #2 is defined in the trait `B` --> $DIR/issue-37767.rs:6:5 | LL | fn foo(&mut self) {} | ^^^^^^^^^^^^^^^^^ help: disambiguate the method for candidate #1 | LL | A::foo(&mut a) | ~~~~~~~~~~~~~~ help: disambiguate the method for candidate #2 | LL | B::foo(&mut a) | ~~~~~~~~~~~~~~ error[E0034]: multiple applicable items in scope --> $DIR/issue-37767.rs:22:7 | LL | a.foo() | ^^^ multiple `foo` found | note: candidate #1 is defined in the trait `C` --> $DIR/issue-37767.rs:14:5 | LL | fn foo(&self) {} | ^^^^^^^^^^^^^ note: candidate #2 is defined in the trait `D` --> $DIR/issue-37767.rs:18:5 | LL | fn foo(&self) {} | ^^^^^^^^^^^^^ help: disambiguate the method for candidate #1 | LL | C::foo(&a) | ~~~~~~~~~~ help: disambiguate the method for candidate #2 | LL | D::foo(&a) | ~~~~~~~~~~ error[E0034]: multiple applicable items in scope --> $DIR/issue-37767.rs:34:7 | LL | a.foo() | ^^^ multiple `foo` found | note: candidate #1 is defined in the trait `E` --> $DIR/issue-37767.rs:26:5 | LL | fn foo(self) {} | ^^^^^^^^^^^^ note: candidate #2 is defined in the trait `F` --> $DIR/issue-37767.rs:30:5 | LL | fn foo(self) {} | ^^^^^^^^^^^^ help: disambiguate the method for candidate #1 | LL | E::foo(a) | ~~~~~~~~~ help: disambiguate the method for candidate #2 | LL | F::foo(a) | ~~~~~~~~~ error: aborting due to 3 previous errors For more information about this error, try `rustc --explain E0034`.