|  | 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: Trait>(_: 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: Trait>(_: 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`. |