[INFO] fetching crate pep_engine_sequoia_backend 1.1.0...
[INFO] checking pep_engine_sequoia_backend-1.1.0 against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] extracting crate pep_engine_sequoia_backend 1.1.0 into /workspace/builds/worker-5-tc2/source
[INFO] removed /workspace/builds/worker-5-tc2/source/.cargo/config.toml
[INFO] started tweaking crates.io crate pep_engine_sequoia_backend 1.1.0
[INFO] finished tweaking crates.io crate pep_engine_sequoia_backend 1.1.0
[INFO] tweaked toml for crates.io crate pep_engine_sequoia_backend 1.1.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate pep_engine_sequoia_backend 1.1.0 on toolchain 52995a223f2919dd3e2e427231db90a257350ded
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 223 packages to highest compatible versions
[INFO] [stderr]       Adding generic-array v0.14.7 (available: v0.14.9)
[INFO] [stderr]       Adding lru v0.10.1 (available: v0.19.0)
[INFO] [stderr]       Adding rusqlite v0.29.0 (available: v0.41.0)
[INFO] [stderr]       Adding sequoia-openpgp v1.22.0 (available: v2.4.2)
[INFO] [stderr]       Adding thiserror v1.0.69 (available: v2.0.21)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:c0af3998e971868164375a7dfb646c9933ddd1a3bdb00fa2041266763dc1eeab" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d4c40aeb0e6f4152dc3e22dd0b356d3948293a322945c17379aeb8b1ef12ee5e
[INFO] running `Command { std: "docker" "start" "d4c40aeb0e6f4152dc3e22dd0b356d3948293a322945c17379aeb8b1ef12ee5e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d4c40aeb0e6f4152dc3e22dd0b356d3948293a322945c17379aeb8b1ef12ee5e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d4c40aeb0e6f4152dc3e22dd0b356d3948293a322945c17379aeb8b1ef12ee5e" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d4c40aeb0e6f4152dc3e22dd0b356d3948293a322945c17379aeb8b1ef12ee5e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d4c40aeb0e6f4152dc3e22dd0b356d3948293a322945c17379aeb8b1ef12ee5e" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling unicode-ident v1.0.27
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling libc v0.2.191
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]     Checking cfg-if v1.0.5
[INFO] [stderr]    Compiling find-msvc-tools v0.1.15
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling pkg-config v0.3.34
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling cc v1.10.0
[INFO] [stderr]    Compiling zerocopy v0.8.63
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]     Checking litemap v0.8.3
[INFO] [stderr]     Checking writeable v0.6.4
[INFO] [stderr]    Compiling smallvec v1.16.4
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling icu_properties_data v2.4.0
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]     Checking memchr v2.8.3
[INFO] [stderr]    Compiling siphasher v1.0.4
[INFO] [stderr]    Compiling icu_normalizer_data v2.4.0
[INFO] [stderr]    Compiling syn v3.0.9
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling equivalent v1.0.3
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling bit-vec v0.6.3
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling term v0.7.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rustversion v1.0.23
[INFO] [stderr]    Compiling indexmap v2.14.2
[INFO] [stderr]    Compiling either v1.19.0
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]     Checking simd-adler32 v0.3.10
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling crc32fast v1.5.3
[INFO] [stderr]    Compiling string_cache v0.8.9
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]     Checking miniz_oxide v0.9.1
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling bzip2-sys v0.1.13+1.0.8
[INFO] [stderr]    Compiling ascii-canvas v3.0.0
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling bit-set v0.5.3
[INFO] [stderr]    Compiling ena v0.14.4
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling lalrpop-util v0.20.2
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling botan-sys v0.11.1
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling synstructure v0.14.0
[INFO] [stderr]    Compiling libsqlite3-sys v0.26.0
[INFO] [stderr]     Checking aho-corasick v1.1.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]    Compiling zerofrom-derive v0.1.8
[INFO] [stderr]    Compiling yoke-derive v0.8.4
[INFO] [stderr]    Compiling zerovec-derive v0.11.7
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling lalrpop v0.20.2
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking yoke v0.8.4
[INFO] [stderr]     Checking libbz2-rs-sys v0.2.5
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]     Checking typenum v1.20.1
[INFO] [stderr]     Checking zerotrie v0.2.5
[INFO] [stderr]    Compiling sha1collisiondetection v0.3.4
[INFO] [stderr]     Checking zerovec v0.11.9
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking flate2 v1.1.10
[INFO] [stderr]     Checking bzip2 v0.6.1
[INFO] [stderr]     Checking tinystr v0.8.5
[INFO] [stderr]     Checking potential_utf v0.1.6
[INFO] [stderr]     Checking icu_collections v2.4.0
[INFO] [stderr]     Checking icu_locale_core v2.4.0
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]     Checking gimli v0.34.0
[INFO] [stderr]     Checking botan v0.11.1
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]     Checking generic-array v1.4.5
[INFO] [stderr]     Checking icu_provider v2.4.0
[INFO] [stderr]     Checking buffered-reader v1.4.1
[INFO] [stderr]     Checking icu_properties v2.4.0
[INFO] [stderr]     Checking icu_normalizer v2.4.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking bzip2 v0.5.2
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking object v0.40.0
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking rustc-demangle v0.1.28
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking memsec v0.7.0
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking iana-time-zone v0.1.65
[INFO] [stderr]    Compiling pep_engine_sequoia_backend v1.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking dyn-clone v1.0.20
[INFO] [stdout] warning: unexpected `cfg` condition value: `crypto-botan3`
[INFO] [stdout]   --> build.rs:45:33
[INFO] [stdout]    |
[INFO] [stdout] 45 |                  } else if cfg!(feature = "crypto-botan3") {
[INFO] [stdout]    |                                 ^^^^^^^^^^---------------
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           help: there is a expected value with a similar name: `"crypto-botan"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `crypto-botan`, `crypto-botan2`, `crypto-cng`, `crypto-nettle`, and `default`
[INFO] [stdout]    = help: consider adding `crypto-botan3` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking xxhash-rust v0.8.19
[INFO] [stderr]     Checking fallible-iterator v0.2.0
[INFO] [stderr]     Checking lazy_static v1.5.1
[INFO] [stderr]     Checking bitflags v2.13.2
[INFO] [stderr]     Checking addr2line v0.27.1
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking lru v0.10.1
[INFO] [stderr]    Compiling enumber v0.3.1
[INFO] [stderr]     Checking memmem v0.1.1
[INFO] [stderr]    Compiling sequoia-openpgp v1.22.0
[INFO] [stderr]     Checking backtrace v0.3.77
[INFO] [stderr]     Checking rusqlite v0.29.0
[INFO] [stdout] warning: unused imports: `StringListIterMut` and `StringListIter`
[INFO] [stdout]   --> src/pep.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     StringListIterMut,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     StringListIter,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `sequoia_openpgp::serialize::stream::Encryptor`: Use Encryptor2 instead
[INFO] [stdout]   --> src/lib.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |         Encryptor,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `sequoia_openpgp::serialize::stream::Encryptor`: Use Encryptor2 instead
[INFO] [stdout]     --> src/lib.rs:1147:9
[INFO] [stdout]      |
[INFO] [stdout] 1147 |         Encryptor::for_recipients(message, recipients).build(),
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `sequoia_openpgp::packet::UserID::uri`: Use UserID::uri2
[INFO] [stdout]    --> src/keystore.rs:112:35
[INFO] [stdout]     |
[INFO] [stdout] 112 |             .or_else(|_| a_userid.uri())
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `sequoia_openpgp::packet::UserID::uri`: Use UserID::uri2
[INFO] [stdout]    --> src/keystore.rs:116:35
[INFO] [stdout]     |
[INFO] [stdout] 116 |             .or_else(|_| b_userid.uri())
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `StringListIterMut` and `StringListIter`
[INFO] [stdout]   --> src/pep.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     StringListIterMut,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     StringListIter,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `sequoia_openpgp::Cert::into_packets`: Use Cert::into_packets2() to strip secret key material or cert.into_tsk().into_packets() to serialize any secret key material
[INFO] [stdout]    --> src/keystore.rs:608:37
[INFO] [stdout]     |
[INFO] [stdout] 608 |                     current.clone().into_packets().collect::<Vec<_>>()
[INFO] [stdout]     |                                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `sequoia_openpgp::Cert::into_packets`: Use Cert::into_packets2() to strip secret key material or cert.into_tsk().into_packets() to serialize any secret key material
[INFO] [stdout]    --> src/keystore.rs:609:39
[INFO] [stdout]     |
[INFO] [stdout] 609 |                       != cert.clone().into_packets().collect::<Vec<_>>(),
[INFO] [stdout]     |                                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `sequoia_openpgp::packet::UserID::uri`: Use UserID::uri2
[INFO] [stdout]    --> src/keystore.rs:688:54
[INFO] [stdout]     |
[INFO] [stdout] 688 |                     } else if let Ok(Some(uri)) = ua.uri() {
[INFO] [stdout]     |                                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `sequoia_openpgp::packet::UserID::name`: Use UserID::name2
[INFO] [stdout]    --> src/keystore.rs:704:51
[INFO] [stdout]     |
[INFO] [stdout] 704 | ...                   &uid, fpr.clone(), ua.name().unwrap_or(None)));
[INFO] [stdout]     |                                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `sequoia_openpgp::serialize::stream::Encryptor`: Use Encryptor2 instead
[INFO] [stdout]   --> src/lib.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |         Encryptor,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `sequoia_openpgp::serialize::stream::Encryptor`: Use Encryptor2 instead
[INFO] [stdout]     --> src/lib.rs:1147:9
[INFO] [stdout]      |
[INFO] [stdout] 1147 |         Encryptor::for_recipients(message, recipients).build(),
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `sequoia_openpgp::packet::UserID::uri`: Use UserID::uri2
[INFO] [stdout]    --> src/keystore.rs:112:35
[INFO] [stdout]     |
[INFO] [stdout] 112 |             .or_else(|_| a_userid.uri())
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `sequoia_openpgp::packet::UserID::uri`: Use UserID::uri2
[INFO] [stdout]    --> src/keystore.rs:116:35
[INFO] [stdout]     |
[INFO] [stdout] 116 |             .or_else(|_| b_userid.uri())
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `sequoia_openpgp::Cert::into_packets`: Use Cert::into_packets2() to strip secret key material or cert.into_tsk().into_packets() to serialize any secret key material
[INFO] [stdout]    --> src/keystore.rs:608:37
[INFO] [stdout]     |
[INFO] [stdout] 608 |                     current.clone().into_packets().collect::<Vec<_>>()
[INFO] [stdout]     |                                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `sequoia_openpgp::Cert::into_packets`: Use Cert::into_packets2() to strip secret key material or cert.into_tsk().into_packets() to serialize any secret key material
[INFO] [stdout]    --> src/keystore.rs:609:39
[INFO] [stdout]     |
[INFO] [stdout] 609 |                       != cert.clone().into_packets().collect::<Vec<_>>(),
[INFO] [stdout]     |                                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `sequoia_openpgp::packet::UserID::uri`: Use UserID::uri2
[INFO] [stdout]    --> src/keystore.rs:688:54
[INFO] [stdout]     |
[INFO] [stdout] 688 |                     } else if let Ok(Some(uri)) = ua.uri() {
[INFO] [stdout]     |                                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `sequoia_openpgp::packet::UserID::name`: Use UserID::name2
[INFO] [stdout]    --> src/keystore.rs:704:51
[INFO] [stdout]     |
[INFO] [stdout] 704 | ...                   &uid, fpr.clone(), ua.name().unwrap_or(None)));
[INFO] [stdout]     |                                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/lib.rs:1390:17
[INFO] [stdout]      |
[INFO] [stdout] 1390 |                 anyhow::anyhow!("Unexpected EOF").into(),
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 | /             wrap_err!(
[INFO] [stdout] 162 | |                 Connection::open_with_flags(
[INFO] [stdout] 163 | |                     &keys_db,
[INFO] [stdout] 164 | |                     OpenFlags::SQLITE_OPEN_READ_WRITE
[INFO] [stdout] ...   |
[INFO] [stdout] 168 | |                 InitCannotOpenDB,
[INFO] [stdout] 169 | |                 format!("Opening keys DB ('{}')", keys_db.display()))?
[INFO] [stdout]     | |_____________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 | /             wrap_err!(
[INFO] [stdout] 173 | |                 Connection::open_in_memory(),
[INFO] [stdout] 174 | |                 InitCannotOpenDB,
[INFO] [stdout] 175 | |                 "Creating in-memory keys DB")?
[INFO] [stdout]     | |_____________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 | /         wrap_err!(
[INFO] [stdout] 179 | |             conn.execute_batch("PRAGMA secure_delete=true;
[INFO] [stdout] 180 | |                                 PRAGMA foreign_keys=true;
[INFO] [stdout] 181 | |                                 PRAGMA locking_mode=NORMAL;
[INFO] [stdout] ...   |
[INFO] [stdout] 184 | |             format!("Setting pragmas on keys DB ('{}')",
[INFO] [stdout] 185 | |                     keys_db.display()))?;
[INFO] [stdout]     | |_______________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 187 | /         wrap_err!(
[INFO] [stdout] 188 | |             conn.busy_timeout(BUSY_WAIT_TIME),
[INFO] [stdout] 189 | |             InitCannotOpenDB,
[INFO] [stdout] 190 | |             format!("Setting busy time ('{}')", keys_db.display()))?;
[INFO] [stdout]     | |___________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 192 | /         wrap_err!(
[INFO] [stdout] 193 | |             conn.create_collation("EMAIL", Self::email_cmp),
[INFO] [stdout] 194 | |             InitCannotOpenDB,
[INFO] [stdout] 195 | |             format!("Registering EMAIL collation function"))?;
[INFO] [stdout]     | |____________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 197 | /         wrap_err!(
[INFO] [stdout] 198 | |             conn.execute_batch(
[INFO] [stdout] 199 | |                 "CREATE TABLE IF NOT EXISTS keys (
[INFO] [stdout] 200 | |                     primary_key TEXT UNIQUE PRIMARY KEY,
[INFO] [stdout] ...   |
[INFO] [stdout] 207 | |             format!("Creating keys table ('{}')",
[INFO] [stdout] 208 | |                     keys_db.display()))?;
[INFO] [stdout]     | |_______________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 | /         wrap_err!(
[INFO] [stdout] 211 | |             conn.execute_batch(
[INFO] [stdout] 212 | |                 "CREATE TABLE IF NOT EXISTS subkeys (
[INFO] [stdout] 213 | |                    subkey TEXT NOT NULL,
[INFO] [stdout] ...   |
[INFO] [stdout] 223 | |             format!("Creating subkeys table ('{}')",
[INFO] [stdout] 224 | |                     keys_db.display()))?;
[INFO] [stdout]     | |_______________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 226 | /         wrap_err!(
[INFO] [stdout] 227 | |             conn.execute_batch(
[INFO] [stdout] 228 | |                 "CREATE TABLE IF NOT EXISTS userids (
[INFO] [stdout] 229 | |                     userid TEXT NOT NULL COLLATE EMAIL,
[INFO] [stdout] ...   |
[INFO] [stdout] 239 | |             format!("Creating userids table ('{}')",
[INFO] [stdout] 240 | |                     keys_db.display()))?;
[INFO] [stdout]     | |_______________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:250:5
[INFO] [stdout]     |
[INFO] [stdout] 250 | /     sql_stmt!(cert_find_stmt,
[INFO] [stdout] 251 | |               "SELECT tpk, secret FROM keys WHERE primary_key == ?");
[INFO] [stdout]     | |____________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:255:5
[INFO] [stdout]     |
[INFO] [stdout] 255 | /     sql_stmt!(tsk_find_stmt,
[INFO] [stdout] 256 | |               "SELECT tpk, secret FROM keys
[INFO] [stdout] 257 | |                  WHERE primary_key == ? and secret == 1");
[INFO] [stdout]     | |_________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:263:5
[INFO] [stdout]     |
[INFO] [stdout] 263 | /     sql_stmt!(cert_find_with_key_stmt,
[INFO] [stdout] 264 | |               "SELECT tpk, secret FROM subkeys
[INFO] [stdout] 265 | |                 LEFT JOIN keys
[INFO] [stdout] 266 | |                  ON subkeys.primary_key == keys.primary_key
[INFO] [stdout] 267 | |                 WHERE subkey == ?");
[INFO] [stdout]     | |___________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:273:5
[INFO] [stdout]     |
[INFO] [stdout] 273 | /     sql_stmt!(tsk_find_with_key_stmt,
[INFO] [stdout] 274 | |               "SELECT tpk, secret FROM subkeys
[INFO] [stdout] 275 | |                 LEFT JOIN keys
[INFO] [stdout] 276 | |                  ON subkeys.primary_key == keys.primary_key
[INFO] [stdout] 277 | |                 WHERE subkey == ? and keys.secret == 1");
[INFO] [stdout]     | |________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:281:5
[INFO] [stdout]     |
[INFO] [stdout] 281 | /     sql_stmt!(cert_find_by_email_stmt,
[INFO] [stdout] 282 | |               "SELECT tpk, secret FROM userids
[INFO] [stdout] 283 | |                 LEFT JOIN keys
[INFO] [stdout] 284 | |                  ON userids.primary_key == keys.primary_key
[INFO] [stdout] 285 | |                 WHERE userid == ?");
[INFO] [stdout]     | |___________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 289 | /     sql_stmt!(tsk_find_by_email_stmt,
[INFO] [stdout] 290 | |               "SELECT tpk, secret FROM userids
[INFO] [stdout] 291 | |                 LEFT JOIN keys
[INFO] [stdout] 292 | |                  ON userids.primary_key == keys.primary_key
[INFO] [stdout] 293 | |                WHERE userid == ? and keys.secret == 1");
[INFO] [stdout]     | |_______________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:297:5
[INFO] [stdout]     |
[INFO] [stdout] 297 | /     sql_stmt!(cert_all_stmt,
[INFO] [stdout] 298 | |               "select tpk, secret from keys");
[INFO] [stdout]     | |_____________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:302:5
[INFO] [stdout]     |
[INFO] [stdout] 302 | /     sql_stmt!(tsk_all_stmt,
[INFO] [stdout] 303 | |               "select tpk, secret from keys where secret = 1");
[INFO] [stdout]     | |______________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 306 | /     sql_stmt!(cert_save_insert_primary_stmt,
[INFO] [stdout] 307 | |               "INSERT OR REPLACE INTO keys (primary_key, secret, tpk)
[INFO] [stdout] 308 | |                 VALUES (?, ?, ?)");
[INFO] [stdout]     | |__________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:311:5
[INFO] [stdout]     |
[INFO] [stdout] 311 | /     sql_stmt!(cert_save_insert_subkeys_stmt,
[INFO] [stdout] 312 | |               "INSERT OR REPLACE INTO subkeys (subkey, primary_key)
[INFO] [stdout] 313 | |                 VALUES (?, ?)");
[INFO] [stdout]     | |_______________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:316:5
[INFO] [stdout]     |
[INFO] [stdout] 316 | /     sql_stmt!(cert_save_insert_userids_stmt,
[INFO] [stdout] 317 | |               "INSERT OR REPLACE INTO userids (userid, primary_key)
[INFO] [stdout] 318 | |                 VALUES (?, ?)");
[INFO] [stdout]     | |_______________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:325:5
[INFO] [stdout]     |
[INFO] [stdout] 325 | /     sql_stmt!(cert_delete_stmt,
[INFO] [stdout] 326 | |               "DELETE FROM keys WHERE primary_key = ?");
[INFO] [stdout]     | |_______________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:402:24
[INFO] [stdout]     |
[INFO] [stdout] 402 |               let cert = wrap_err!(
[INFO] [stdout]     |  ________________________-
[INFO] [stdout] 403 | |                 Cert::from_bytes(bytes),
[INFO] [stdout] 404 | |                 GetKeyFailed,
[INFO] [stdout] 405 | |                 format!("Parsing certificate"))?;
[INFO] [stdout]     | |_______________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:422:17
[INFO] [stdout]     |
[INFO] [stdout] 422 |           let r = wrap_err!(
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 423 | |             if private_only {
[INFO] [stdout] 424 | |                 Self::tsk_find_stmt(conn)?
[INFO] [stdout] 425 | |                     .query_row(&[ &fpr.to_hex() ], Self::key_load)
[INFO] [stdout] ...   |
[INFO] [stdout] 430 | |             UnknownDbError,
[INFO] [stdout] 431 | |             "executing query")?;
[INFO] [stdout]     | |______________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:482:19
[INFO] [stdout]     |
[INFO] [stdout] 482 |           let row = wrap_err!(
[INFO] [stdout]     |  ___________________-
[INFO] [stdout] 483 | |             stmt.query_row(&[ &keyid.to_hex() ], Self::key_load).optional(),
[INFO] [stdout] 484 | |             UnknownDbError,
[INFO] [stdout] 485 | |             "executing query")?;
[INFO] [stdout]     | |______________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:510:20
[INFO] [stdout]     |
[INFO] [stdout] 510 |           let rows = wrap_err!(
[INFO] [stdout]     |  ____________________-
[INFO] [stdout] 511 | |             stmt.query_map([], Self::key_load),
[INFO] [stdout] 512 | |             UnknownDbError,
[INFO] [stdout] 513 | |             "executing query")?;
[INFO] [stdout]     | |______________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:516:38
[INFO] [stdout]     |
[INFO] [stdout] 516 |               let (keydata, private) = wrap_err!(
[INFO] [stdout]     |  ______________________________________-
[INFO] [stdout] 517 | |                 row,
[INFO] [stdout] 518 | |                 UnknownError,
[INFO] [stdout] 519 | |                 "parsing result")?;
[INFO] [stdout]     | |_________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:543:20
[INFO] [stdout]     |
[INFO] [stdout] 543 |           let rows = wrap_err!(
[INFO] [stdout]     |  ____________________-
[INFO] [stdout] 544 | |             stmt.query_map(&[ pattern ], Self::key_load),
[INFO] [stdout] 545 | |             UnknownDbError,
[INFO] [stdout] 546 | |             "executing query")?;
[INFO] [stdout]     | |______________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:549:38
[INFO] [stdout]     |
[INFO] [stdout] 549 |               let (keydata, private) = wrap_err!(
[INFO] [stdout]     |  ______________________________________-
[INFO] [stdout] 550 | |                 row,
[INFO] [stdout] 551 | |                 UnknownError,
[INFO] [stdout] 552 | |                 "parsing result")?;
[INFO] [stdout]     | |_________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:582:18
[INFO] [stdout]     |
[INFO] [stdout] 582 |           let tx = wrap_err!(
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 583 | |             self.conn.transaction(),
[INFO] [stdout] 584 | |             UnknownDbError,
[INFO] [stdout] 585 | |             "starting transaction"
[INFO] [stdout] 586 | |         )?;
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:623:24
[INFO] [stdout]     |
[INFO] [stdout] 623 |                   cert = wrap_err!(
[INFO] [stdout]     |  ________________________-
[INFO] [stdout] 624 | |                     cert.merge_public_and_secret(current),
[INFO] [stdout] 625 | |                     UnknownDbError,
[INFO] [stdout] 626 | |                     "Merging certificate with existing certificate")?;
[INFO] [stdout]     | |____________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:637:9
[INFO] [stdout]     |
[INFO] [stdout] 637 | /         wrap_err!(
[INFO] [stdout] 638 | |             cert.as_tsk().serialize(&mut keydata),
[INFO] [stdout] 639 | |             UnknownDbError,
[INFO] [stdout] 640 | |             "Serializing certificate")?;
[INFO] [stdout]     | |______________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:656:13
[INFO] [stdout]     |
[INFO] [stdout] 656 | /             wrap_err!(
[INFO] [stdout] 657 | |                 stmt.execute(params![fpr.to_hex(), cert.is_tsk(), &keydata]),
[INFO] [stdout] 658 | |                 UnknownDbError,
[INFO] [stdout] 659 | |                 "Executing cert save insert primary")?;
[INFO] [stdout]     | |_____________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:673:21
[INFO] [stdout]     |
[INFO] [stdout] 673 | /                     wrap_err!(
[INFO] [stdout] 674 | |                         stmt.execute(
[INFO] [stdout] 675 | |                             params![ka.keyid().to_hex(), fpr.to_hex()]),
[INFO] [stdout] 676 | |                         UnknownDbError,
[INFO] [stdout] 677 | |                         "Executing cert save insert subkeys")?;
[INFO] [stdout]     | |_____________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:696:25
[INFO] [stdout]     |
[INFO] [stdout] 696 | /                         wrap_err!(
[INFO] [stdout] 697 | |                             stmt.execute(params![uid, fpr.to_hex()]),
[INFO] [stdout] 698 | |                             UnknownDbError,
[INFO] [stdout] 699 | |                             "Executing cert save insert userids")?;
[INFO] [stdout]     | |_________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:710:9
[INFO] [stdout]     |
[INFO] [stdout] 710 | /         wrap_err!(
[INFO] [stdout] 711 | |             tx.commit(),
[INFO] [stdout] 712 | |             UnknownDbError,
[INFO] [stdout] 713 | |             "committing transaction"
[INFO] [stdout] 714 | |         )?;
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:727:23
[INFO] [stdout]     |
[INFO] [stdout] 727 |           let changes = wrap_err!(
[INFO] [stdout]     |  _______________________-
[INFO] [stdout] 728 | |             Self::cert_delete_stmt(&self.conn)?
[INFO] [stdout] 729 | |                 .execute(params![ fpr.to_hex() ]),
[INFO] [stdout] 730 | |             CannotDeleteKey,
[INFO] [stdout] 731 | |             format!("Deleting {}", fpr))?;
[INFO] [stdout]     | |________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:184:17
[INFO] [stdout]     |
[INFO] [stdout] 184 | /                 wrap_err!(
[INFO] [stdout] 185 | |                     key.decrypt_secret(pass),
[INFO] [stdout] 186 | |                     WrongPassphrase,
[INFO] [stdout] 187 | |                     format!("Decrypting secret key material for {}", fpr))
[INFO] [stdout]     | |__________________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:784:21
[INFO] [stdout]     |
[INFO] [stdout] 784 |       let decryptor = wrap_err!(
[INFO] [stdout]     |  _____________________-
[INFO] [stdout] 785 | |         DecryptorBuilder::from_bytes(ctext),
[INFO] [stdout] 786 | |         UnknownError,
[INFO] [stdout] 787 | |         "DecryptorBuilder")?;
[INFO] [stdout]     | |___________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:800:5
[INFO] [stdout]     |
[INFO] [stdout] 800 | /     wrap_err!(decryptor.read_to_end(&mut content),
[INFO] [stdout] 801 | |               UnknownError,
[INFO] [stdout] 802 | |               "read_to_end")?;
[INFO] [stdout]     | |____________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:919:20
[INFO] [stdout]     |
[INFO] [stdout] 919 |       let verifier = wrap_err!(
[INFO] [stdout]     |  ____________________-
[INFO] [stdout] 920 | |         DetachedVerifierBuilder::from_bytes(&signature[..]),
[INFO] [stdout] 921 | |         UnknownError,
[INFO] [stdout] 922 | |         "Creating DetachedVerifierBuilder")?;
[INFO] [stdout]     | |___________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:934:5
[INFO] [stdout]     |
[INFO] [stdout] 934 | /     wrap_err!(
[INFO] [stdout] 935 | |         verifier.verify_bytes(text),
[INFO] [stdout] 936 | |         UnknownError,
[INFO] [stdout] 937 | |         "Verifying text")?;
[INFO] [stdout]     | |_________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:988:24
[INFO] [stdout]     |
[INFO] [stdout] 988 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]     |                          --------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1002:14
[INFO] [stdout]      |
[INFO] [stdout] 1002 |       let vc = wrap_err!(
[INFO] [stdout]      |  ______________-
[INFO] [stdout] 1003 | |         cert.with_policy(crate::P, None),
[INFO] [stdout] 1004 | |         KeyUnsuitable,
[INFO] [stdout] 1005 | |         format!("{} rejected by policy", cert.fingerprint()))?;
[INFO] [stdout]      | |_____________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1013:26
[INFO] [stdout]      |
[INFO] [stdout] 1013 |       let signer_keypair = wrap_err!(
[INFO] [stdout]      |  __________________________-
[INFO] [stdout] 1014 | |         key.into_keypair(),
[INFO] [stdout] 1015 | |         UnknownError,
[INFO] [stdout] 1016 | |         "Creating key pair from signing key")?;
[INFO] [stdout]      | |_____________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1022:19
[INFO] [stdout]      |
[INFO] [stdout] 1022 |       let message = wrap_err!(
[INFO] [stdout]      |  ___________________-
[INFO] [stdout] 1023 | |         Armorer::new(message).build(),
[INFO] [stdout] 1024 | |         UnknownError,
[INFO] [stdout] 1025 | |         "Setting up armorer")?;
[INFO] [stdout]      | |_____________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1027:23
[INFO] [stdout]      |
[INFO] [stdout] 1027 |       let mut message = wrap_err!(
[INFO] [stdout]      |  _______________________-
[INFO] [stdout] 1028 | |         Signer::new(message, signer_keypair).detached().build(),
[INFO] [stdout] 1029 | |         UnknownError,
[INFO] [stdout] 1030 | |         "Setting up signer")?;
[INFO] [stdout]      | |____________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1032:5
[INFO] [stdout]      |
[INFO] [stdout] 1032 | /     wrap_err!(
[INFO] [stdout] 1033 | |         message.write_all(ptext),
[INFO] [stdout] 1034 | |         UnknownError,
[INFO] [stdout] 1035 | |         "Signing message")?;
[INFO] [stdout]      | |__________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1037:5
[INFO] [stdout]      |
[INFO] [stdout] 1037 | /     wrap_err!(
[INFO] [stdout] 1038 | |         message.finalize(),
[INFO] [stdout] 1039 | |         UnknownError,
[INFO] [stdout] 1040 | |         "Finalizing message")?;
[INFO] [stdout]      | |_____________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1086:19
[INFO] [stdout]      |
[INFO] [stdout] 1086 |           let fpr = wrap_err!(
[INFO] [stdout]      |  ___________________-
[INFO] [stdout] 1087 | |             Fingerprint::from_hex(&String::from_utf8_lossy(item.to_bytes())),
[INFO] [stdout] 1088 | |             UnknownError,
[INFO] [stdout] 1089 | |             "Not a fingerprint")?;
[INFO] [stdout]      | |________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1092:18
[INFO] [stdout]      |
[INFO] [stdout] 1092 |           let vc = wrap_err!(
[INFO] [stdout]      |  __________________-
[INFO] [stdout] 1093 | |             cert.with_policy(crate::P, None),
[INFO] [stdout] 1094 | |             KeyUnsuitable,
[INFO] [stdout] 1095 | |             format!("{} rejected by policy", cert.fingerprint()))?;
[INFO] [stdout]      | |_________________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1123:27
[INFO] [stdout]      |
[INFO] [stdout] 1123 |               let keypair = wrap_err!(
[INFO] [stdout]      |  ___________________________-
[INFO] [stdout] 1124 | |                 key.into_keypair(),
[INFO] [stdout] 1125 | |                 UnknownError,
[INFO] [stdout] 1126 | |                 "Creating key pair from signing key")?;
[INFO] [stdout]      | |_____________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1141:19
[INFO] [stdout]      |
[INFO] [stdout] 1141 |       let message = wrap_err!(
[INFO] [stdout]      |  ___________________-
[INFO] [stdout] 1142 | |         Armorer::new(message).build(),
[INFO] [stdout] 1143 | |         UnknownError,
[INFO] [stdout] 1144 | |         "Setting up armorer")?;
[INFO] [stdout]      | |_____________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1146:23
[INFO] [stdout]      |
[INFO] [stdout] 1146 |       let mut message = wrap_err!(
[INFO] [stdout]      |  _______________________-
[INFO] [stdout] 1147 | |         Encryptor::for_recipients(message, recipients).build(),
[INFO] [stdout] 1148 | |         UnknownError,
[INFO] [stdout] 1149 | |         "Setting up encryptor")?;
[INFO] [stdout]      | |_______________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1152:19
[INFO] [stdout]      |
[INFO] [stdout] 1152 |           message = wrap_err!(
[INFO] [stdout]      |  ___________________-
[INFO] [stdout] 1153 | |             Signer::new(message, keypair).build(),
[INFO] [stdout] 1154 | |             UnknownError,
[INFO] [stdout] 1155 | |             "Setting up signer")?;
[INFO] [stdout]      | |________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1158:23
[INFO] [stdout]      |
[INFO] [stdout] 1158 |       let mut message = wrap_err!(
[INFO] [stdout]      |  _______________________-
[INFO] [stdout] 1159 | |         LiteralWriter::new(message).build(),
[INFO] [stdout] 1160 | |         UnknownError,
[INFO] [stdout] 1161 | |         "Setting up literal writer")?;
[INFO] [stdout]      | |____________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1163:5
[INFO] [stdout]      |
[INFO] [stdout] 1163 | /     wrap_err!(
[INFO] [stdout] 1164 | |         message.write_all(ptext),
[INFO] [stdout] 1165 | |         UnknownError,
[INFO] [stdout] 1166 | |         "Encrypting message")?;
[INFO] [stdout]      | |_____________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1168:5
[INFO] [stdout]      |
[INFO] [stdout] 1168 | /     wrap_err!(
[INFO] [stdout] 1169 | |         message.finalize(),
[INFO] [stdout] 1170 | |         UnknownError,
[INFO] [stdout] 1171 | |         "Finalizing message")?;
[INFO] [stdout]      | |_____________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1268:18
[INFO] [stdout]      |
[INFO] [stdout] 1268 |       let userid = wrap_err!(
[INFO] [stdout]      |  __________________-
[INFO] [stdout] 1269 | |         UserID::from_unchecked_address(username, None, address)
[INFO] [stdout] 1270 | |             .or_else(|err| {
[INFO] [stdout] 1271 | |                 if let Some(username) = username {
[INFO] [stdout] ...    |
[INFO] [stdout] 1309 | |         UnknownError,
[INFO] [stdout] 1310 | |         "UserID::from_unchecked_address")?;
[INFO] [stdout]      | |_________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1324:21
[INFO] [stdout]      |
[INFO] [stdout] 1324 |       let (cert, _) = wrap_err!(
[INFO] [stdout]      |  _____________________-
[INFO] [stdout] 1325 | |         certb.generate(),
[INFO] [stdout] 1326 | |         CannotCreateKey,
[INFO] [stdout] 1327 | |         "Generating a key pair")?;
[INFO] [stdout]      | |________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1331:5
[INFO] [stdout]      |
[INFO] [stdout] 1331 | /     wrap_err!(
[INFO] [stdout] 1332 | |         session.keystore().cert_save(cert),
[INFO] [stdout] 1333 | |         CannotCreateKey,
[INFO] [stdout] 1334 | |         "Saving new key")?;
[INFO] [stdout]      | |_________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1358:24
[INFO] [stdout]      |
[INFO] [stdout] 1358 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1428:40
[INFO] [stdout]      |
[INFO] [stdout] 1428 |   ...                   return wrap_err!(
[INFO] [stdout]      |  ______________________________-
[INFO] [stdout] 1429 | | ...                       Err(err),
[INFO] [stdout] 1430 | | ...                       UnknownError,
[INFO] [stdout] 1431 | | ...                       "inserting packets");
[INFO] [stdout]      | |______________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1498:25
[INFO] [stdout]      |
[INFO] [stdout] 1498 | /                         wrap_err!(e,
[INFO] [stdout] 1499 | |                                   UnknownError,
[INFO] [stdout] 1500 | |                                   "Error reading keyring")?;
[INFO] [stdout]      | |__________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1654:24
[INFO] [stdout]      |
[INFO] [stdout] 1654 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1666:9
[INFO] [stdout]      |
[INFO] [stdout] 1666 | /         wrap_err!(
[INFO] [stdout] 1667 | |             cert.as_tsk().armored().serialize(&mut keydata),
[INFO] [stdout] 1668 | |             UnknownError,
[INFO] [stdout] 1669 | |             format!("Serializing key: {}", cert.fingerprint()))?;
[INFO] [stdout]      | |_______________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1671:9
[INFO] [stdout]      |
[INFO] [stdout] 1671 | /         wrap_err!(
[INFO] [stdout] 1672 | |             cert.armored().serialize(&mut keydata),
[INFO] [stdout] 1673 | |             UnknownError,
[INFO] [stdout] 1674 | |             format!("Serializing certificate: {}", cert.fingerprint()))?;
[INFO] [stdout]      | |_______________________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1774:24
[INFO] [stdout]      |
[INFO] [stdout] 1774 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1808:14
[INFO] [stdout]      |
[INFO] [stdout] 1808 |       let vc = wrap_err!(
[INFO] [stdout]      |  ______________-
[INFO] [stdout] 1809 | |         cert.with_policy(crate::P, None),
[INFO] [stdout] 1810 | |         KeyUnsuitable,
[INFO] [stdout] 1811 | |         format!("{} rejected by policy", cert.fingerprint()))?;
[INFO] [stdout]      | |_____________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1819:30
[INFO] [stdout]      |
[INFO] [stdout] 1819 |       let mut signer_keypair = wrap_err!(
[INFO] [stdout]      |  ______________________________-
[INFO] [stdout] 1820 | |         key.into_keypair(),
[INFO] [stdout] 1821 | |         UnknownError,
[INFO] [stdout] 1822 | |         "Creating key pair from certification key")?;
[INFO] [stdout]      | |___________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1834:26
[INFO] [stdout]      |
[INFO] [stdout] 1834 |               let subkey = wrap_err!(
[INFO] [stdout]      |  __________________________-
[INFO] [stdout] 1835 | |                 ka.key().clone().parts_into_secret(),
[INFO] [stdout] 1836 | |                 UnknownError,
[INFO] [stdout] 1837 | |                 "Can't extend signing-capable subkey's expiration: \
[INFO] [stdout] 1838 | |                  secret key material is not available")?;
[INFO] [stdout]      | |_______________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1842:38
[INFO] [stdout]      |
[INFO] [stdout] 1842 |               let mut subkey_keypair = wrap_err!(
[INFO] [stdout]      |  ______________________________________-
[INFO] [stdout] 1843 | |                 subkey.into_keypair(),
[INFO] [stdout] 1844 | |                 UnknownError,
[INFO] [stdout] 1845 | |                 "Creating key pair from subkey")?;
[INFO] [stdout]      | |________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1847:13
[INFO] [stdout]      |
[INFO] [stdout] 1847 | /             wrap_err!(
[INFO] [stdout] 1848 | |                 ka.set_expiration_time(
[INFO] [stdout] 1849 | |                     &mut signer_keypair,
[INFO] [stdout] 1850 | |                     Some(&mut subkey_keypair),
[INFO] [stdout] 1851 | |                     Some(expiration)),
[INFO] [stdout] 1852 | |                 UnknownError,
[INFO] [stdout] 1853 | |                 "setting expiration (generating self signature and backsig)")?
[INFO] [stdout]      | |_____________________________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1855:13
[INFO] [stdout]      |
[INFO] [stdout] 1855 | /             wrap_err!(
[INFO] [stdout] 1856 | |                 ka.set_expiration_time(
[INFO] [stdout] 1857 | |                     &mut signer_keypair,
[INFO] [stdout] 1858 | |                     None,
[INFO] [stdout] 1859 | |                     Some(expiration)),
[INFO] [stdout] 1860 | |                 UnknownError,
[INFO] [stdout] 1861 | |                 "setting expiration (generating self signature)")?
[INFO] [stdout]      | |_________________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1867:16
[INFO] [stdout]      |
[INFO] [stdout] 1867 |       let cert = wrap_err!(
[INFO] [stdout]      |  ________________-
[INFO] [stdout] 1868 | |         cert.insert_packets(self_sigs),
[INFO] [stdout] 1869 | |         UnknownError,
[INFO] [stdout] 1870 | |         "inserting new self signatures")?;
[INFO] [stdout]      | |________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1885:24
[INFO] [stdout]      |
[INFO] [stdout] 1885 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1898:14
[INFO] [stdout]      |
[INFO] [stdout] 1898 |       let vc = wrap_err!(
[INFO] [stdout]      |  ______________-
[INFO] [stdout] 1899 | |         cert.with_policy(crate::P, None),
[INFO] [stdout] 1900 | |         KeyUnsuitable,
[INFO] [stdout] 1901 | |         format!("{} rejected by policy", cert.fingerprint()))?;
[INFO] [stdout]      | |_____________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1909:30
[INFO] [stdout]      |
[INFO] [stdout] 1909 |       let mut signer_keypair = wrap_err!(
[INFO] [stdout]      |  ______________________________-
[INFO] [stdout] 1910 | |         key.into_keypair(),
[INFO] [stdout] 1911 | |         UnknownError,
[INFO] [stdout] 1912 | |         "Creating key pair from certification key")?;
[INFO] [stdout]      | |___________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1914:15
[INFO] [stdout]      |
[INFO] [stdout] 1914 |       let sig = wrap_err!(
[INFO] [stdout]      |  _______________-
[INFO] [stdout] 1915 | |         cert.revoke(&mut signer_keypair,
[INFO] [stdout] 1916 | |                     ReasonForRevocation::Unspecified,
[INFO] [stdout] 1917 | |                     reason),
[INFO] [stdout] 1918 | |         UnknownError,
[INFO] [stdout] 1919 | |         "generating revocation certificate")?;
[INFO] [stdout]      | |____________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1921:16
[INFO] [stdout]      |
[INFO] [stdout] 1921 |       let cert = wrap_err!(
[INFO] [stdout]      |  ________________-
[INFO] [stdout] 1922 | |         cert.insert_packets(sig),
[INFO] [stdout] 1923 | |         UnknownError,
[INFO] [stdout] 1924 | |         "merging revocation certificate")?;
[INFO] [stdout]      | |_________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2014:24
[INFO] [stdout]      |
[INFO] [stdout] 2014 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2026:14
[INFO] [stdout]      |
[INFO] [stdout] 2026 |       let vc = wrap_err!(
[INFO] [stdout]      |  ______________-
[INFO] [stdout] 2027 | |         cert.with_policy(crate::P, when),
[INFO] [stdout] 2028 | |         UnknownError,
[INFO] [stdout] 2029 | |         "Invalid certificate")?;
[INFO] [stdout]      | |______________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2096:24
[INFO] [stdout]      |
[INFO] [stdout] 2096 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2101:14
[INFO] [stdout]      |
[INFO] [stdout] 2101 |       let vc = wrap_err!(
[INFO] [stdout]      |  ______________-
[INFO] [stdout] 2102 | |         cert.with_policy(crate::P, None),
[INFO] [stdout] 2103 | |         UnknownError,
[INFO] [stdout] 2104 | |         "Invalid certificate")?;
[INFO] [stdout]      | |______________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2127:24
[INFO] [stdout]      |
[INFO] [stdout] 2127 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2135:14
[INFO] [stdout]      |
[INFO] [stdout] 2135 |       let vc = wrap_err!(
[INFO] [stdout]      |  ______________-
[INFO] [stdout] 2136 | |         cert.with_policy(crate::P, None),
[INFO] [stdout] 2137 | |         UnknownError,
[INFO] [stdout] 2138 | |         "Invalid certificate")?;
[INFO] [stdout]      | |______________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2234:24
[INFO] [stdout]      |
[INFO] [stdout] 2234 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2239:13
[INFO] [stdout]      |
[INFO] [stdout] 2239 |       let t = wrap_err!(
[INFO] [stdout]      |  _____________-
[INFO] [stdout] 2240 | |         cert.primary_key().creation_time().duration_since(UNIX_EPOCH),
[INFO] [stdout] 2241 | |         UnknownError,
[INFO] [stdout] 2242 | |         "Creation time out of range")?.as_secs();
[INFO] [stdout]      | |_____________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2265:24
[INFO] [stdout]      |
[INFO] [stdout] 2265 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/pep/stringlist.rs:151:42
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub fn iter_mut<'a>(&'a mut self) -> StringListIterMut {
[INFO] [stdout]     |                          --              ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is named here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub fn iter_mut<'a>(&'a mut self) -> StringListIterMut<'a> {
[INFO] [stdout]     |                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pep_engine_sequoia_backend` (lib) due to 88 previous errors; 10 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/lib.rs:1390:17
[INFO] [stdout]      |
[INFO] [stdout] 1390 |                 anyhow::anyhow!("Unexpected EOF").into(),
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 | /             wrap_err!(
[INFO] [stdout] 162 | |                 Connection::open_with_flags(
[INFO] [stdout] 163 | |                     &keys_db,
[INFO] [stdout] 164 | |                     OpenFlags::SQLITE_OPEN_READ_WRITE
[INFO] [stdout] ...   |
[INFO] [stdout] 168 | |                 InitCannotOpenDB,
[INFO] [stdout] 169 | |                 format!("Opening keys DB ('{}')", keys_db.display()))?
[INFO] [stdout]     | |_____________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 | /             wrap_err!(
[INFO] [stdout] 173 | |                 Connection::open_in_memory(),
[INFO] [stdout] 174 | |                 InitCannotOpenDB,
[INFO] [stdout] 175 | |                 "Creating in-memory keys DB")?
[INFO] [stdout]     | |_____________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 | /         wrap_err!(
[INFO] [stdout] 179 | |             conn.execute_batch("PRAGMA secure_delete=true;
[INFO] [stdout] 180 | |                                 PRAGMA foreign_keys=true;
[INFO] [stdout] 181 | |                                 PRAGMA locking_mode=NORMAL;
[INFO] [stdout] ...   |
[INFO] [stdout] 184 | |             format!("Setting pragmas on keys DB ('{}')",
[INFO] [stdout] 185 | |                     keys_db.display()))?;
[INFO] [stdout]     | |_______________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 187 | /         wrap_err!(
[INFO] [stdout] 188 | |             conn.busy_timeout(BUSY_WAIT_TIME),
[INFO] [stdout] 189 | |             InitCannotOpenDB,
[INFO] [stdout] 190 | |             format!("Setting busy time ('{}')", keys_db.display()))?;
[INFO] [stdout]     | |___________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 192 | /         wrap_err!(
[INFO] [stdout] 193 | |             conn.create_collation("EMAIL", Self::email_cmp),
[INFO] [stdout] 194 | |             InitCannotOpenDB,
[INFO] [stdout] 195 | |             format!("Registering EMAIL collation function"))?;
[INFO] [stdout]     | |____________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 197 | /         wrap_err!(
[INFO] [stdout] 198 | |             conn.execute_batch(
[INFO] [stdout] 199 | |                 "CREATE TABLE IF NOT EXISTS keys (
[INFO] [stdout] 200 | |                     primary_key TEXT UNIQUE PRIMARY KEY,
[INFO] [stdout] ...   |
[INFO] [stdout] 207 | |             format!("Creating keys table ('{}')",
[INFO] [stdout] 208 | |                     keys_db.display()))?;
[INFO] [stdout]     | |_______________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 | /         wrap_err!(
[INFO] [stdout] 211 | |             conn.execute_batch(
[INFO] [stdout] 212 | |                 "CREATE TABLE IF NOT EXISTS subkeys (
[INFO] [stdout] 213 | |                    subkey TEXT NOT NULL,
[INFO] [stdout] ...   |
[INFO] [stdout] 223 | |             format!("Creating subkeys table ('{}')",
[INFO] [stdout] 224 | |                     keys_db.display()))?;
[INFO] [stdout]     | |_______________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 226 | /         wrap_err!(
[INFO] [stdout] 227 | |             conn.execute_batch(
[INFO] [stdout] 228 | |                 "CREATE TABLE IF NOT EXISTS userids (
[INFO] [stdout] 229 | |                     userid TEXT NOT NULL COLLATE EMAIL,
[INFO] [stdout] ...   |
[INFO] [stdout] 239 | |             format!("Creating userids table ('{}')",
[INFO] [stdout] 240 | |                     keys_db.display()))?;
[INFO] [stdout]     | |_______________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:250:5
[INFO] [stdout]     |
[INFO] [stdout] 250 | /     sql_stmt!(cert_find_stmt,
[INFO] [stdout] 251 | |               "SELECT tpk, secret FROM keys WHERE primary_key == ?");
[INFO] [stdout]     | |____________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:255:5
[INFO] [stdout]     |
[INFO] [stdout] 255 | /     sql_stmt!(tsk_find_stmt,
[INFO] [stdout] 256 | |               "SELECT tpk, secret FROM keys
[INFO] [stdout] 257 | |                  WHERE primary_key == ? and secret == 1");
[INFO] [stdout]     | |_________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:263:5
[INFO] [stdout]     |
[INFO] [stdout] 263 | /     sql_stmt!(cert_find_with_key_stmt,
[INFO] [stdout] 264 | |               "SELECT tpk, secret FROM subkeys
[INFO] [stdout] 265 | |                 LEFT JOIN keys
[INFO] [stdout] 266 | |                  ON subkeys.primary_key == keys.primary_key
[INFO] [stdout] 267 | |                 WHERE subkey == ?");
[INFO] [stdout]     | |___________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:273:5
[INFO] [stdout]     |
[INFO] [stdout] 273 | /     sql_stmt!(tsk_find_with_key_stmt,
[INFO] [stdout] 274 | |               "SELECT tpk, secret FROM subkeys
[INFO] [stdout] 275 | |                 LEFT JOIN keys
[INFO] [stdout] 276 | |                  ON subkeys.primary_key == keys.primary_key
[INFO] [stdout] 277 | |                 WHERE subkey == ? and keys.secret == 1");
[INFO] [stdout]     | |________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:281:5
[INFO] [stdout]     |
[INFO] [stdout] 281 | /     sql_stmt!(cert_find_by_email_stmt,
[INFO] [stdout] 282 | |               "SELECT tpk, secret FROM userids
[INFO] [stdout] 283 | |                 LEFT JOIN keys
[INFO] [stdout] 284 | |                  ON userids.primary_key == keys.primary_key
[INFO] [stdout] 285 | |                 WHERE userid == ?");
[INFO] [stdout]     | |___________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 289 | /     sql_stmt!(tsk_find_by_email_stmt,
[INFO] [stdout] 290 | |               "SELECT tpk, secret FROM userids
[INFO] [stdout] 291 | |                 LEFT JOIN keys
[INFO] [stdout] 292 | |                  ON userids.primary_key == keys.primary_key
[INFO] [stdout] 293 | |                WHERE userid == ? and keys.secret == 1");
[INFO] [stdout]     | |_______________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:297:5
[INFO] [stdout]     |
[INFO] [stdout] 297 | /     sql_stmt!(cert_all_stmt,
[INFO] [stdout] 298 | |               "select tpk, secret from keys");
[INFO] [stdout]     | |_____________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:302:5
[INFO] [stdout]     |
[INFO] [stdout] 302 | /     sql_stmt!(tsk_all_stmt,
[INFO] [stdout] 303 | |               "select tpk, secret from keys where secret = 1");
[INFO] [stdout]     | |______________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 306 | /     sql_stmt!(cert_save_insert_primary_stmt,
[INFO] [stdout] 307 | |               "INSERT OR REPLACE INTO keys (primary_key, secret, tpk)
[INFO] [stdout] 308 | |                 VALUES (?, ?, ?)");
[INFO] [stdout]     | |__________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:311:5
[INFO] [stdout]     |
[INFO] [stdout] 311 | /     sql_stmt!(cert_save_insert_subkeys_stmt,
[INFO] [stdout] 312 | |               "INSERT OR REPLACE INTO subkeys (subkey, primary_key)
[INFO] [stdout] 313 | |                 VALUES (?, ?)");
[INFO] [stdout]     | |_______________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:316:5
[INFO] [stdout]     |
[INFO] [stdout] 316 | /     sql_stmt!(cert_save_insert_userids_stmt,
[INFO] [stdout] 317 | |               "INSERT OR REPLACE INTO userids (userid, primary_key)
[INFO] [stdout] 318 | |                 VALUES (?, ?)");
[INFO] [stdout]     | |_______________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `sql_stmt`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:325:5
[INFO] [stdout]     |
[INFO] [stdout] 325 | /     sql_stmt!(cert_delete_stmt,
[INFO] [stdout] 326 | |               "DELETE FROM keys WHERE primary_key = ?");
[INFO] [stdout]     | |_______________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:402:24
[INFO] [stdout]     |
[INFO] [stdout] 402 |               let cert = wrap_err!(
[INFO] [stdout]     |  ________________________-
[INFO] [stdout] 403 | |                 Cert::from_bytes(bytes),
[INFO] [stdout] 404 | |                 GetKeyFailed,
[INFO] [stdout] 405 | |                 format!("Parsing certificate"))?;
[INFO] [stdout]     | |_______________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:422:17
[INFO] [stdout]     |
[INFO] [stdout] 422 |           let r = wrap_err!(
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 423 | |             if private_only {
[INFO] [stdout] 424 | |                 Self::tsk_find_stmt(conn)?
[INFO] [stdout] 425 | |                     .query_row(&[ &fpr.to_hex() ], Self::key_load)
[INFO] [stdout] ...   |
[INFO] [stdout] 430 | |             UnknownDbError,
[INFO] [stdout] 431 | |             "executing query")?;
[INFO] [stdout]     | |______________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:482:19
[INFO] [stdout]     |
[INFO] [stdout] 482 |           let row = wrap_err!(
[INFO] [stdout]     |  ___________________-
[INFO] [stdout] 483 | |             stmt.query_row(&[ &keyid.to_hex() ], Self::key_load).optional(),
[INFO] [stdout] 484 | |             UnknownDbError,
[INFO] [stdout] 485 | |             "executing query")?;
[INFO] [stdout]     | |______________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:510:20
[INFO] [stdout]     |
[INFO] [stdout] 510 |           let rows = wrap_err!(
[INFO] [stdout]     |  ____________________-
[INFO] [stdout] 511 | |             stmt.query_map([], Self::key_load),
[INFO] [stdout] 512 | |             UnknownDbError,
[INFO] [stdout] 513 | |             "executing query")?;
[INFO] [stdout]     | |______________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:516:38
[INFO] [stdout]     |
[INFO] [stdout] 516 |               let (keydata, private) = wrap_err!(
[INFO] [stdout]     |  ______________________________________-
[INFO] [stdout] 517 | |                 row,
[INFO] [stdout] 518 | |                 UnknownError,
[INFO] [stdout] 519 | |                 "parsing result")?;
[INFO] [stdout]     | |_________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:543:20
[INFO] [stdout]     |
[INFO] [stdout] 543 |           let rows = wrap_err!(
[INFO] [stdout]     |  ____________________-
[INFO] [stdout] 544 | |             stmt.query_map(&[ pattern ], Self::key_load),
[INFO] [stdout] 545 | |             UnknownDbError,
[INFO] [stdout] 546 | |             "executing query")?;
[INFO] [stdout]     | |______________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:549:38
[INFO] [stdout]     |
[INFO] [stdout] 549 |               let (keydata, private) = wrap_err!(
[INFO] [stdout]     |  ______________________________________-
[INFO] [stdout] 550 | |                 row,
[INFO] [stdout] 551 | |                 UnknownError,
[INFO] [stdout] 552 | |                 "parsing result")?;
[INFO] [stdout]     | |_________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:582:18
[INFO] [stdout]     |
[INFO] [stdout] 582 |           let tx = wrap_err!(
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 583 | |             self.conn.transaction(),
[INFO] [stdout] 584 | |             UnknownDbError,
[INFO] [stdout] 585 | |             "starting transaction"
[INFO] [stdout] 586 | |         )?;
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:623:24
[INFO] [stdout]     |
[INFO] [stdout] 623 |                   cert = wrap_err!(
[INFO] [stdout]     |  ________________________-
[INFO] [stdout] 624 | |                     cert.merge_public_and_secret(current),
[INFO] [stdout] 625 | |                     UnknownDbError,
[INFO] [stdout] 626 | |                     "Merging certificate with existing certificate")?;
[INFO] [stdout]     | |____________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:637:9
[INFO] [stdout]     |
[INFO] [stdout] 637 | /         wrap_err!(
[INFO] [stdout] 638 | |             cert.as_tsk().serialize(&mut keydata),
[INFO] [stdout] 639 | |             UnknownDbError,
[INFO] [stdout] 640 | |             "Serializing certificate")?;
[INFO] [stdout]     | |______________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:656:13
[INFO] [stdout]     |
[INFO] [stdout] 656 | /             wrap_err!(
[INFO] [stdout] 657 | |                 stmt.execute(params![fpr.to_hex(), cert.is_tsk(), &keydata]),
[INFO] [stdout] 658 | |                 UnknownDbError,
[INFO] [stdout] 659 | |                 "Executing cert save insert primary")?;
[INFO] [stdout]     | |_____________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:673:21
[INFO] [stdout]     |
[INFO] [stdout] 673 | /                     wrap_err!(
[INFO] [stdout] 674 | |                         stmt.execute(
[INFO] [stdout] 675 | |                             params![ka.keyid().to_hex(), fpr.to_hex()]),
[INFO] [stdout] 676 | |                         UnknownDbError,
[INFO] [stdout] 677 | |                         "Executing cert save insert subkeys")?;
[INFO] [stdout]     | |_____________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:696:25
[INFO] [stdout]     |
[INFO] [stdout] 696 | /                         wrap_err!(
[INFO] [stdout] 697 | |                             stmt.execute(params![uid, fpr.to_hex()]),
[INFO] [stdout] 698 | |                             UnknownDbError,
[INFO] [stdout] 699 | |                             "Executing cert save insert userids")?;
[INFO] [stdout]     | |_________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:710:9
[INFO] [stdout]     |
[INFO] [stdout] 710 | /         wrap_err!(
[INFO] [stdout] 711 | |             tx.commit(),
[INFO] [stdout] 712 | |             UnknownDbError,
[INFO] [stdout] 713 | |             "committing transaction"
[INFO] [stdout] 714 | |         )?;
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/keystore.rs:727:23
[INFO] [stdout]     |
[INFO] [stdout] 727 |           let changes = wrap_err!(
[INFO] [stdout]     |  _______________________-
[INFO] [stdout] 728 | |             Self::cert_delete_stmt(&self.conn)?
[INFO] [stdout] 729 | |                 .execute(params![ fpr.to_hex() ]),
[INFO] [stdout] 730 | |             CannotDeleteKey,
[INFO] [stdout] 731 | |             format!("Deleting {}", fpr))?;
[INFO] [stdout]     | |________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:184:17
[INFO] [stdout]     |
[INFO] [stdout] 184 | /                 wrap_err!(
[INFO] [stdout] 185 | |                     key.decrypt_secret(pass),
[INFO] [stdout] 186 | |                     WrongPassphrase,
[INFO] [stdout] 187 | |                     format!("Decrypting secret key material for {}", fpr))
[INFO] [stdout]     | |__________________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:784:21
[INFO] [stdout]     |
[INFO] [stdout] 784 |       let decryptor = wrap_err!(
[INFO] [stdout]     |  _____________________-
[INFO] [stdout] 785 | |         DecryptorBuilder::from_bytes(ctext),
[INFO] [stdout] 786 | |         UnknownError,
[INFO] [stdout] 787 | |         "DecryptorBuilder")?;
[INFO] [stdout]     | |___________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:800:5
[INFO] [stdout]     |
[INFO] [stdout] 800 | /     wrap_err!(decryptor.read_to_end(&mut content),
[INFO] [stdout] 801 | |               UnknownError,
[INFO] [stdout] 802 | |               "read_to_end")?;
[INFO] [stdout]     | |____________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:919:20
[INFO] [stdout]     |
[INFO] [stdout] 919 |       let verifier = wrap_err!(
[INFO] [stdout]     |  ____________________-
[INFO] [stdout] 920 | |         DetachedVerifierBuilder::from_bytes(&signature[..]),
[INFO] [stdout] 921 | |         UnknownError,
[INFO] [stdout] 922 | |         "Creating DetachedVerifierBuilder")?;
[INFO] [stdout]     | |___________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]  35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:934:5
[INFO] [stdout]     |
[INFO] [stdout] 934 | /     wrap_err!(
[INFO] [stdout] 935 | |         verifier.verify_bytes(text),
[INFO] [stdout] 936 | |         UnknownError,
[INFO] [stdout] 937 | |         "Verifying text")?;
[INFO] [stdout]     | |_________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/pep.rs:35:17
[INFO] [stdout]     |
[INFO] [stdout]  29 | / macro_rules! wrap_err {
[INFO] [stdout]  30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]  31 | |         $e.map_err(|err| {
[INFO] [stdout]  32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...   |
[INFO] [stdout]  35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout]  39 | | }
[INFO] [stdout]     | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:988:24
[INFO] [stdout]     |
[INFO] [stdout] 988 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]     |                          --------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1002:14
[INFO] [stdout]      |
[INFO] [stdout] 1002 |       let vc = wrap_err!(
[INFO] [stdout]      |  ______________-
[INFO] [stdout] 1003 | |         cert.with_policy(crate::P, None),
[INFO] [stdout] 1004 | |         KeyUnsuitable,
[INFO] [stdout] 1005 | |         format!("{} rejected by policy", cert.fingerprint()))?;
[INFO] [stdout]      | |_____________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1013:26
[INFO] [stdout]      |
[INFO] [stdout] 1013 |       let signer_keypair = wrap_err!(
[INFO] [stdout]      |  __________________________-
[INFO] [stdout] 1014 | |         key.into_keypair(),
[INFO] [stdout] 1015 | |         UnknownError,
[INFO] [stdout] 1016 | |         "Creating key pair from signing key")?;
[INFO] [stdout]      | |_____________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1022:19
[INFO] [stdout]      |
[INFO] [stdout] 1022 |       let message = wrap_err!(
[INFO] [stdout]      |  ___________________-
[INFO] [stdout] 1023 | |         Armorer::new(message).build(),
[INFO] [stdout] 1024 | |         UnknownError,
[INFO] [stdout] 1025 | |         "Setting up armorer")?;
[INFO] [stdout]      | |_____________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1027:23
[INFO] [stdout]      |
[INFO] [stdout] 1027 |       let mut message = wrap_err!(
[INFO] [stdout]      |  _______________________-
[INFO] [stdout] 1028 | |         Signer::new(message, signer_keypair).detached().build(),
[INFO] [stdout] 1029 | |         UnknownError,
[INFO] [stdout] 1030 | |         "Setting up signer")?;
[INFO] [stdout]      | |____________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1032:5
[INFO] [stdout]      |
[INFO] [stdout] 1032 | /     wrap_err!(
[INFO] [stdout] 1033 | |         message.write_all(ptext),
[INFO] [stdout] 1034 | |         UnknownError,
[INFO] [stdout] 1035 | |         "Signing message")?;
[INFO] [stdout]      | |__________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1037:5
[INFO] [stdout]      |
[INFO] [stdout] 1037 | /     wrap_err!(
[INFO] [stdout] 1038 | |         message.finalize(),
[INFO] [stdout] 1039 | |         UnknownError,
[INFO] [stdout] 1040 | |         "Finalizing message")?;
[INFO] [stdout]      | |_____________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1086:19
[INFO] [stdout]      |
[INFO] [stdout] 1086 |           let fpr = wrap_err!(
[INFO] [stdout]      |  ___________________-
[INFO] [stdout] 1087 | |             Fingerprint::from_hex(&String::from_utf8_lossy(item.to_bytes())),
[INFO] [stdout] 1088 | |             UnknownError,
[INFO] [stdout] 1089 | |             "Not a fingerprint")?;
[INFO] [stdout]      | |________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1092:18
[INFO] [stdout]      |
[INFO] [stdout] 1092 |           let vc = wrap_err!(
[INFO] [stdout]      |  __________________-
[INFO] [stdout] 1093 | |             cert.with_policy(crate::P, None),
[INFO] [stdout] 1094 | |             KeyUnsuitable,
[INFO] [stdout] 1095 | |             format!("{} rejected by policy", cert.fingerprint()))?;
[INFO] [stdout]      | |_________________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1123:27
[INFO] [stdout]      |
[INFO] [stdout] 1123 |               let keypair = wrap_err!(
[INFO] [stdout]      |  ___________________________-
[INFO] [stdout] 1124 | |                 key.into_keypair(),
[INFO] [stdout] 1125 | |                 UnknownError,
[INFO] [stdout] 1126 | |                 "Creating key pair from signing key")?;
[INFO] [stdout]      | |_____________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1141:19
[INFO] [stdout]      |
[INFO] [stdout] 1141 |       let message = wrap_err!(
[INFO] [stdout]      |  ___________________-
[INFO] [stdout] 1142 | |         Armorer::new(message).build(),
[INFO] [stdout] 1143 | |         UnknownError,
[INFO] [stdout] 1144 | |         "Setting up armorer")?;
[INFO] [stdout]      | |_____________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1146:23
[INFO] [stdout]      |
[INFO] [stdout] 1146 |       let mut message = wrap_err!(
[INFO] [stdout]      |  _______________________-
[INFO] [stdout] 1147 | |         Encryptor::for_recipients(message, recipients).build(),
[INFO] [stdout] 1148 | |         UnknownError,
[INFO] [stdout] 1149 | |         "Setting up encryptor")?;
[INFO] [stdout]      | |_______________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1152:19
[INFO] [stdout]      |
[INFO] [stdout] 1152 |           message = wrap_err!(
[INFO] [stdout]      |  ___________________-
[INFO] [stdout] 1153 | |             Signer::new(message, keypair).build(),
[INFO] [stdout] 1154 | |             UnknownError,
[INFO] [stdout] 1155 | |             "Setting up signer")?;
[INFO] [stdout]      | |________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1158:23
[INFO] [stdout]      |
[INFO] [stdout] 1158 |       let mut message = wrap_err!(
[INFO] [stdout]      |  _______________________-
[INFO] [stdout] 1159 | |         LiteralWriter::new(message).build(),
[INFO] [stdout] 1160 | |         UnknownError,
[INFO] [stdout] 1161 | |         "Setting up literal writer")?;
[INFO] [stdout]      | |____________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1163:5
[INFO] [stdout]      |
[INFO] [stdout] 1163 | /     wrap_err!(
[INFO] [stdout] 1164 | |         message.write_all(ptext),
[INFO] [stdout] 1165 | |         UnknownError,
[INFO] [stdout] 1166 | |         "Encrypting message")?;
[INFO] [stdout]      | |_____________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1168:5
[INFO] [stdout]      |
[INFO] [stdout] 1168 | /     wrap_err!(
[INFO] [stdout] 1169 | |         message.finalize(),
[INFO] [stdout] 1170 | |         UnknownError,
[INFO] [stdout] 1171 | |         "Finalizing message")?;
[INFO] [stdout]      | |_____________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1268:18
[INFO] [stdout]      |
[INFO] [stdout] 1268 |       let userid = wrap_err!(
[INFO] [stdout]      |  __________________-
[INFO] [stdout] 1269 | |         UserID::from_unchecked_address(username, None, address)
[INFO] [stdout] 1270 | |             .or_else(|err| {
[INFO] [stdout] 1271 | |                 if let Some(username) = username {
[INFO] [stdout] ...    |
[INFO] [stdout] 1309 | |         UnknownError,
[INFO] [stdout] 1310 | |         "UserID::from_unchecked_address")?;
[INFO] [stdout]      | |_________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1324:21
[INFO] [stdout]      |
[INFO] [stdout] 1324 |       let (cert, _) = wrap_err!(
[INFO] [stdout]      |  _____________________-
[INFO] [stdout] 1325 | |         certb.generate(),
[INFO] [stdout] 1326 | |         CannotCreateKey,
[INFO] [stdout] 1327 | |         "Generating a key pair")?;
[INFO] [stdout]      | |________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1331:5
[INFO] [stdout]      |
[INFO] [stdout] 1331 | /     wrap_err!(
[INFO] [stdout] 1332 | |         session.keystore().cert_save(cert),
[INFO] [stdout] 1333 | |         CannotCreateKey,
[INFO] [stdout] 1334 | |         "Saving new key")?;
[INFO] [stdout]      | |_________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1358:24
[INFO] [stdout]      |
[INFO] [stdout] 1358 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1428:40
[INFO] [stdout]      |
[INFO] [stdout] 1428 |   ...                   return wrap_err!(
[INFO] [stdout]      |  ______________________________-
[INFO] [stdout] 1429 | | ...                       Err(err),
[INFO] [stdout] 1430 | | ...                       UnknownError,
[INFO] [stdout] 1431 | | ...                       "inserting packets");
[INFO] [stdout]      | |______________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1498:25
[INFO] [stdout]      |
[INFO] [stdout] 1498 | /                         wrap_err!(e,
[INFO] [stdout] 1499 | |                                   UnknownError,
[INFO] [stdout] 1500 | |                                   "Error reading keyring")?;
[INFO] [stdout]      | |__________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1654:24
[INFO] [stdout]      |
[INFO] [stdout] 1654 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1666:9
[INFO] [stdout]      |
[INFO] [stdout] 1666 | /         wrap_err!(
[INFO] [stdout] 1667 | |             cert.as_tsk().armored().serialize(&mut keydata),
[INFO] [stdout] 1668 | |             UnknownError,
[INFO] [stdout] 1669 | |             format!("Serializing key: {}", cert.fingerprint()))?;
[INFO] [stdout]      | |_______________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1671:9
[INFO] [stdout]      |
[INFO] [stdout] 1671 | /         wrap_err!(
[INFO] [stdout] 1672 | |             cert.armored().serialize(&mut keydata),
[INFO] [stdout] 1673 | |             UnknownError,
[INFO] [stdout] 1674 | |             format!("Serializing certificate: {}", cert.fingerprint()))?;
[INFO] [stdout]      | |_______________________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1774:24
[INFO] [stdout]      |
[INFO] [stdout] 1774 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1808:14
[INFO] [stdout]      |
[INFO] [stdout] 1808 |       let vc = wrap_err!(
[INFO] [stdout]      |  ______________-
[INFO] [stdout] 1809 | |         cert.with_policy(crate::P, None),
[INFO] [stdout] 1810 | |         KeyUnsuitable,
[INFO] [stdout] 1811 | |         format!("{} rejected by policy", cert.fingerprint()))?;
[INFO] [stdout]      | |_____________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1819:30
[INFO] [stdout]      |
[INFO] [stdout] 1819 |       let mut signer_keypair = wrap_err!(
[INFO] [stdout]      |  ______________________________-
[INFO] [stdout] 1820 | |         key.into_keypair(),
[INFO] [stdout] 1821 | |         UnknownError,
[INFO] [stdout] 1822 | |         "Creating key pair from certification key")?;
[INFO] [stdout]      | |___________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1834:26
[INFO] [stdout]      |
[INFO] [stdout] 1834 |               let subkey = wrap_err!(
[INFO] [stdout]      |  __________________________-
[INFO] [stdout] 1835 | |                 ka.key().clone().parts_into_secret(),
[INFO] [stdout] 1836 | |                 UnknownError,
[INFO] [stdout] 1837 | |                 "Can't extend signing-capable subkey's expiration: \
[INFO] [stdout] 1838 | |                  secret key material is not available")?;
[INFO] [stdout]      | |_______________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1842:38
[INFO] [stdout]      |
[INFO] [stdout] 1842 |               let mut subkey_keypair = wrap_err!(
[INFO] [stdout]      |  ______________________________________-
[INFO] [stdout] 1843 | |                 subkey.into_keypair(),
[INFO] [stdout] 1844 | |                 UnknownError,
[INFO] [stdout] 1845 | |                 "Creating key pair from subkey")?;
[INFO] [stdout]      | |________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1847:13
[INFO] [stdout]      |
[INFO] [stdout] 1847 | /             wrap_err!(
[INFO] [stdout] 1848 | |                 ka.set_expiration_time(
[INFO] [stdout] 1849 | |                     &mut signer_keypair,
[INFO] [stdout] 1850 | |                     Some(&mut subkey_keypair),
[INFO] [stdout] 1851 | |                     Some(expiration)),
[INFO] [stdout] 1852 | |                 UnknownError,
[INFO] [stdout] 1853 | |                 "setting expiration (generating self signature and backsig)")?
[INFO] [stdout]      | |_____________________________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1855:13
[INFO] [stdout]      |
[INFO] [stdout] 1855 | /             wrap_err!(
[INFO] [stdout] 1856 | |                 ka.set_expiration_time(
[INFO] [stdout] 1857 | |                     &mut signer_keypair,
[INFO] [stdout] 1858 | |                     None,
[INFO] [stdout] 1859 | |                     Some(expiration)),
[INFO] [stdout] 1860 | |                 UnknownError,
[INFO] [stdout] 1861 | |                 "setting expiration (generating self signature)")?
[INFO] [stdout]      | |_________________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1867:16
[INFO] [stdout]      |
[INFO] [stdout] 1867 |       let cert = wrap_err!(
[INFO] [stdout]      |  ________________-
[INFO] [stdout] 1868 | |         cert.insert_packets(self_sigs),
[INFO] [stdout] 1869 | |         UnknownError,
[INFO] [stdout] 1870 | |         "inserting new self signatures")?;
[INFO] [stdout]      | |________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1885:24
[INFO] [stdout]      |
[INFO] [stdout] 1885 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1898:14
[INFO] [stdout]      |
[INFO] [stdout] 1898 |       let vc = wrap_err!(
[INFO] [stdout]      |  ______________-
[INFO] [stdout] 1899 | |         cert.with_policy(crate::P, None),
[INFO] [stdout] 1900 | |         KeyUnsuitable,
[INFO] [stdout] 1901 | |         format!("{} rejected by policy", cert.fingerprint()))?;
[INFO] [stdout]      | |_____________________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1909:30
[INFO] [stdout]      |
[INFO] [stdout] 1909 |       let mut signer_keypair = wrap_err!(
[INFO] [stdout]      |  ______________________________-
[INFO] [stdout] 1910 | |         key.into_keypair(),
[INFO] [stdout] 1911 | |         UnknownError,
[INFO] [stdout] 1912 | |         "Creating key pair from certification key")?;
[INFO] [stdout]      | |___________________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1914:15
[INFO] [stdout]      |
[INFO] [stdout] 1914 |       let sig = wrap_err!(
[INFO] [stdout]      |  _______________-
[INFO] [stdout] 1915 | |         cert.revoke(&mut signer_keypair,
[INFO] [stdout] 1916 | |                     ReasonForRevocation::Unspecified,
[INFO] [stdout] 1917 | |                     reason),
[INFO] [stdout] 1918 | |         UnknownError,
[INFO] [stdout] 1919 | |         "generating revocation certificate")?;
[INFO] [stdout]      | |____________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1921:16
[INFO] [stdout]      |
[INFO] [stdout] 1921 |       let cert = wrap_err!(
[INFO] [stdout]      |  ________________-
[INFO] [stdout] 1922 | |         cert.insert_packets(sig),
[INFO] [stdout] 1923 | |         UnknownError,
[INFO] [stdout] 1924 | |         "merging revocation certificate")?;
[INFO] [stdout]      | |_________________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2014:24
[INFO] [stdout]      |
[INFO] [stdout] 2014 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2026:14
[INFO] [stdout]      |
[INFO] [stdout] 2026 |       let vc = wrap_err!(
[INFO] [stdout]      |  ______________-
[INFO] [stdout] 2027 | |         cert.with_policy(crate::P, when),
[INFO] [stdout] 2028 | |         UnknownError,
[INFO] [stdout] 2029 | |         "Invalid certificate")?;
[INFO] [stdout]      | |______________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2096:24
[INFO] [stdout]      |
[INFO] [stdout] 2096 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2101:14
[INFO] [stdout]      |
[INFO] [stdout] 2101 |       let vc = wrap_err!(
[INFO] [stdout]      |  ______________-
[INFO] [stdout] 2102 | |         cert.with_policy(crate::P, None),
[INFO] [stdout] 2103 | |         UnknownError,
[INFO] [stdout] 2104 | |         "Invalid certificate")?;
[INFO] [stdout]      | |______________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2127:24
[INFO] [stdout]      |
[INFO] [stdout] 2127 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2135:14
[INFO] [stdout]      |
[INFO] [stdout] 2135 |       let vc = wrap_err!(
[INFO] [stdout]      |  ______________-
[INFO] [stdout] 2136 | |         cert.with_policy(crate::P, None),
[INFO] [stdout] 2137 | |         UnknownError,
[INFO] [stdout] 2138 | |         "Invalid certificate")?;
[INFO] [stdout]      | |______________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2234:24
[INFO] [stdout]      |
[INFO] [stdout] 2234 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 |   macro_rules! wrap_err {
[INFO] [stdout] ...
[INFO] [stdout]   35 |                   anyhow::Error::from(err).into(),
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2239:13
[INFO] [stdout]      |
[INFO] [stdout] 2239 |       let t = wrap_err!(
[INFO] [stdout]      |  _____________-
[INFO] [stdout] 2240 | |         cert.primary_key().creation_time().duration_since(UNIX_EPOCH),
[INFO] [stdout] 2241 | |         UnknownError,
[INFO] [stdout] 2242 | |         "Creation time out of range")?.as_secs();
[INFO] [stdout]      | |_____________________________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]     --> src/pep.rs:35:17
[INFO] [stdout]      |
[INFO] [stdout]   29 | / macro_rules! wrap_err {
[INFO] [stdout]   30 | |     ($e:expr, $err:ident, $msg:expr) => {
[INFO] [stdout]   31 | |         $e.map_err(|err| {
[INFO] [stdout]   32 | |             eprintln!("Error: {}: {}\n{:?}",
[INFO] [stdout] ...    |
[INFO] [stdout]   35 | |                 anyhow::Error::from(err).into(),
[INFO] [stdout]      | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...    |
[INFO] [stdout]   39 | | }
[INFO] [stdout]      | |_- this error originates in the macro `wrap_err` which comes from the expansion of the macro `check_fpr`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:2265:24
[INFO] [stdout]      |
[INFO] [stdout] 2265 |       let fpr = unsafe { check_fpr!(fpr) };
[INFO] [stdout]      |                          --------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<anyhow::Error as Into<anyhow::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/pep/session.rs:219:18
[INFO] [stdout]     |
[INFO] [stdout] 219 |         unsafe { Box::from_raw(session) };
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 219 |         unsafe { let _ = Box::from_raw(session); };
[INFO] [stdout]     |                  +++++++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/pep/stringlist.rs:151:42
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub fn iter_mut<'a>(&'a mut self) -> StringListIterMut {
[INFO] [stdout]     |                          --              ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is named here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub fn iter_mut<'a>(&'a mut self) -> StringListIterMut<'a> {
[INFO] [stdout]     |                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]     --> src/lib.rs:2483:18
[INFO] [stdout]      |
[INFO] [stdout] 2483 |         unsafe { Box::from_raw(session) };
[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] 2483 |         unsafe { let _ = Box::from_raw(session); };
[INFO] [stdout]      |                  +++++++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pep_engine_sequoia_backend` (lib test) due to 88 previous errors; 12 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "d4c40aeb0e6f4152dc3e22dd0b356d3948293a322945c17379aeb8b1ef12ee5e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d4c40aeb0e6f4152dc3e22dd0b356d3948293a322945c17379aeb8b1ef12ee5e", kill_on_drop: false }`
[INFO] [stdout] d4c40aeb0e6f4152dc3e22dd0b356d3948293a322945c17379aeb8b1ef12ee5e
