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 associated function for candidate #1
   |
LL |     A::foo(&a)
   |     ~~~~~~~~~~
help: disambiguate the associated function for candidate #2
   |
LL |     B::foo(&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 associated function for candidate #1
   |
LL |     C::foo(&a)
   |     ~~~~~~~~~~
help: disambiguate the associated function 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 associated function for candidate #1
   |
LL |     E::foo(a)
   |     ~~~~~~~~~
help: disambiguate the associated function for candidate #2
   |
LL |     F::foo(a)
   |     ~~~~~~~~~

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0034`.
