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 }