| use std::env::args; |
| use std::fs::File; |
| use std::io::{stdout, Write, BufWriter}; |
| |
| fn main() { |
| let mut args = args(); |
| let _ = args.next(); |
| let dest = args.next(); |
| |
| let h1; let h2; let h3; |
| |
| let fp: &dyn Write = match dest { |
| Some(path) => { h1 = File::create(path).unwrap(); &h1 }, |
| None => { h2 = stdout(); h3 = h2.lock(); &h3 } |
| }; |
| |
| let fp = BufWriter::new(fp); |
| //~^ ERROR the trait bound `&dyn std::io::Write: std::io::Write` is not satisfied |
| //~| ERROR the trait bound `&dyn std::io::Write: std::io::Write` is not satisfied |
| |
| writeln!(fp, "hello world").unwrap(); //~ ERROR the method |
| } |