| error[E0277]: the trait bound `&dyn std::io::Write: std::io::Write` is not satisfied | 
 |   --> $DIR/mut-borrow-needed-by-trait.rs:17:29 | 
 |    | | 
 | LL |     let fp = BufWriter::new(fp); | 
 |    |              -------------- ^^ the trait `std::io::Write` is not implemented for `&dyn std::io::Write` | 
 |    |              | | 
 |    |              required by a bound introduced by this call | 
 |    | | 
 |    = note: `std::io::Write` is implemented for `&mut dyn std::io::Write`, but not for `&dyn std::io::Write` | 
 | note: required by a bound in `BufWriter::<W>::new` | 
 |   --> $SRC_DIR/std/src/io/buffered/bufwriter.rs:LL:COL | 
 |  | 
 | error[E0277]: the trait bound `&dyn std::io::Write: std::io::Write` is not satisfied | 
 |   --> $DIR/mut-borrow-needed-by-trait.rs:17:14 | 
 |    | | 
 | LL |     let fp = BufWriter::new(fp); | 
 |    |              ^^^^^^^^^^^^^^^^^^ the trait `std::io::Write` is not implemented for `&dyn std::io::Write` | 
 |    | | 
 |    = note: `std::io::Write` is implemented for `&mut dyn std::io::Write`, but not for `&dyn std::io::Write` | 
 | note: required by a bound in `BufWriter` | 
 |   --> $SRC_DIR/std/src/io/buffered/bufwriter.rs:LL:COL | 
 |  | 
 | error[E0599]: the method `write_fmt` exists for struct `BufWriter<&dyn std::io::Write>`, but its trait bounds were not satisfied | 
 |   --> $DIR/mut-borrow-needed-by-trait.rs:21:14 | 
 |    | | 
 | LL |     writeln!(fp, "hello world").unwrap(); | 
 |    |     ---------^^---------------- method cannot be called on `BufWriter<&dyn std::io::Write>` due to unsatisfied trait bounds | 
 |    | | 
 | note: must implement `io::Write`, `fmt::Write`, or have a `write_fmt` method | 
 |   --> $DIR/mut-borrow-needed-by-trait.rs:21:14 | 
 |    | | 
 | LL |     writeln!(fp, "hello world").unwrap(); | 
 |    |              ^^ | 
 |    = note: the following trait bounds were not satisfied: | 
 |            `&dyn std::io::Write: std::io::Write` | 
 |            which is required by `BufWriter<&dyn std::io::Write>: std::io::Write` | 
 |  | 
 | error: aborting due to 3 previous errors | 
 |  | 
 | Some errors have detailed explanations: E0277, E0599. | 
 | For more information about an error, try `rustc --explain E0277`. |