trait Trait {}

struct S;

impl<'a> Trait for &'a mut S {}

fn foo<X: Trait>(_: X) {}


fn main() {
  let s = S;
  foo(&s); //~ ERROR the trait bound `&S: Trait` is not satisfied
  foo(s); //~ ERROR the trait bound `S: Trait` is not satisfied
}