[INFO] fetching crate blctl 0.1.2...
[INFO] checking blctl-0.1.2 against master#4d1bd0db7f489b22c6d8aa2385937a95412c015b for pr-114682
[INFO] extracting crate blctl 0.1.2 into /workspace/builds/worker-2-tc1/source
[INFO] validating manifest of crates.io crate blctl 0.1.2 on toolchain 4d1bd0db7f489b22c6d8aa2385937a95412c015b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate blctl 0.1.2
[INFO] finished tweaking crates.io crate blctl 0.1.2
[INFO] tweaked toml for crates.io crate blctl 0.1.2 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serial_test v0.2.0
[INFO] [stderr]   Downloaded rust-ini v0.13.0
[INFO] [stderr]   Downloaded serial_test_derive v0.2.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 55a6422c8e66f1368e81597532d4311b03c9bd1a4f4a27e61744246d0f81a5ca
[INFO] running `Command { std: "docker" "start" "-a" "55a6422c8e66f1368e81597532d4311b03c9bd1a4f4a27e61744246d0f81a5ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "55a6422c8e66f1368e81597532d4311b03c9bd1a4f4a27e61744246d0f81a5ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "55a6422c8e66f1368e81597532d4311b03c9bd1a4f4a27e61744246d0f81a5ca", kill_on_drop: false }`
[INFO] [stdout] 55a6422c8e66f1368e81597532d4311b03c9bd1a4f4a27e61744246d0f81a5ca
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 54133243cdf1d34c02341a70ee8e459fd9396350e03961b185f03d0ac34a046a
[INFO] running `Command { std: "docker" "start" "-a" "54133243cdf1d34c02341a70ee8e459fd9396350e03961b185f03d0ac34a046a", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling rustix v0.38.28
[INFO] [stderr]     Checking bitflags v2.4.1
[INFO] [stderr]     Checking linux-raw-sys v0.4.12
[INFO] [stderr]     Checking rust-ini v0.13.0
[INFO] [stderr]     Checking serial_test v0.2.0
[INFO] [stderr]     Checking blctl v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/cmdline.rs:25:54
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout]    |                                                      ^       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 25 - pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout] 25 + pub fn cmdline_parse (args: &str) -> std::io::Result<Cmdline> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/cmdline.rs:94:6
[INFO] [stdout]    |
[INFO] [stdout] 94 |     };
[INFO] [stdout]    |      ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bls.rs:379:28
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &dyn Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:153:38
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Re...
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut dyn CmdlineHandler, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:153:89
[INFO] [stdout]     |
[INFO] [stdout] 153 | ...r, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &dyn Fn(&mut CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:153:97
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Re...
[INFO] [stdout]     |                                                                                                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &Fn(&mut dyn CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:185:35
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn generic_cmdline_get (env: &mut CmdlineHandler, param: *const c_char) -> *mut CmdlineParam {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn generic_cmdline_get (env: &mut dyn CmdlineHandler, param: *const c_char) -> *mut CmdlineParam {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bls.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |         let mut line: Vec<&str> = line.trim().splitn(2, " ").collect();
[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/bls.rs:319:9
[INFO] [stdout]     |
[INFO] [stdout] 319 |     for mut line in data.iter() {
[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/cmdline.rs:228:11
[INFO] [stdout]     |
[INFO] [stdout] 228 |       let mut values = cmdline.entry_or_insert(set_key, Vec::new());
[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/cmdline.rs:292:11
[INFO] [stdout]     |
[INFO] [stdout] 292 |       let mut params_for_key = cmdline.entry_or_insert(rem_key, rem_values.clone());
[INFO] [stdout]     |           ----^^^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/cshim.rs:234:11
[INFO] [stdout]     |
[INFO] [stdout] 234 |   unsafe{ Box::from_raw(cmdline) };
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 234 |   unsafe{ let _ = Box::from_raw(cmdline); };
[INFO] [stdout]     |           +++++++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/cshim.rs:257:12
[INFO] [stdout]     |
[INFO] [stdout] 257 |   unsafe { Box::from_raw(entry) };
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 257 |   unsafe { let _ = Box::from_raw(entry); };
[INFO] [stdout]     |            +++++++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 13 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/cmdline.rs:25:54
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout]    |                                                      ^       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 25 - pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout] 25 + pub fn cmdline_parse (args: &str) -> std::io::Result<Cmdline> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/cmdline.rs:94:6
[INFO] [stdout]    |
[INFO] [stdout] 94 |     };
[INFO] [stdout]    |      ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/main.rs:209:4
[INFO] [stdout]     |
[INFO] [stdout] 209 |   };
[INFO] [stdout]     |    ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:70:87
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn assert_invalid_command(expected_length: usize, args: &[String], max: bool, usage: &Fn()) {
[INFO] [stdout]    |                                                                                       ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn assert_invalid_command(expected_length: usize, args: &[String], max: bool, usage: &dyn Fn()) {
[INFO] [stdout]    |                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bls.rs:379:28
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &dyn Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:159:22
[INFO] [stdout]     |
[INFO] [stdout] 159 |   let provider: &mut CmdlineHandler = match &args[base-2] {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 159 |   let provider: &mut dyn CmdlineHandler = match &args[base-2] {
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cmdline.rs:228:11
[INFO] [stdout]     |
[INFO] [stdout] 228 |       let mut values = cmdline.entry_or_insert(set_key, Vec::new());
[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/cmdline.rs:292:11
[INFO] [stdout]     |
[INFO] [stdout] 292 |       let mut params_for_key = cmdline.entry_or_insert(rem_key, rem_values.clone());
[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/bls.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |         let mut line: Vec<&str> = line.trim().splitn(2, " ").collect();
[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/bls.rs:319:9
[INFO] [stdout]     |
[INFO] [stdout] 319 |     for mut line in data.iter() {
[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/main.rs:298:11
[INFO] [stdout]     |
[INFO] [stdout] 298 |       let mut env = match blenv::Environment::new(ENV_CLAMP, &blenv::get_env_path()) {
[INFO] [stdout]     |           ----^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remove` is never used
[INFO] [stdout]    --> src/bls.rs:312:10
[INFO] [stdout]     |
[INFO] [stdout] 59  | impl BLSEntry {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 312 |   pub fn remove(&self, command: &str) -> std::io::Result<()> {
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 12 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]     Checking tempfile v3.8.1
[INFO] [stderr]    Compiling serial_test_derive v0.2.0
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/cmdline.rs:25:54
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout]    |                                                      ^       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 25 - pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout] 25 + pub fn cmdline_parse (args: &str) -> std::io::Result<Cmdline> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/cmdline.rs:94:6
[INFO] [stdout]    |
[INFO] [stdout] 94 |     };
[INFO] [stdout]    |      ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bls.rs:379:28
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &dyn Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:153:38
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Re...
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut dyn CmdlineHandler, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:153:89
[INFO] [stdout]     |
[INFO] [stdout] 153 | ...r, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &dyn Fn(&mut CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:153:97
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Re...
[INFO] [stdout]     |                                                                                                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &Fn(&mut dyn CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:185:35
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn generic_cmdline_get (env: &mut CmdlineHandler, param: *const c_char) -> *mut CmdlineParam {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn generic_cmdline_get (env: &mut dyn CmdlineHandler, param: *const c_char) -> *mut CmdlineParam {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/cmdline.rs:25:54
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout]    |                                                      ^       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 25 - pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout] 25 + pub fn cmdline_parse (args: &str) -> std::io::Result<Cmdline> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/cmdline.rs:94:6
[INFO] [stdout]    |
[INFO] [stdout] 94 |     };
[INFO] [stdout]    |      ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/main.rs:209:4
[INFO] [stdout]     |
[INFO] [stdout] 209 |   };
[INFO] [stdout]     |    ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:70:87
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn assert_invalid_command(expected_length: usize, args: &[String], max: bool, usage: &Fn()) {
[INFO] [stdout]    |                                                                                       ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn assert_invalid_command(expected_length: usize, args: &[String], max: bool, usage: &dyn Fn()) {
[INFO] [stdout]    |                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bls.rs:379:28
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &dyn Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bls.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |         let mut line: Vec<&str> = line.trim().splitn(2, " ").collect();
[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/bls.rs:319:9
[INFO] [stdout]     |
[INFO] [stdout] 319 |     for mut line in data.iter() {
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:159:22
[INFO] [stdout]     |
[INFO] [stdout] 159 |   let provider: &mut CmdlineHandler = match &args[base-2] {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 159 |   let provider: &mut dyn CmdlineHandler = match &args[base-2] {
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cmdline.rs:228:11
[INFO] [stdout]     |
[INFO] [stdout] 228 |       let mut values = cmdline.entry_or_insert(set_key, Vec::new());
[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/cmdline.rs:292:11
[INFO] [stdout]     |
[INFO] [stdout] 292 |       let mut params_for_key = cmdline.entry_or_insert(rem_key, rem_values.clone());
[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/cmdline.rs:228:11
[INFO] [stdout]     |
[INFO] [stdout] 228 |       let mut values = cmdline.entry_or_insert(set_key, Vec::new());
[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/cmdline.rs:292:11
[INFO] [stdout]     |
[INFO] [stdout] 292 |       let mut params_for_key = cmdline.entry_or_insert(rem_key, rem_values.clone());
[INFO] [stdout]     |           ----^^^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/cshim.rs:234:11
[INFO] [stdout]     |
[INFO] [stdout] 234 |   unsafe{ Box::from_raw(cmdline) };
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 234 |   unsafe{ let _ = Box::from_raw(cmdline); };
[INFO] [stdout]     |           +++++++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/cshim.rs:257:12
[INFO] [stdout]     |
[INFO] [stdout] 257 |   unsafe { Box::from_raw(entry) };
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 257 |   unsafe { let _ = Box::from_raw(entry); };
[INFO] [stdout]     |            +++++++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 13 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bls.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |         let mut line: Vec<&str> = line.trim().splitn(2, " ").collect();
[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/bls.rs:319:9
[INFO] [stdout]     |
[INFO] [stdout] 319 |     for mut line in data.iter() {
[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/main.rs:298:11
[INFO] [stdout]     |
[INFO] [stdout] 298 |       let mut env = match blenv::Environment::new(ENV_CLAMP, &blenv::get_env_path()) {
[INFO] [stdout]     |           ----^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 10.59s
[INFO] running `Command { std: "docker" "inspect" "54133243cdf1d34c02341a70ee8e459fd9396350e03961b185f03d0ac34a046a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "54133243cdf1d34c02341a70ee8e459fd9396350e03961b185f03d0ac34a046a", kill_on_drop: false }`
[INFO] [stdout] 54133243cdf1d34c02341a70ee8e459fd9396350e03961b185f03d0ac34a046a
[INFO] checking blctl-0.1.2 against try#785364c7e5e0804473a3fddfb579798ea14e3493 for pr-114682
[INFO] extracting crate blctl 0.1.2 into /workspace/builds/worker-2-tc2/source
[INFO] validating manifest of crates.io crate blctl 0.1.2 on toolchain 785364c7e5e0804473a3fddfb579798ea14e3493
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate blctl 0.1.2
[INFO] finished tweaking crates.io crate blctl 0.1.2
[INFO] tweaked toml for crates.io crate blctl 0.1.2 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 96c5bb9b645b3e8893014241d6c651c5dc9aca66354dbe7ebd05fd841ad11dd3
[INFO] running `Command { std: "docker" "start" "-a" "96c5bb9b645b3e8893014241d6c651c5dc9aca66354dbe7ebd05fd841ad11dd3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "96c5bb9b645b3e8893014241d6c651c5dc9aca66354dbe7ebd05fd841ad11dd3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "96c5bb9b645b3e8893014241d6c651c5dc9aca66354dbe7ebd05fd841ad11dd3", kill_on_drop: false }`
[INFO] [stdout] 96c5bb9b645b3e8893014241d6c651c5dc9aca66354dbe7ebd05fd841ad11dd3
[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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d025924c42e66525b747529b4cd1f814177db2a27a44bed824012af8cd7356bd
[INFO] running `Command { std: "docker" "start" "-a" "d025924c42e66525b747529b4cd1f814177db2a27a44bed824012af8cd7356bd", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling rustix v0.38.28
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]     Checking rust-ini v0.13.0
[INFO] [stderr]     Checking bitflags v2.4.1
[INFO] [stderr]     Checking linux-raw-sys v0.4.12
[INFO] [stderr]     Checking serial_test v0.2.0
[INFO] [stderr]     Checking blctl v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/cmdline.rs:25:54
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout]    |                                                      ^       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 25 - pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout] 25 + pub fn cmdline_parse (args: &str) -> std::io::Result<Cmdline> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/cmdline.rs:94:6
[INFO] [stdout]    |
[INFO] [stdout] 94 |     };
[INFO] [stdout]    |      ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bls.rs:379:28
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &dyn Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:153:38
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Re...
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut dyn CmdlineHandler, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:153:89
[INFO] [stdout]     |
[INFO] [stdout] 153 | ...r, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &dyn Fn(&mut CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:153:97
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Re...
[INFO] [stdout]     |                                                                                                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &Fn(&mut dyn CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:185:35
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn generic_cmdline_get (env: &mut CmdlineHandler, param: *const c_char) -> *mut CmdlineParam {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn generic_cmdline_get (env: &mut dyn CmdlineHandler, param: *const c_char) -> *mut CmdlineParam {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bls.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |         let mut line: Vec<&str> = line.trim().splitn(2, " ").collect();
[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/bls.rs:319:9
[INFO] [stdout]     |
[INFO] [stdout] 319 |     for mut line in data.iter() {
[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/cmdline.rs:228:11
[INFO] [stdout]     |
[INFO] [stdout] 228 |       let mut values = cmdline.entry_or_insert(set_key, Vec::new());
[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/cmdline.rs:292:11
[INFO] [stdout]     |
[INFO] [stdout] 292 |       let mut params_for_key = cmdline.entry_or_insert(rem_key, rem_values.clone());
[INFO] [stdout]     |           ----^^^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/cshim.rs:234:11
[INFO] [stdout]     |
[INFO] [stdout] 234 |   unsafe{ Box::from_raw(cmdline) };
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 234 |   unsafe{ let _ = Box::from_raw(cmdline); };
[INFO] [stdout]     |           +++++++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/cshim.rs:257:12
[INFO] [stdout]     |
[INFO] [stdout] 257 |   unsafe { Box::from_raw(entry) };
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 257 |   unsafe { let _ = Box::from_raw(entry); };
[INFO] [stdout]     |            +++++++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 13 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/cmdline.rs:25:54
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout]    |                                                      ^       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 25 - pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout] 25 + pub fn cmdline_parse (args: &str) -> std::io::Result<Cmdline> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/cmdline.rs:94:6
[INFO] [stdout]    |
[INFO] [stdout] 94 |     };
[INFO] [stdout]    |      ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/main.rs:209:4
[INFO] [stdout]     |
[INFO] [stdout] 209 |   };
[INFO] [stdout]     |    ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:70:87
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn assert_invalid_command(expected_length: usize, args: &[String], max: bool, usage: &Fn()) {
[INFO] [stdout]    |                                                                                       ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn assert_invalid_command(expected_length: usize, args: &[String], max: bool, usage: &dyn Fn()) {
[INFO] [stdout]    |                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bls.rs:379:28
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &dyn Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:159:22
[INFO] [stdout]     |
[INFO] [stdout] 159 |   let provider: &mut CmdlineHandler = match &args[base-2] {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 159 |   let provider: &mut dyn CmdlineHandler = match &args[base-2] {
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cmdline.rs:228:11
[INFO] [stdout]     |
[INFO] [stdout] 228 |       let mut values = cmdline.entry_or_insert(set_key, Vec::new());
[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] [stderr]    Compiling quote v0.6.13
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cmdline.rs:292:11
[INFO] [stdout]     |
[INFO] [stdout] 292 |       let mut params_for_key = cmdline.entry_or_insert(rem_key, rem_values.clone());
[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/bls.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |         let mut line: Vec<&str> = line.trim().splitn(2, " ").collect();
[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/bls.rs:319:9
[INFO] [stdout]     |
[INFO] [stdout] 319 |     for mut line in data.iter() {
[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/main.rs:298:11
[INFO] [stdout]     |
[INFO] [stdout] 298 |       let mut env = match blenv::Environment::new(ENV_CLAMP, &blenv::get_env_path()) {
[INFO] [stdout]     |           ----^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remove` is never used
[INFO] [stdout]    --> src/bls.rs:312:10
[INFO] [stdout]     |
[INFO] [stdout] 59  | impl BLSEntry {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 312 |   pub fn remove(&self, command: &str) -> std::io::Result<()> {
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 12 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tempfile v3.8.1
[INFO] [stderr]    Compiling serial_test_derive v0.2.0
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/cmdline.rs:25:54
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout]    |                                                      ^       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 25 - pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout] 25 + pub fn cmdline_parse (args: &str) -> std::io::Result<Cmdline> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/cmdline.rs:94:6
[INFO] [stdout]    |
[INFO] [stdout] 94 |     };
[INFO] [stdout]    |      ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/cmdline.rs:25:54
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout]    |                                                      ^       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 25 - pub fn cmdline_parse (args: &str) -> std::io::Result<(Cmdline)> {
[INFO] [stdout] 25 + pub fn cmdline_parse (args: &str) -> std::io::Result<Cmdline> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bls.rs:379:28
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &dyn Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/cmdline.rs:94:6
[INFO] [stdout]    |
[INFO] [stdout] 94 |     };
[INFO] [stdout]    |      ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/main.rs:209:4
[INFO] [stdout]     |
[INFO] [stdout] 209 |   };
[INFO] [stdout]     |    ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:70:87
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn assert_invalid_command(expected_length: usize, args: &[String], max: bool, usage: &Fn()) {
[INFO] [stdout]    |                                                                                       ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn assert_invalid_command(expected_length: usize, args: &[String], max: bool, usage: &dyn Fn()) {
[INFO] [stdout]    |                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:153:38
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Re...
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut dyn CmdlineHandler, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:153:89
[INFO] [stdout]     |
[INFO] [stdout] 153 | ...r, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &dyn Fn(&mut CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:153:97
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &Fn(&mut CmdlineHandler, &[String]) -> std::io::Re...
[INFO] [stdout]     |                                                                                                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn generic_cmdline_handler(env: &mut CmdlineHandler, params: *const *const c_char, op: &Fn(&mut dyn CmdlineHandler, &[String]) -> std::io::Result<()>) -> c_char {
[INFO] [stdout]     |                                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cshim.rs:185:35
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn generic_cmdline_get (env: &mut CmdlineHandler, param: *const c_char) -> *mut CmdlineParam {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn generic_cmdline_get (env: &mut dyn CmdlineHandler, param: *const c_char) -> *mut CmdlineParam {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bls.rs:379:28
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     func: &dyn Fn (&mut BLSEntry, &[String]) -> std::io::Result<()>) -> std::io::Result<()> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:159:22
[INFO] [stdout]     |
[INFO] [stdout] 159 |   let provider: &mut CmdlineHandler = match &args[base-2] {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 159 |   let provider: &mut dyn CmdlineHandler = match &args[base-2] {
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bls.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |         let mut line: Vec<&str> = line.trim().splitn(2, " ").collect();
[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/cmdline.rs:228:11
[INFO] [stdout]     |
[INFO] [stdout] 228 |       let mut values = cmdline.entry_or_insert(set_key, Vec::new());
[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/bls.rs:319:9
[INFO] [stdout]     |
[INFO] [stdout] 319 |     for mut line in data.iter() {
[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/cmdline.rs:292:11
[INFO] [stdout]     |
[INFO] [stdout] 292 |       let mut params_for_key = cmdline.entry_or_insert(rem_key, rem_values.clone());
[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/cmdline.rs:228:11
[INFO] [stdout]     |
[INFO] [stdout] 228 |       let mut values = cmdline.entry_or_insert(set_key, Vec::new());
[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/cmdline.rs:292:11
[INFO] [stdout]     |
[INFO] [stdout] 292 |       let mut params_for_key = cmdline.entry_or_insert(rem_key, rem_values.clone());
[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/bls.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |         let mut line: Vec<&str> = line.trim().splitn(2, " ").collect();
[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/bls.rs:319:9
[INFO] [stdout]     |
[INFO] [stdout] 319 |     for mut line in data.iter() {
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/cshim.rs:234:11
[INFO] [stdout]     |
[INFO] [stdout] 234 |   unsafe{ Box::from_raw(cmdline) };
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 234 |   unsafe{ let _ = Box::from_raw(cmdline); };
[INFO] [stdout]     |           +++++++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:298:11
[INFO] [stdout]     |
[INFO] [stdout] 298 |       let mut env = match blenv::Environment::new(ENV_CLAMP, &blenv::get_env_path()) {
[INFO] [stdout]     |           ----^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/cshim.rs:257:12
[INFO] [stdout]     |
[INFO] [stdout] 257 |   unsafe { Box::from_raw(entry) };
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 257 |   unsafe { let _ = Box::from_raw(entry); };
[INFO] [stdout]     |            +++++++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 13 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 10.42s
[INFO] running `Command { std: "docker" "inspect" "d025924c42e66525b747529b4cd1f814177db2a27a44bed824012af8cd7356bd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d025924c42e66525b747529b4cd1f814177db2a27a44bed824012af8cd7356bd", kill_on_drop: false }`
[INFO] [stdout] d025924c42e66525b747529b4cd1f814177db2a27a44bed824012af8cd7356bd
