error[E0277]: the trait bound `&S: Trait` is not satisfied --> $DIR/imm-ref-trait-object-literal.rs:12:7 | LL | foo(&s); | --- ^^ the trait `Trait` is not implemented for `&S` | | | required by a bound introduced by this call | = help: the trait `Trait` is implemented for `&mut S` note: required by a bound in `foo` --> $DIR/imm-ref-trait-object-literal.rs:7:11 | LL | fn foo(_: X) {} | ^^^^^ required by this bound in `foo` help: consider changing this borrow's mutability | LL | foo(&mut s); | ~~~~ error[E0277]: the trait bound `S: Trait` is not satisfied --> $DIR/imm-ref-trait-object-literal.rs:13:7 | LL | foo(s); | --- ^ the trait `Trait` is not implemented for `S` | | | required by a bound introduced by this call | note: required by a bound in `foo` --> $DIR/imm-ref-trait-object-literal.rs:7:11 | LL | fn foo(_: X) {} | ^^^^^ required by this bound in `foo` help: consider mutably borrowing here | LL | foo(&mut s); | ++++ error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0277`.