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 }