error: use of `write!(stdout(), ...).unwrap()`
  --> tests/ui/explicit_write.rs:22:9
   |
LL |         write!(std::io::stdout(), "test").unwrap();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `print!("test")`
   |
   = note: `-D clippy::explicit-write` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::explicit_write)]`

error: use of `write!(stderr(), ...).unwrap()`
  --> tests/ui/explicit_write.rs:24:9
   |
LL |         write!(std::io::stderr(), "test").unwrap();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprint!("test")`

error: use of `writeln!(stdout(), ...).unwrap()`
  --> tests/ui/explicit_write.rs:26:9
   |
LL |         writeln!(std::io::stdout(), "test").unwrap();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `println!("test")`

error: use of `writeln!(stderr(), ...).unwrap()`
  --> tests/ui/explicit_write.rs:28:9
   |
LL |         writeln!(std::io::stderr(), "test").unwrap();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("test")`

error: use of `stdout().write_fmt(...).unwrap()`
  --> tests/ui/explicit_write.rs:30:9
   |
LL |         std::io::stdout().write_fmt(format_args!("test")).unwrap();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `print!("test")`

error: use of `stderr().write_fmt(...).unwrap()`
  --> tests/ui/explicit_write.rs:32:9
   |
LL |         std::io::stderr().write_fmt(format_args!("test")).unwrap();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprint!("test")`

error: use of `writeln!(stdout(), ...).unwrap()`
  --> tests/ui/explicit_write.rs:36:9
   |
LL |         writeln!(std::io::stdout(), "test\ntest").unwrap();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `println!("test\ntest")`

error: use of `writeln!(stderr(), ...).unwrap()`
  --> tests/ui/explicit_write.rs:38:9
   |
LL |         writeln!(std::io::stderr(), "test\ntest").unwrap();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("test\ntest")`

error: use of `writeln!(stderr(), ...).unwrap()`
  --> tests/ui/explicit_write.rs:42:9
   |
LL |         writeln!(std::io::stderr(), "with {value}").unwrap();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("with {value}")`

error: use of `writeln!(stderr(), ...).unwrap()`
  --> tests/ui/explicit_write.rs:44:9
   |
LL |         writeln!(std::io::stderr(), "with {} {}", 2, value).unwrap();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("with {} {}", 2, value)`

error: use of `writeln!(stderr(), ...).unwrap()`
  --> tests/ui/explicit_write.rs:46:9
   |
LL |         writeln!(std::io::stderr(), "with {value}").unwrap();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("with {value}")`

error: use of `writeln!(stderr(), ...).unwrap()`
  --> tests/ui/explicit_write.rs:48:9
   |
LL |         writeln!(std::io::stderr(), "macro arg {}", one!()).unwrap();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("macro arg {}", one!())`

error: use of `writeln!(stderr(), ...).unwrap()`
  --> tests/ui/explicit_write.rs:51:9
   |
LL |         writeln!(std::io::stderr(), "{value:w$}", w = width).unwrap();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("{value:w$}", w = width)`

error: aborting due to 13 previous errors

