error[E0277]: the trait bound `i32: Tr` is not satisfied
  --> $DIR/issue-84973-2.rs:11:9
   |
LL |     foo(a);
   |     --- ^ the trait `Tr` is not implemented for `i32`
   |     |
   |     required by a bound introduced by this call
   |
note: required by a bound in `foo`
  --> $DIR/issue-84973-2.rs:7:11
   |
LL | fn foo<T: Tr>(i: T) {}
   |           ^^ required by this bound in `foo`
help: consider mutably borrowing here
   |
LL |     foo(&mut a);
   |         ++++

error: aborting due to previous error

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