[INFO] cloning repository https://github.com/gonejack/first-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gonejack/first-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgonejack%2Ffirst-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgonejack%2Ffirst-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 227aa89e01cf04b9ca1f884359794dc59d9f6199
[INFO] checking gonejack/first-rust against try#db4e1d23234d93b5e96ecc768b35d9090c32cddf for pr-149901
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgonejack%2Ffirst-rust" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/gonejack/first-rust
[INFO] finished tweaking git repo https://github.com/gonejack/first-rust
[INFO] tweaked toml for git repo https://github.com/gonejack/first-rust written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gonejack/first-rust on toolchain db4e1d23234d93b5e96ecc768b35d9090c32cddf
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db4e1d23234d93b5e96ecc768b35d9090c32cddf" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/gonejack/first-rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db4e1d23234d93b5e96ecc768b35d9090c32cddf" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking gonejack/first-rust against try#db4e1d23234d93b5e96ecc768b35d9090c32cddf for pr-149901
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgonejack%2Ffirst-rust" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/gonejack/first-rust
[INFO] finished tweaking git repo https://github.com/gonejack/first-rust
[INFO] tweaked toml for git repo https://github.com/gonejack/first-rust written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gonejack/first-rust on toolchain db4e1d23234d93b5e96ecc768b35d9090c32cddf
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db4e1d23234d93b5e96ecc768b35d9090c32cddf" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/gonejack/first-rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db4e1d23234d93b5e96ecc768b35d9090c32cddf" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded mustache v0.9.0
[INFO] [stderr]   Downloaded epub-builder v0.5.0
[INFO] [stderr]   Downloaded switch_statement v1.0.0
[INFO] [stderr]   Downloaded html-escape v0.2.9
[INFO] [stderr]   Downloaded utf8-width v0.1.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db4e1d23234d93b5e96ecc768b35d9090c32cddf" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bce4d2fc4ffb890a9d1dc1251f85581a84cf03bbc2f76347c5b45aefab1f860a
[INFO] running `Command { std: "docker" "start" "-a" "bce4d2fc4ffb890a9d1dc1251f85581a84cf03bbc2f76347c5b45aefab1f860a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bce4d2fc4ffb890a9d1dc1251f85581a84cf03bbc2f76347c5b45aefab1f860a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bce4d2fc4ffb890a9d1dc1251f85581a84cf03bbc2f76347c5b45aefab1f860a", kill_on_drop: false }`
[INFO] [stdout] bce4d2fc4ffb890a9d1dc1251f85581a84cf03bbc2f76347c5b45aefab1f860a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db4e1d23234d93b5e96ecc768b35d9090c32cddf" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 74801b14c45677fefa3653e90da60dd575c6605bbd19707817c683ae4b9472f7
[INFO] running `Command { std: "docker" "start" "-a" "74801b14c45677fefa3653e90da60dd575c6605bbd19707817c683ae4b9472f7", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.101
[INFO] [stderr]    Compiling proc-macro2 v1.0.29
[INFO] [stderr]    Compiling syn v1.0.75
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling cc v1.0.72
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]     Checking regex-syntax v0.6.25
[INFO] [stderr]    Compiling serde v1.0.136
[INFO] [stderr]     Checking gimli v0.26.1
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling error-chain v0.12.4
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]    Compiling backtrace v0.3.64
[INFO] [stderr]     Checking time v0.1.43
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking humantime v2.1.0
[INFO] [stderr]     Checking termcolor v1.1.2
[INFO] [stderr]     Checking getrandom v0.2.4
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]     Checking smawk v0.3.1
[INFO] [stderr]     Checking remove_dir_all v0.5.3
[INFO] [stderr]     Checking utf8-width v0.1.5
[INFO] [stderr]    Compiling anyhow v1.0.43
[INFO] [stderr]     Checking html-escape v0.2.9
[INFO] [stderr]     Checking regex v1.5.4
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking tempdir v0.3.7
[INFO] [stderr]     Checking addr2line v0.17.0
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking textwrap v0.13.4
[INFO] [stderr]     Checking uuid v0.8.2
[INFO] [stderr]     Checking smallvec v0.4.5
[INFO] [stderr]     Checking getopts v0.2.21
[INFO] [stderr]     Checking ferris-says v0.2.1
[INFO] [stderr]     Checking env_logger v0.8.4
[INFO] [stderr]     Checking env_logger v0.9.0
[INFO] [stderr]     Checking switch_statement v1.0.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.30
[INFO] [stderr]    Compiling structopt-derive v0.4.16
[INFO] [stderr]     Checking mustache v0.9.0
[INFO] [stderr]     Checking thiserror v1.0.30
[INFO] [stderr]     Checking zip v0.5.13
[INFO] [stderr]     Checking structopt v0.3.23
[INFO] [stderr]     Checking epub-builder v0.5.0
[INFO] [stderr]     Checking first-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `SubCommand`
[INFO] [stdout]  --> src/bin/clap.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use clap::{App, Arg, SubCommand};
[INFO] [stdout]   |                      ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `switch`
[INFO] [stdout]  --> src/bin/tcp.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | macro_rules! switch {
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feed`
[INFO] [stdout]   --> src/bin/clap.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let feed = m.value_of("config").unwrap_or("feed.txt");
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_feed`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File` and `read_to_string`
[INFO] [stdout]  --> src/bin/epub.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::{File, OpenOptions, read_to_string};
[INFO] [stdout]   |               ^^^^               ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/bin/epub.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/bin/epub.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | use epub_builder::{EpubBuilder, Error, ResultExt};
[INFO] [stdout]   |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epub_builder::ErrorKind::Msg`
[INFO] [stdout]  --> src/bin/epub.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use epub_builder::ErrorKind::Msg;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/bin/getopts.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 |         Err(f) => { panic!(f.to_string()) }
[INFO] [stdout]    |                            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 26 |         Err(f) => { panic!("{}", f.to_string()) }
[INFO] [stdout]    |                            +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pattern` and `path` are never read
[INFO] [stdout]  --> src/bin/structopt.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct CommandLine {
[INFO] [stdout]   |        ----------- fields in this struct
[INFO] [stdout] 5 |     #[structopt(short, long, default_value = "pattern")]
[INFO] [stdout] 6 |     pattern: String,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 9 |     path: std::path::PathBuf,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `CommandLine` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `chain_err` found for struct `OpenOptions` in the current scope
[INFO] [stdout]   --> src/bin/epub.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 |         w.chain_err(|| format!("cannot create {}", "test.epub"))?;
[INFO] [stdout]    |           ^^^^^^^^^ method not found in `OpenOptions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `switch`
[INFO] [stdout]  --> src/bin/tcp.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | macro_rules! switch {
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SubCommand`
[INFO] [stdout]  --> src/bin/clap.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use clap::{App, Arg, SubCommand};
[INFO] [stdout]   |                      ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OpenOptions: std::io::Write` is not satisfied
[INFO] [stdout]    --> src/bin/epub.rs:65:25
[INFO] [stdout]     |
[INFO] [stdout]  65 |         e.generate(&mut w)?;
[INFO] [stdout]     |           --------      ^ the trait `std::io::Write` is not implemented for `OpenOptions`
[INFO] [stdout]     |           |
[INFO] [stdout]     |           required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `&mut OpenOptions` to implement `std::io::Write`
[INFO] [stdout] note: required by a bound in `EpubBuilder::<Z>::generate`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/epub-builder-0.5.0/src/epub.rs:370:24
[INFO] [stdout]     |
[INFO] [stdout] 370 |     pub fn generate<W: io::Write>(&mut self, to: W) -> Result<()> {
[INFO] [stdout]     |                        ^^^^^^^^^ required by this bound in `EpubBuilder::<Z>::generate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feed`
[INFO] [stdout]   --> src/bin/clap.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let feed = m.value_of("config").unwrap_or("feed.txt");
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_feed`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File` and `read_to_string`
[INFO] [stdout]  --> src/bin/epub.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::{File, OpenOptions, read_to_string};
[INFO] [stdout]   |               ^^^^               ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/bin/epub.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/bin/epub.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | use epub_builder::{EpubBuilder, Error, ResultExt};
[INFO] [stdout]   |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epub_builder::ErrorKind::Msg`
[INFO] [stdout]  --> src/bin/epub.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use epub_builder::ErrorKind::Msg;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `sync_all` found for struct `OpenOptions` in the current scope
[INFO] [stdout]   --> src/bin/epub.rs:67:7
[INFO] [stdout]    |
[INFO] [stdout] 67 |     w.sync_all();
[INFO] [stdout]    |       ^^^^^^^^ method not found in `OpenOptions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/bin/epub.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pattern` and `path` are never read
[INFO] [stdout]  --> src/bin/structopt.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct CommandLine {
[INFO] [stdout]   |        ----------- fields in this struct
[INFO] [stdout] 5 |     #[structopt(short, long, default_value = "pattern")]
[INFO] [stdout] 6 |     pattern: String,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 9 |     path: std::path::PathBuf,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `CommandLine` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/bin/getopts.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 |         Err(f) => { panic!(f.to_string()) }
[INFO] [stdout]    |                            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 26 |         Err(f) => { panic!("{}", f.to_string()) }
[INFO] [stdout]    |                            +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `first-rust` (bin "epub" test) due to 3 previous errors; 5 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0599]: no method named `chain_err` found for struct `OpenOptions` in the current scope
[INFO] [stdout]   --> src/bin/epub.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 |         w.chain_err(|| format!("cannot create {}", "test.epub"))?;
[INFO] [stdout]    |           ^^^^^^^^^ method not found in `OpenOptions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OpenOptions: std::io::Write` is not satisfied
[INFO] [stdout]    --> src/bin/epub.rs:65:25
[INFO] [stdout]     |
[INFO] [stdout]  65 |         e.generate(&mut w)?;
[INFO] [stdout]     |           --------      ^ the trait `std::io::Write` is not implemented for `OpenOptions`
[INFO] [stdout]     |           |
[INFO] [stdout]     |           required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `&mut OpenOptions` to implement `std::io::Write`
[INFO] [stdout] note: required by a bound in `EpubBuilder::<Z>::generate`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/epub-builder-0.5.0/src/epub.rs:370:24
[INFO] [stdout]     |
[INFO] [stdout] 370 |     pub fn generate<W: io::Write>(&mut self, to: W) -> Result<()> {
[INFO] [stdout]     |                        ^^^^^^^^^ required by this bound in `EpubBuilder::<Z>::generate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `sync_all` found for struct `OpenOptions` in the current scope
[INFO] [stdout]   --> src/bin/epub.rs:67:7
[INFO] [stdout]    |
[INFO] [stdout] 67 |     w.sync_all();
[INFO] [stdout]    |       ^^^^^^^^ method not found in `OpenOptions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/bin/epub.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `first-rust` (bin "epub") due to 3 previous errors; 5 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "74801b14c45677fefa3653e90da60dd575c6605bbd19707817c683ae4b9472f7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "74801b14c45677fefa3653e90da60dd575c6605bbd19707817c683ae4b9472f7", kill_on_drop: false }`
[INFO] [stdout] 74801b14c45677fefa3653e90da60dd575c6605bbd19707817c683ae4b9472f7
