[INFO] cloning repository https://github.com/vks/mpw-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vks/mpw-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvks%2Fmpw-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvks%2Fmpw-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ab81ee4340815c607f863fba28a1ffc8d065ebb3
[INFO] checking vks/mpw-rs against master#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvks%2Fmpw-rs" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/vks/mpw-rs on toolchain 5518eaa946291f00471af8b254b2a1715f234882
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/vks/mpw-rs
[INFO] finished tweaking git repo https://github.com/vks/mpw-rs
[INFO] tweaked toml for git repo https://github.com/vks/mpw-rs written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/vks/mpw-rs 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" "+5518eaa946291f00471af8b254b2a1715f234882" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded errno v0.2.4
[INFO] [stderr]   Downloaded data-encoding v1.2.0
[INFO] [stderr]   Downloaded fancy-regex v0.1.0
[INFO] [stderr]   Downloaded data-encoding v2.1.1
[INFO] [stderr]   Downloaded syn v0.15.3
[INFO] [stderr]   Downloaded serde_derive v1.0.78
[INFO] [stderr]   Downloaded zxcvbn v1.0.1
[INFO] [stderr]   Downloaded ring v0.12.1
[INFO] [stderr]   Downloaded ring-pwhash v0.12.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ad0608f38e444dacdf0d04df3edc2be98f481a38babefde1b958adc685dc0e8d
[INFO] running `Command { std: "docker" "start" "-a" "ad0608f38e444dacdf0d04df3edc2be98f481a38babefde1b958adc685dc0e8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ad0608f38e444dacdf0d04df3edc2be98f481a38babefde1b958adc685dc0e8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ad0608f38e444dacdf0d04df3edc2be98f481a38babefde1b958adc685dc0e8d", kill_on_drop: false }`
[INFO] [stdout] ad0608f38e444dacdf0d04df3edc2be98f481a38babefde1b958adc685dc0e8d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 59ce49eee8f5291d6535fc023cee55f0a2bd5ecf2ce3f02faa6a223b20148600
[INFO] running `Command { std: "docker" "start" "-a" "59ce49eee8f5291d6535fc023cee55f0a2bd5ecf2ce3f02faa6a223b20148600", kill_on_drop: false }`
[INFO] [stderr]    Compiling version_check v0.1.4
[INFO] [stderr]     Checking libc v0.2.43
[INFO] [stderr]    Compiling cfg-if v0.1.5
[INFO] [stderr]    Compiling nodrop v0.1.12
[INFO] [stderr]    Compiling scopeguard v0.3.3
[INFO] [stderr]    Compiling memoffset v0.2.1
[INFO] [stderr]    Compiling rayon-core v1.4.1
[INFO] [stderr]     Checking ucd-util v0.1.1
[INFO] [stderr]    Compiling proc-macro2 v0.4.19
[INFO] [stderr]     Checking utf8-ranges v1.0.1
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]    Compiling gcc v0.3.54
[INFO] [stderr]    Compiling regex v0.2.11
[INFO] [stderr]    Compiling serde v1.0.78
[INFO] [stderr]     Checking bit-vec v0.4.4
[INFO] [stderr]    Compiling arrayvec v0.4.7
[INFO] [stderr]    Compiling crossbeam-utils v0.2.2
[INFO] [stderr]    Compiling derive_builder v0.5.1
[INFO] [stderr]    Compiling regex v1.0.5
[INFO] [stderr]    Compiling derive_builder_core v0.2.0
[INFO] [stderr]     Checking regex-syntax v0.5.6
[INFO] [stderr]     Checking regex-syntax v0.6.2
[INFO] [stderr]     Checking bit-set v0.4.0
[INFO] [stderr]     Checking unicode-width v0.1.5
[INFO] [stderr]    Compiling lazy_static v1.1.0
[INFO] [stderr]     Checking untrusted v0.5.1
[INFO] [stderr]     Checking either v1.5.0
[INFO] [stderr]     Checking textwrap v0.10.0
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking custom_derive v0.1.7
[INFO] [stderr]     Checking data-encoding v2.1.1
[INFO] [stderr]     Checking quick-error v1.2.2
[INFO] [stderr]     Checking bitflags v1.0.4
[INFO] [stderr]     Checking itertools v0.7.8
[INFO] [stderr]     Checking memchr v2.0.2
[INFO] [stderr]    Compiling num_cpus v1.8.0
[INFO] [stderr]     Checking memchr v1.0.2
[INFO] [stderr]     Checking atty v0.2.11
[INFO] [stderr]     Checking time v0.1.40
[INFO] [stderr]     Checking strsim v0.7.0
[INFO] [stderr]     Checking aho-corasick v0.6.8
[INFO] [stderr]     Checking vec_map v0.8.1
[INFO] [stderr]     Checking rpassword v2.0.0
[INFO] [stderr]     Checking errno v0.2.4
[INFO] [stderr]     Checking conv v0.3.3
[INFO] [stderr]     Checking byteorder v1.2.6
[INFO] [stderr]    Compiling crossbeam-epoch v0.3.1
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stderr]     Checking clap v2.32.0
[INFO] [stderr]     Checking data-encoding v1.2.0
[INFO] [stderr]    Compiling quote v0.6.8
[INFO] [stderr]    Compiling crossbeam-deque v0.2.0
[INFO] [stderr]    Compiling syn v0.15.3
[INFO] [stderr]    Compiling rayon v0.8.2
[INFO] [stderr]    Compiling ring v0.12.1
[INFO] [stderr]    Compiling serde_derive v1.0.78
[INFO] [stderr]     Checking fancy-regex v0.1.0
[INFO] [stderr]     Checking toml v0.4.6
[INFO] [stderr]     Checking zxcvbn v1.0.1
[INFO] [stderr]     Checking ring-pwhash v0.12.0
[INFO] [stderr]     Checking mpw v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: the feature `core_intrinsics` is internal to the compiler or standard library
[INFO] [stdout]  --> src/main.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_from, core_intrinsics)]
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: using it is strongly discouraged
[INFO] [stdout]   = note: `#[warn(internal_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `core_intrinsics` is internal to the compiler or standard library
[INFO] [stdout]  --> src/main.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_from, core_intrinsics)]
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: using it is strongly discouraged
[INFO] [stdout]   = note: `#[warn(internal_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_from, core_intrinsics)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_from, core_intrinsics)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/algorithm.rs:227:24
[INFO] [stdout]     |
[INFO] [stdout] 227 |             message: e.description().into(),
[INFO] [stdout]     |                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/algorithm.rs:227:24
[INFO] [stdout]     |
[INFO] [stdout] 227 |             message: e.description().into(),
[INFO] [stdout]     |                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/algorithm.rs:495:14
[INFO] [stdout]     |
[INFO] [stdout] 495 |         let (mut nonce, mut rest) = buffer.split_at_mut(NONCE_LEN);
[INFO] [stdout]     |              ----^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/algorithm.rs:495:25
[INFO] [stdout]     |
[INFO] [stdout] 495 |         let (mut nonce, mut rest) = buffer.split_at_mut(NONCE_LEN);
[INFO] [stdout]     |                         ----^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/algorithm.rs:501:18
[INFO] [stdout]     |
[INFO] [stdout] 501 |             let (mut input, _) = rest.split_at_mut(clear_text.len());
[INFO] [stdout]     |                  ----^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/algorithm.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 513 |     let (nonce, mut in_out) = buffer.split_at_mut(NONCE_LEN);
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/algorithm.rs:526:17
[INFO] [stdout]     |
[INFO] [stdout] 526 |     let (nonce, mut in_out) = buffer.split_at_mut(NONCE_LEN);
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/algorithm.rs:495:14
[INFO] [stdout]     |
[INFO] [stdout] 495 |         let (mut nonce, mut rest) = buffer.split_at_mut(NONCE_LEN);
[INFO] [stdout]     |              ----^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/algorithm.rs:495:25
[INFO] [stdout]     |
[INFO] [stdout] 495 |         let (mut nonce, mut rest) = buffer.split_at_mut(NONCE_LEN);
[INFO] [stdout]     |                         ----^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/algorithm.rs:501:18
[INFO] [stdout]     |
[INFO] [stdout] 501 |             let (mut input, _) = rest.split_at_mut(clear_text.len());
[INFO] [stdout]     |                  ----^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/algorithm.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 513 |     let (nonce, mut in_out) = buffer.split_at_mut(NONCE_LEN);
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/algorithm.rs:526:17
[INFO] [stdout]     |
[INFO] [stdout] 526 |     let (nonce, mut in_out) = buffer.split_at_mut(NONCE_LEN);
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `entropy_of_template` is never used
[INFO] [stdout]    --> src/algorithm.rs:381:4
[INFO] [stdout]     |
[INFO] [stdout] 381 | fn entropy_of_template(template: &str) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `id_for_buf` is never used
[INFO] [stdout]    --> src/algorithm.rs:401:8
[INFO] [stdout]     |
[INFO] [stdout] 401 | pub fn id_for_buf(buf: &[u8]) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/clear_on_drop.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Other(Errno),
[INFO] [stdout]    |     ----- ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Other(()),
[INFO] [stdout]    |           ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ConflictingFullName` and `ConflictingStoredPasswords` are never constructed
[INFO] [stdout]   --> src/config.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 21 |     /// Tried to merge configs for different full names.
[INFO] [stdout] 22 |     ConflictingFullName,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Tried to merge configs with conflicting stored passwords.
[INFO] [stdout] 24 |     ConflictingStoredPasswords,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ErrorKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `merge` are never used
[INFO] [stdout]    --> src/config.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl<'a> SiteConfig<'a> {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 108 |     /// Create a new site configuration with the given domain name.
[INFO] [stdout] 109 |     pub fn new(name: &'a str) -> SiteConfig<'a> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn merge(&mut self, other: SiteConfig<'a>) -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/algorithm.rs:287:16
[INFO] [stdout]     |
[INFO] [stdout] 287 |           panic!(format!("template too long for given password seed: {} >= {}",
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 288 | |                        template.len(), seed.len()));
[INFO] [stdout]     | |__________________________________________________^
[INFO] [stdout]     |
[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/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 287 ~         panic!("template too long for given password seed: {} >= {}",
[INFO] [stdout] 288 ~                        template.len(), seed.len());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/algorithm.rs:463:35
[INFO] [stdout]     |
[INFO] [stdout] 463 |     assert!(buf.len() >= PAD_LEN, make_message(PAD_LEN, buf.len()));
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 463 |     assert!(buf.len() >= PAD_LEN, "{}", make_message(PAD_LEN, buf.len()));
[INFO] [stdout]     |                                   +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/algorithm.rs:464:35
[INFO] [stdout]     |
[INFO] [stdout] 464 |     assert!(buf.len() >= len + 1, make_message(len + 1, buf.len()));
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 464 |     assert!(buf.len() >= len + 1, "{}", make_message(len + 1, buf.len()));
[INFO] [stdout]     |                                   +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 16 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `id_for_buf` is never used
[INFO] [stdout]    --> src/algorithm.rs:401:8
[INFO] [stdout]     |
[INFO] [stdout] 401 | pub fn id_for_buf(buf: &[u8]) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/clear_on_drop.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Other(Errno),
[INFO] [stdout]    |     ----- ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Other(()),
[INFO] [stdout]    |           ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ConflictingFullName` and `ConflictingStoredPasswords` are never constructed
[INFO] [stdout]   --> src/config.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 21 |     /// Tried to merge configs for different full names.
[INFO] [stdout] 22 |     ConflictingFullName,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Tried to merge configs with conflicting stored passwords.
[INFO] [stdout] 24 |     ConflictingStoredPasswords,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ErrorKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `merge` is never used
[INFO] [stdout]    --> src/config.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl<'a> SiteConfig<'a> {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn merge(&mut self, other: SiteConfig<'a>) -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/algorithm.rs:287:16
[INFO] [stdout]     |
[INFO] [stdout] 287 |           panic!(format!("template too long for given password seed: {} >= {}",
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 288 | |                        template.len(), seed.len()));
[INFO] [stdout]     | |__________________________________________________^
[INFO] [stdout]     |
[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/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 287 ~         panic!("template too long for given password seed: {} >= {}",
[INFO] [stdout] 288 ~                        template.len(), seed.len());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/algorithm.rs:463:35
[INFO] [stdout]     |
[INFO] [stdout] 463 |     assert!(buf.len() >= PAD_LEN, make_message(PAD_LEN, buf.len()));
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 463 |     assert!(buf.len() >= PAD_LEN, "{}", make_message(PAD_LEN, buf.len()));
[INFO] [stdout]     |                                   +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/algorithm.rs:464:35
[INFO] [stdout]     |
[INFO] [stdout] 464 |     assert!(buf.len() >= len + 1, make_message(len + 1, buf.len()));
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 464 |     assert!(buf.len() >= len + 1, "{}", make_message(len + 1, buf.len()));
[INFO] [stdout]     |                                   +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [optimized + debuginfo] target(s) in 4.70s
[INFO] running `Command { std: "docker" "inspect" "59ce49eee8f5291d6535fc023cee55f0a2bd5ecf2ce3f02faa6a223b20148600", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "59ce49eee8f5291d6535fc023cee55f0a2bd5ecf2ce3f02faa6a223b20148600", kill_on_drop: false }`
[INFO] [stdout] 59ce49eee8f5291d6535fc023cee55f0a2bd5ecf2ce3f02faa6a223b20148600
