// A slight variation of issue-84973.rs. Here, a mutable borrow is
// required (and the obligation kind is different).

trait Tr {}
impl Tr for &mut i32 {}

fn foo<T: Tr>(i: T) {}

fn main() {
    let a: i32 = 32;
    foo(a);
    //~^ ERROR: the trait bound `i32: Tr` is not satisfied [E0277]
}