[INFO] fetching crate bc_yubikey_git_helper 0.1.0...
[INFO] testing bc_yubikey_git_helper-0.1.0 against try#c2e32f1c9652b13ed99608599c1e855462f421f3 for pr-146098-7
[INFO] extracting crate bc_yubikey_git_helper 0.1.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate bc_yubikey_git_helper 0.1.0
[INFO] finished tweaking crates.io crate bc_yubikey_git_helper 0.1.0
[INFO] tweaked toml for crates.io crate bc_yubikey_git_helper 0.1.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate bc_yubikey_git_helper 0.1.0 on toolchain c2e32f1c9652b13ed99608599c1e855462f421f3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate bc_yubikey_git_helper 0.1.0 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" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ab7ba410597832dc3e4ca57741411d1a290a64f5c4188cd67e122ce44b59dabd
[INFO] running `Command { std: "docker" "start" "-a" "ab7ba410597832dc3e4ca57741411d1a290a64f5c4188cd67e122ce44b59dabd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ab7ba410597832dc3e4ca57741411d1a290a64f5c4188cd67e122ce44b59dabd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ab7ba410597832dc3e4ca57741411d1a290a64f5c4188cd67e122ce44b59dabd", kill_on_drop: false }`
[INFO] [stdout] ab7ba410597832dc3e4ca57741411d1a290a64f5c4188cd67e122ce44b59dabd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 96e13717f3d181666b46eb54bf3c67ef657916c5ee4f69ec3ae52e2f34c4ccce
[INFO] running `Command { std: "docker" "start" "-a" "96e13717f3d181666b46eb54bf3c67ef657916c5ee4f69ec3ae52e2f34c4ccce", kill_on_drop: false }`
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling libc v0.2.158
[INFO] [stderr]    Compiling unicode-width v0.1.13
[INFO] [stderr]    Compiling base64ct v1.6.0
[INFO] [stderr]    Compiling portable-atomic v1.7.0
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]    Compiling colorchoice v1.0.2
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling anstyle v1.0.8
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling anstyle-query v1.1.1
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling anstyle-parse v0.2.5
[INFO] [stderr]    Compiling clap_lex v0.7.2
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling cpufeatures v0.2.14
[INFO] [stderr]    Compiling smawk v0.3.2
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling base16ct v0.2.0
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling home v0.5.9
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling iana-time-zone v0.1.60
[INFO] [stderr]    Compiling textwrap v0.16.1
[INFO] [stderr]    Compiling signature v2.3.0-pre.4
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling anstream v0.6.15
[INFO] [stderr]    Compiling pem-rfc7468 v1.0.0-rc.1
[INFO] [stderr]    Compiling clap_builder v4.5.15
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.77
[INFO] [stderr]    Compiling console v0.15.8
[INFO] [stderr]    Compiling dirs-sys v0.3.7
[INFO] [stderr]    Compiling hybrid-array v0.2.0-rc.9
[INFO] [stderr]    Compiling dirs v3.0.2
[INFO] [stderr]    Compiling indexmap v2.5.0
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling indicatif v0.17.8
[INFO] [stderr]    Compiling crypto-common v0.2.0-rc.1
[INFO] [stderr]    Compiling inout v0.2.0-rc.0
[INFO] [stderr]    Compiling sec1 v0.8.0-rc.1
[INFO] [stderr]    Compiling block-buffer v0.11.0-rc.1
[INFO] [stderr]    Compiling cipher v0.5.0-pre.6
[INFO] [stderr]    Compiling digest v0.11.0-pre.9
[INFO] [stderr]    Compiling ssh-encoding v0.3.0-pre.1
[INFO] [stderr]    Compiling sha2 v0.11.0-pre.4
[INFO] [stderr]    Compiling ssh-cipher v0.3.0-pre.1
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling clap_derive v4.5.13
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling cliclack v0.3.4
[INFO] [stderr]    Compiling ssh-key v0.7.0-pre.1
[INFO] [stderr]    Compiling clap v4.5.16
[INFO] [stderr]    Compiling bc_yubikey_git_helper v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/lib.rs:238:17
[INFO] [stdout]     |
[INFO] [stdout] 238 |     ) -> Result<(&Fido2AutofindConfig), Box<dyn std::error::Error>> {
[INFO] [stdout]     |                 ^                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 238 -     ) -> Result<(&Fido2AutofindConfig), Box<dyn std::error::Error>> {
[INFO] [stdout] 238 +     ) -> Result<&Fido2AutofindConfig , Box<dyn std::error::Error>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out`
[INFO] [stdout]    --> src/lib.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |             let out = self.config_set(key, value)?;
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_out`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fido2_autofind`
[INFO] [stdout]    --> src/lib.rs:700:13
[INFO] [stdout]     |
[INFO] [stdout] 700 |         let fido2_autofind = self
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fido2_autofind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fido2_autofind`
[INFO] [stdout]    --> src/lib.rs:860:13
[INFO] [stdout]     |
[INFO] [stdout] 860 |         let fido2_autofind = self
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fido2_autofind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: found module declaration for lib.rs
[INFO] [stdout]  --> src/main.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | mod lib;
[INFO] [stdout]   | ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: lib.rs is the root of this crate's library target
[INFO] [stdout]   = help: to refer to it from other targets, use the library's name as the path
[INFO] [stdout]   = note: `#[warn(special_module_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `arg` and `command`
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use clap::{arg, command, Parser, Subcommand};
[INFO] [stdout]   |            ^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Signer`
[INFO] [stdout]  --> src/main.rs:3:106
[INFO] [stdout]   |
[INFO] [stdout] 3 | use lib::{Fido2AutofindConfig, GitConfig, GitConfigScope, KeyInteractivityFilter, KeyOptions, Principal, Signer};
[INFO] [stdout]   |                                                                                                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/lib.rs:238:17
[INFO] [stdout]     |
[INFO] [stdout] 238 |     ) -> Result<(&Fido2AutofindConfig), Box<dyn std::error::Error>> {
[INFO] [stdout]     |                 ^                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 238 -     ) -> Result<(&Fido2AutofindConfig), Box<dyn std::error::Error>> {
[INFO] [stdout] 238 +     ) -> Result<&Fido2AutofindConfig , Box<dyn std::error::Error>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Signer`
[INFO] [stdout]  --> src/signers.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::lib::{GitConfig, Principal, Signer, SignerLine};
[INFO] [stdout]   |                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader`, `PathBuf`, `Write`, `collections::HashMap`, `fs::File`, and `str::FromStr`
[INFO] [stdout]   --> src/signers.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout]  7 |     collections::HashMap,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  8 |     fs::File,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]  9 |     hash::Hash,
[INFO] [stdout] 10 |     io::{BufRead, BufReader, Write},
[INFO] [stdout]    |                   ^^^^^^^^^  ^^^^^
[INFO] [stdout] 11 |     path::{Path, PathBuf},
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 12 |     process::Command,
[INFO] [stdout] 13 |     str::FromStr,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Empty`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::io::Empty;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]   --> src/signers.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 |     io::{BufRead, BufReader, Write},
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out`
[INFO] [stdout]    --> src/lib.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |             let out = self.config_set(key, value)?;
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_out`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fido2_autofind`
[INFO] [stdout]    --> src/lib.rs:700:13
[INFO] [stdout]     |
[INFO] [stdout] 700 |         let fido2_autofind = self
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fido2_autofind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fido2_autofind`
[INFO] [stdout]    --> src/lib.rs:860:13
[INFO] [stdout]     |
[INFO] [stdout] 860 |         let fido2_autofind = self
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fido2_autofind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `allowed_signers_file`
[INFO] [stdout]    --> src/signers.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     allowed_signers_file: &Path,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_signers_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/signers.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let mut principal_options: Vec<(ClackSelectionOption, String, String)> = all_principals
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `principal`
[INFO] [stdout]    --> src/signers.rs:176:45
[INFO] [stdout]     |
[INFO] [stdout] 176 |                     .filter_map(|(selected, principal, _)| match selected {
[INFO] [stdout]     |                                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_principal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_email`
[INFO] [stdout]    --> src/signers.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     let current_email = git_config.user.email.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_email`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `custom`
[INFO] [stdout]    --> src/main.rs:282:41
[INFO] [stdout]     |
[INFO] [stdout] 282 |         .item(if let GpgProgram::Custom(custom) = &selected_program {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_custom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:554:9
[INFO] [stdout]     |
[INFO] [stdout] 554 |         _ => unreachable!(),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/main.rs:554:9
[INFO] [stdout]     |
[INFO] [stdout] 489 |         Commands::Generate => {
[INFO] [stdout]     |         ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 493 |         Commands::ModifySigner => {
[INFO] [stdout]     |         ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 497 |         Commands::ListKeys => {
[INFO] [stdout]     |         ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 524 |         Commands::ListPrincipals => {
[INFO] [stdout]     |         ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 554 |         _ => unreachable!(),
[INFO] [stdout]     |         ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `directory_copy`
[INFO] [stdout]    --> src/main.rs:622:13
[INFO] [stdout]     |
[INFO] [stdout] 622 |         let directory_copy = directory.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_directory_copy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_principals_from_gpg` is never used
[INFO] [stdout]    --> src/main.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn extract_principals_from_gpg() -> Result<Vec<Principal>, Box<dyn std::error::Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]   --> src/lib.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct Fido2AutofindConfig {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 60 |     pub enabled: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Fido2AutofindConfig` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Local` is never constructed
[INFO] [stdout]   --> src/lib.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub enum GitConfigScope {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] 77 |     All,
[INFO] [stdout] 78 |     Local,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GitConfigScope` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NonInteractive` is never constructed
[INFO] [stdout]   --> src/lib.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub enum KeyInteractivityFilter {
[INFO] [stdout]    |          ---------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 94 |     NonInteractive,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/lib.rs:197:12
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl GitConfig {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn config_get(&self, key: &str) -> Result<String, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn set_user_signing_key(&self, key: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn read_local() -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 719 |     pub fn get_keys_with_principals(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 729 |     pub fn test_noninteractive_key(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 770 |     pub fn get_noninteractive_from_interactive(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 855 |     pub fn find_signer_file(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.02s
[INFO] running `Command { std: "docker" "inspect" "96e13717f3d181666b46eb54bf3c67ef657916c5ee4f69ec3ae52e2f34c4ccce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "96e13717f3d181666b46eb54bf3c67ef657916c5ee4f69ec3ae52e2f34c4ccce", kill_on_drop: false }`
[INFO] [stdout] 96e13717f3d181666b46eb54bf3c67ef657916c5ee4f69ec3ae52e2f34c4ccce
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ef9918f210c391ea2a378afc39c9597c404875ff84ee400118fca6e7f105d871
[INFO] running `Command { std: "docker" "start" "-a" "ef9918f210c391ea2a378afc39c9597c404875ff84ee400118fca6e7f105d871", kill_on_drop: false }`
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/lib.rs:238:17
[INFO] [stdout]     |
[INFO] [stdout] 238 |     ) -> Result<(&Fido2AutofindConfig), Box<dyn std::error::Error>> {
[INFO] [stdout]     |                 ^                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 238 -     ) -> Result<(&Fido2AutofindConfig), Box<dyn std::error::Error>> {
[INFO] [stdout] 238 +     ) -> Result<&Fido2AutofindConfig , Box<dyn std::error::Error>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out`
[INFO] [stdout]    --> src/lib.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |             let out = self.config_set(key, value)?;
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_out`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fido2_autofind`
[INFO] [stdout]    --> src/lib.rs:700:13
[INFO] [stdout]     |
[INFO] [stdout] 700 |         let fido2_autofind = self
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fido2_autofind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fido2_autofind`
[INFO] [stdout]    --> src/lib.rs:860:13
[INFO] [stdout]     |
[INFO] [stdout] 860 |         let fido2_autofind = self
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fido2_autofind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling bc_yubikey_git_helper v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/lib.rs:238:17
[INFO] [stdout]     |
[INFO] [stdout] 238 |     ) -> Result<(&Fido2AutofindConfig), Box<dyn std::error::Error>> {
[INFO] [stdout]     |                 ^                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 238 -     ) -> Result<(&Fido2AutofindConfig), Box<dyn std::error::Error>> {
[INFO] [stdout] 238 +     ) -> Result<&Fido2AutofindConfig , Box<dyn std::error::Error>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out`
[INFO] [stdout]    --> src/lib.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |             let out = self.config_set(key, value)?;
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_out`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fido2_autofind`
[INFO] [stdout]    --> src/lib.rs:700:13
[INFO] [stdout]     |
[INFO] [stdout] 700 |         let fido2_autofind = self
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fido2_autofind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fido2_autofind`
[INFO] [stdout]    --> src/lib.rs:860:13
[INFO] [stdout]     |
[INFO] [stdout] 860 |         let fido2_autofind = self
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fido2_autofind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: found module declaration for lib.rs
[INFO] [stdout]  --> src/main.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | mod lib;
[INFO] [stdout]   | ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: lib.rs is the root of this crate's library target
[INFO] [stdout]   = help: to refer to it from other targets, use the library's name as the path
[INFO] [stdout]   = note: `#[warn(special_module_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `arg` and `command`
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use clap::{arg, command, Parser, Subcommand};
[INFO] [stdout]   |            ^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Signer`
[INFO] [stdout]  --> src/main.rs:3:106
[INFO] [stdout]   |
[INFO] [stdout] 3 | use lib::{Fido2AutofindConfig, GitConfig, GitConfigScope, KeyInteractivityFilter, KeyOptions, Principal, Signer};
[INFO] [stdout]   |                                                                                                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/lib.rs:238:17
[INFO] [stdout]     |
[INFO] [stdout] 238 |     ) -> Result<(&Fido2AutofindConfig), Box<dyn std::error::Error>> {
[INFO] [stdout]     |                 ^                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 238 -     ) -> Result<(&Fido2AutofindConfig), Box<dyn std::error::Error>> {
[INFO] [stdout] 238 +     ) -> Result<&Fido2AutofindConfig , Box<dyn std::error::Error>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Signer`
[INFO] [stdout]  --> src/signers.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::lib::{GitConfig, Principal, Signer, SignerLine};
[INFO] [stdout]   |                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader`, `PathBuf`, `Write`, `collections::HashMap`, `fs::File`, and `str::FromStr`
[INFO] [stdout]   --> src/signers.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout]  7 |     collections::HashMap,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  8 |     fs::File,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]  9 |     hash::Hash,
[INFO] [stdout] 10 |     io::{BufRead, BufReader, Write},
[INFO] [stdout]    |                   ^^^^^^^^^  ^^^^^
[INFO] [stdout] 11 |     path::{Path, PathBuf},
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 12 |     process::Command,
[INFO] [stdout] 13 |     str::FromStr,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Empty`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::io::Empty;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]   --> src/signers.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 |     io::{BufRead, BufReader, Write},
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out`
[INFO] [stdout]    --> src/lib.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |             let out = self.config_set(key, value)?;
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_out`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fido2_autofind`
[INFO] [stdout]    --> src/lib.rs:700:13
[INFO] [stdout]     |
[INFO] [stdout] 700 |         let fido2_autofind = self
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fido2_autofind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fido2_autofind`
[INFO] [stdout]    --> src/lib.rs:860:13
[INFO] [stdout]     |
[INFO] [stdout] 860 |         let fido2_autofind = self
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fido2_autofind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `allowed_signers_file`
[INFO] [stdout]    --> src/signers.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     allowed_signers_file: &Path,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_signers_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/signers.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let mut principal_options: Vec<(ClackSelectionOption, String, String)> = all_principals
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `principal`
[INFO] [stdout]    --> src/signers.rs:176:45
[INFO] [stdout]     |
[INFO] [stdout] 176 |                     .filter_map(|(selected, principal, _)| match selected {
[INFO] [stdout]     |                                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_principal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_email`
[INFO] [stdout]    --> src/signers.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     let current_email = git_config.user.email.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_email`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `custom`
[INFO] [stdout]    --> src/main.rs:282:41
[INFO] [stdout]     |
[INFO] [stdout] 282 |         .item(if let GpgProgram::Custom(custom) = &selected_program {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_custom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:554:9
[INFO] [stdout]     |
[INFO] [stdout] 554 |         _ => unreachable!(),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/main.rs:554:9
[INFO] [stdout]     |
[INFO] [stdout] 489 |         Commands::Generate => {
[INFO] [stdout]     |         ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 493 |         Commands::ModifySigner => {
[INFO] [stdout]     |         ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 497 |         Commands::ListKeys => {
[INFO] [stdout]     |         ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 524 |         Commands::ListPrincipals => {
[INFO] [stdout]     |         ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 554 |         _ => unreachable!(),
[INFO] [stdout]     |         ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `directory_copy`
[INFO] [stdout]    --> src/main.rs:622:13
[INFO] [stdout]     |
[INFO] [stdout] 622 |         let directory_copy = directory.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_directory_copy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_principals_from_gpg` is never used
[INFO] [stdout]    --> src/main.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn extract_principals_from_gpg() -> Result<Vec<Principal>, Box<dyn std::error::Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]   --> src/lib.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct Fido2AutofindConfig {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 60 |     pub enabled: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Fido2AutofindConfig` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Local` is never constructed
[INFO] [stdout]   --> src/lib.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub enum GitConfigScope {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] 77 |     All,
[INFO] [stdout] 78 |     Local,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GitConfigScope` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NonInteractive` is never constructed
[INFO] [stdout]   --> src/lib.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub enum KeyInteractivityFilter {
[INFO] [stdout]    |          ---------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 94 |     NonInteractive,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/lib.rs:197:12
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl GitConfig {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn config_get(&self, key: &str) -> Result<String, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn set_user_signing_key(&self, key: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn read_local() -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 719 |     pub fn get_keys_with_principals(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 729 |     pub fn test_noninteractive_key(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 770 |     pub fn get_noninteractive_from_interactive(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 855 |     pub fn find_signer_file(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.05s
[INFO] running `Command { std: "docker" "inspect" "ef9918f210c391ea2a378afc39c9597c404875ff84ee400118fca6e7f105d871", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ef9918f210c391ea2a378afc39c9597c404875ff84ee400118fca6e7f105d871", kill_on_drop: false }`
[INFO] [stdout] ef9918f210c391ea2a378afc39c9597c404875ff84ee400118fca6e7f105d871
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8a43bf113fcab271cc07bbea6529fe8f5d711c6bdb150876dd27025137be7aa8
[INFO] running `Command { std: "docker" "start" "-a" "8a43bf113fcab271cc07bbea6529fe8f5d711c6bdb150876dd27025137be7aa8", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/lib.rs:238:17
[INFO] [stderr]     |
[INFO] [stderr] 238 |     ) -> Result<(&Fido2AutofindConfig), Box<dyn std::error::Error>> {
[INFO] [stderr]     |                 ^                    ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 238 -     ) -> Result<(&Fido2AutofindConfig), Box<dyn std::error::Error>> {
[INFO] [stderr] 238 +     ) -> Result<&Fido2AutofindConfig , Box<dyn std::error::Error>> {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `out`
[INFO] [stderr]    --> src/lib.rs:263:17
[INFO] [stderr]     |
[INFO] [stderr] 263 |             let out = self.config_set(key, value)?;
[INFO] [stderr]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_out`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fido2_autofind`
[INFO] [stderr]    --> src/lib.rs:700:13
[INFO] [stderr]     |
[INFO] [stderr] 700 |         let fido2_autofind = self
[INFO] [stderr]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fido2_autofind`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fido2_autofind`
[INFO] [stderr]    --> src/lib.rs:860:13
[INFO] [stderr]     |
[INFO] [stderr] 860 |         let fido2_autofind = self
[INFO] [stderr]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fido2_autofind`
[INFO] [stderr] 
[INFO] [stderr] warning: `bc_yubikey_git_helper` (lib) generated 4 warnings (run `cargo fix --lib -p bc_yubikey_git_helper` to apply 4 suggestions)
[INFO] [stderr] warning: `bc_yubikey_git_helper` (lib test) generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: found module declaration for lib.rs
[INFO] [stderr]  --> src/main.rs:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | mod lib;
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: lib.rs is the root of this crate's library target
[INFO] [stderr]   = help: to refer to it from other targets, use the library's name as the path
[INFO] [stderr]   = note: `#[warn(special_module_name)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `arg` and `command`
[INFO] [stderr]  --> src/main.rs:1:12
[INFO] [stderr]   |
[INFO] [stderr] 1 | use clap::{arg, command, Parser, Subcommand};
[INFO] [stderr]   |            ^^^  ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Signer`
[INFO] [stderr]  --> src/main.rs:3:106
[INFO] [stderr]   |
[INFO] [stderr] 3 | use lib::{Fido2AutofindConfig, GitConfig, GitConfigScope, KeyInteractivityFilter, KeyOptions, Principal, Signer};
[INFO] [stderr]   |                                                                                                          ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Signer`
[INFO] [stderr]  --> src/signers.rs:1:40
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::lib::{GitConfig, Principal, Signer, SignerLine};
[INFO] [stderr]   |                                        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BufReader`, `PathBuf`, `Write`, `collections::HashMap`, `fs::File`, and `str::FromStr`
[INFO] [stderr]   --> src/signers.rs:7:5
[INFO] [stderr]    |
[INFO] [stderr]  7 |     collections::HashMap,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]  8 |     fs::File,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]  9 |     hash::Hash,
[INFO] [stderr] 10 |     io::{BufRead, BufReader, Write},
[INFO] [stderr]    |                   ^^^^^^^^^  ^^^^^
[INFO] [stderr] 11 |     path::{Path, PathBuf},
[INFO] [stderr]    |                  ^^^^^^^
[INFO] [stderr] 12 |     process::Command,
[INFO] [stderr] 13 |     str::FromStr,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Empty`
[INFO] [stderr]  --> src/main.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::io::Empty;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `BufRead`
[INFO] [stderr]   --> src/signers.rs:10:10
[INFO] [stderr]    |
[INFO] [stderr] 10 |     io::{BufRead, BufReader, Write},
[INFO] [stderr]    |          ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `allowed_signers_file`
[INFO] [stderr]    --> src/signers.rs:101:5
[INFO] [stderr]     |
[INFO] [stderr] 101 |     allowed_signers_file: &Path,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_signers_file`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/signers.rs:145:9
[INFO] [stderr]     |
[INFO] [stderr] 145 |     let mut principal_options: Vec<(ClackSelectionOption, String, String)> = all_principals
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `principal`
[INFO] [stderr]    --> src/signers.rs:176:45
[INFO] [stderr]     |
[INFO] [stderr] 176 |                     .filter_map(|(selected, principal, _)| match selected {
[INFO] [stderr]     |                                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_principal`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `current_email`
[INFO] [stderr]    --> src/signers.rs:143:9
[INFO] [stderr]     |
[INFO] [stderr] 143 |     let current_email = git_config.user.email.clone();
[INFO] [stderr]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_email`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `custom`
[INFO] [stderr]    --> src/main.rs:282:41
[INFO] [stderr]     |
[INFO] [stderr] 282 |         .item(if let GpgProgram::Custom(custom) = &selected_program {
[INFO] [stderr]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_custom`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/main.rs:554:9
[INFO] [stderr]     |
[INFO] [stderr] 554 |         _ => unreachable!(),
[INFO] [stderr]     |         ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/main.rs:554:9
[INFO] [stderr]     |
[INFO] [stderr] 489 |         Commands::Generate => {
[INFO] [stderr]     |         ------------------ matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 493 |         Commands::ModifySigner => {
[INFO] [stderr]     |         ---------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 497 |         Commands::ListKeys => {
[INFO] [stderr]     |         ------------------ matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 524 |         Commands::ListPrincipals => {
[INFO] [stderr]     |         ------------------------ matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 554 |         _ => unreachable!(),
[INFO] [stderr]     |         ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `directory_copy`
[INFO] [stderr]    --> src/main.rs:622:13
[INFO] [stderr]     |
[INFO] [stderr] 622 |         let directory_copy = directory.clone();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_directory_copy`
[INFO] [stderr] 
[INFO] [stderr] warning: function `extract_principals_from_gpg` is never used
[INFO] [stderr]    --> src/main.rs:105:4
[INFO] [stderr]     |
[INFO] [stderr] 105 | fn extract_principals_from_gpg() -> Result<Vec<Principal>, Box<dyn std::error::Error>> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `enabled` is never read
[INFO] [stderr]   --> src/lib.rs:60:9
[INFO] [stderr]    |
[INFO] [stderr] 59 | pub struct Fido2AutofindConfig {
[INFO] [stderr]    |            ------------------- field in this struct
[INFO] [stderr] 60 |     pub enabled: bool,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Fido2AutofindConfig` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Local` is never constructed
[INFO] [stderr]   --> src/lib.rs:78:5
[INFO] [stderr]    |
[INFO] [stderr] 76 | pub enum GitConfigScope {
[INFO] [stderr]    |          -------------- variant in this enum
[INFO] [stderr] 77 |     All,
[INFO] [stderr] 78 |     Local,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `GitConfigScope` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `NonInteractive` is never constructed
[INFO] [stderr]   --> src/lib.rs:94:5
[INFO] [stderr]    |
[INFO] [stderr] 91 | pub enum KeyInteractivityFilter {
[INFO] [stderr]    |          ---------------------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 94 |     NonInteractive,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/lib.rs:197:12
[INFO] [stderr]     |
[INFO] [stderr]  98 | impl GitConfig {
[INFO] [stderr]     | -------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 197 |     pub fn config_get(&self, key: &str) -> Result<String, Box<dyn std::error::Error>> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 200 |     pub fn set_user_signing_key(&self, key: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 291 |     pub fn read_local() -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 719 |     pub fn get_keys_with_principals(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 729 |     pub fn test_noninteractive_key(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 770 |     pub fn get_noninteractive_from_interactive(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 855 |     pub fn find_signer_file(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `bc_yubikey_git_helper` (bin "bc_yubikey_manager" test) generated 23 warnings (4 duplicates) (run `cargo fix --bin "bc_yubikey_manager" -p bc_yubikey_git_helper --tests` to apply 11 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/bc_yubikey_git_helper-dac6e615412e44b3)
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/git_hook.rs (/opt/rustwide/target/debug/deps/bc_yubikey_git_hook-7314c5bdd4e5da59)
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/bc_yubikey_manager-af785e121b5d16e1)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/gpg_wrappers/gpg_scd_wrapper.rs (/opt/rustwide/target/debug/deps/gpg_scd_wrapper-18672f0c4794faa2)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/gpg_wrappers/gpg_ssh_wrapper.rs (/opt/rustwide/target/debug/deps/gpg_ssh_wrapper-f89e1876ea36a2c5)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]    Doc-tests bc_yubikey_git_helper
[INFO] [stdout] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/lib.rs:238:17
[INFO] [stderr]     |
[INFO] [stderr] 238 |     ) -> Result<(&Fido2AutofindConfig), Box<dyn std::error::Error>> {
[INFO] [stderr]     |                 ^                    ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 238 -     ) -> Result<(&Fido2AutofindConfig), Box<dyn std::error::Error>> {
[INFO] [stderr] 238 +     ) -> Result<&Fido2AutofindConfig , Box<dyn std::error::Error>> {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: 1 warning emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "8a43bf113fcab271cc07bbea6529fe8f5d711c6bdb150876dd27025137be7aa8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8a43bf113fcab271cc07bbea6529fe8f5d711c6bdb150876dd27025137be7aa8", kill_on_drop: false }`
[INFO] [stdout] 8a43bf113fcab271cc07bbea6529fe8f5d711c6bdb150876dd27025137be7aa8
