[INFO] fetching crate sequoia-wot 0.16.0-pqc.1... [INFO] linting sequoia-wot-0.16.0-pqc.1 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate sequoia-wot 0.16.0-pqc.1 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate sequoia-wot 0.16.0-pqc.1 [INFO] finished tweaking crates.io crate sequoia-wot 0.16.0-pqc.1 [INFO] tweaked toml for crates.io crate sequoia-wot 0.16.0-pqc.1 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate sequoia-wot 0.16.0-pqc.1 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate sequoia-wot 0.16.0-pqc.1 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded ena v0.14.3 [INFO] [stderr] Downloaded fd-lock v4.0.4 [INFO] [stderr] Downloaded openpgp-cert-d v0.3.4 [INFO] [stderr] Downloaded win-crypto-ng v0.5.1 [INFO] [stderr] Downloaded buffered-reader v1.4.0 [INFO] [stderr] Downloaded nettle-sys v2.3.1 [INFO] [stderr] Downloaded rusqlite v0.37.0 [INFO] [stderr] Downloaded sequoia-cert-store v0.8.0-pqc.1 [INFO] [stderr] Downloaded nettle v7.4.0 [INFO] [stderr] Downloaded sha1collisiondetection v0.3.4 [INFO] [stderr] Downloaded libsqlite3-sys v0.35.0 [INFO] [stderr] Downloaded sequoia-openpgp v2.2.0-pqc.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e2b3c5181053c7f44392bd25e70f06ddba0415922e85bb270a31a8cedc04e924 [INFO] running `Command { std: "docker" "start" "-a" "e2b3c5181053c7f44392bd25e70f06ddba0415922e85bb270a31a8cedc04e924", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e2b3c5181053c7f44392bd25e70f06ddba0415922e85bb270a31a8cedc04e924", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e2b3c5181053c7f44392bd25e70f06ddba0415922e85bb270a31a8cedc04e924", kill_on_drop: false }` [INFO] [stdout] e2b3c5181053c7f44392bd25e70f06ddba0415922e85bb270a31a8cedc04e924 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b77ed2f79850096df9f8a62bccb02bf4d8f84e380f0e1107f7b3c53264c3b2ca [INFO] running `Command { std: "docker" "start" "-a" "b77ed2f79850096df9f8a62bccb02bf4d8f84e380f0e1107f7b3c53264c3b2ca", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling syn v2.0.110 [INFO] [stderr] Compiling generic-array v0.14.9 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling bindgen v0.70.1 [INFO] [stderr] Compiling dirs-sys-next v0.1.2 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Compiling icu_properties_data v2.1.1 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling clang-sys v1.8.1 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling hashbrown v0.16.0 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling dirs-next v2.0.0 [INFO] [stderr] Compiling find-msvc-tools v0.1.4 [INFO] [stderr] Compiling term v0.7.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling precomputed-hash v0.1.1 [INFO] [stderr] Compiling new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling cc v1.2.45 [INFO] [stderr] Compiling bit-vec v0.6.3 [INFO] [stderr] Compiling ena v0.14.3 [INFO] [stderr] Compiling itertools v0.11.0 [INFO] [stderr] Compiling ascii-canvas v3.0.0 [INFO] [stderr] Compiling indexmap v2.12.0 [INFO] [stderr] Compiling bit-set v0.5.3 [INFO] [stderr] Compiling string_cache v0.8.9 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Compiling lalrpop-util v0.20.2 [INFO] [stderr] Compiling sha1collisiondetection v0.3.4 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Compiling libsqlite3-sys v0.35.0 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking base64ct v1.8.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking dirs-sys v0.5.0 [INFO] [stderr] Checking percent-encoding v2.3.2 [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Checking password-hash v0.5.0 [INFO] [stderr] Checking dirs v6.0.0 [INFO] [stderr] Checking buffered-reader v1.4.0 [INFO] [stderr] Checking blake2 v0.10.6 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking form_urlencoded v1.2.2 [INFO] [stderr] Checking rusqlite v0.37.0 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Compiling petgraph v0.6.5 [INFO] [stderr] Compiling sequoia-wot v0.16.0-pqc.1 (/opt/rustwide/workdir) [INFO] [stderr] Checking chrono v0.4.42 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking regex-automata v0.4.13 [INFO] [stderr] Checking argon2 v0.5.3 [INFO] [stderr] Checking crossbeam v0.8.4 [INFO] [stderr] Checking quickcheck v1.0.3 [INFO] [stderr] Compiling tempfile v3.23.0 [INFO] [stderr] Checking fd-lock v4.0.4 [INFO] [stderr] Checking gethostname v1.1.0 [INFO] [stderr] Compiling lalrpop v0.20.2 [INFO] [stderr] Checking regex v1.12.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking thiserror v2.0.17 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking openpgp-cert-d v0.3.4 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking icu_properties v2.1.1 [INFO] [stderr] Compiling nettle-sys v2.3.1 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking url v2.5.7 [INFO] [stderr] Compiling sequoia-openpgp v2.2.0-pqc.1 [INFO] [stderr] Checking nettle v7.4.0 [INFO] [stderr] Checking sequoia-cert-store v0.8.0-pqc.1 [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/certification.rs:415:13 [INFO] [stdout] | [INFO] [stdout] 415 | issuer: issuer, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `issuer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/certification.rs:417:13 [INFO] [stdout] | [INFO] [stdout] 417 | target: target, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/certification.rs:418:13 [INFO] [stdout] | [INFO] [stdout] 418 | creation_time: creation_time, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `creation_time` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/certification.rs:947:13 [INFO] [stdout] | [INFO] [stdout] 947 | reference_time: reference_time, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference_time` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/network/path.rs:328:13 [INFO] [stdout] | [INFO] [stdout] 328 | userid: userid, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `userid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/network/path.rs:347:13 [INFO] [stdout] | [INFO] [stdout] 347 | userid: userid, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `userid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/certification.rs:415:13 [INFO] [stdout] | [INFO] [stdout] 415 | issuer: issuer, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `issuer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/certification.rs:417:13 [INFO] [stdout] | [INFO] [stdout] 417 | target: target, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/certification.rs:418:13 [INFO] [stdout] | [INFO] [stdout] 418 | creation_time: creation_time, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `creation_time` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/certification.rs:947:13 [INFO] [stdout] | [INFO] [stdout] 947 | reference_time: reference_time, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference_time` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/network/path.rs:328:13 [INFO] [stdout] | [INFO] [stdout] 328 | userid: userid, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `userid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/network/path.rs:347:13 [INFO] [stdout] | [INFO] [stdout] 347 | userid: userid, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `userid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: initializer for `thread_local` value can be made `const` [INFO] [stdout] --> src/log.rs:16:47 [INFO] [stdout] | [INFO] [stdout] 16 | pub static INDENT_LEVEL: RefCell = RefCell::new(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace with: `const { RefCell::new(0) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_thread_local [INFO] [stdout] = note: `#[warn(clippy::missing_const_for_thread_local)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/store/cert_store.rs:188:36 [INFO] [stdout] | [INFO] [stdout] 188 | MaybeOwnedPolicy::Borrowed(&*p) [INFO] [stdout] | ^^^ help: if you would like to reborrow, try removing `&*`: `p` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SystemTime` which implements the `Copy` trait [INFO] [stdout] --> src/store/cert_store.rs:253:9 [INFO] [stdout] | [INFO] [stdout] 253 | self.reference_time.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.reference_time` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/store/cert_store.rs:337:35 [INFO] [stdout] | [INFO] [stdout] 337 | let c: &'a Cert = c.into(); [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SystemTime` which implements the `Copy` trait [INFO] [stdout] --> src/store/cert_store.rs:570:38 [INFO] [stdout] | [INFO] [stdout] 570 | let reference_time = self.reference_time.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.reference_time` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/store/cert_store.rs:633:49 [INFO] [stdout] | [INFO] [stdout] 633 | self.redge_cache.lock().unwrap().extend(redges.into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/collect.rs:416:17 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 633 - self.redge_cache.lock().unwrap().extend(redges.into_iter()); [INFO] [stdout] 633 + self.redge_cache.lock().unwrap().extend(redges); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `impl std::iter::Iterator + '_` [INFO] [stdout] --> src/store/cert_store.rs:756:17 [INFO] [stdout] | [INFO] [stdout] 756 | c.userids().into_iter() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `c.userids()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/store/synopses.rs:89:35 [INFO] [stdout] | [INFO] [stdout] 89 | for cert in cert_synopses.into_iter() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/store/synopses.rs:93:33 [INFO] [stdout] | [INFO] [stdout] 93 | for c in certifications.into_iter() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&certification::Certification` [INFO] [stdout] --> src/store/synopses.rs:94:37 [INFO] [stdout] | [INFO] [stdout] 94 | let c: &Certification = c.into(); [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/store/synopses.rs:187:18 [INFO] [stdout] | [INFO] [stdout] 187 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/store/synopses.rs:198:18 [INFO] [stdout] | [INFO] [stdout] 198 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/store/synopses.rs:210:17 [INFO] [stdout] | [INFO] [stdout] 210 | .map(|cs| Arc::clone(cs)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `Arc::clone` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/store.rs:230:28 [INFO] [stdout] | [INFO] [stdout] 230 | if ! filter.get(&alleged_issuer_keyid).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter.get(&alleged_issuer_keyid).is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/store.rs:340:20 [INFO] [stdout] | [INFO] [stdout] 340 | if let Err(_) = std::str::from_utf8(ua.userid().value()) { [INFO] [stdout] | -------^^^^^^------------------------------------------- help: try: `if std::str::from_utf8(ua.userid().value()).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/store.rs:413:14 [INFO] [stdout] | [INFO] [stdout] 413 | impl<'a: 't, 't, T> Backend<'a> for Box [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/store.rs:537:33 [INFO] [stdout] | [INFO] [stdout] 537 | .filter_map(|c| c.userid().map(Clone::clone)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `c.userid().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/store.rs:630:6 [INFO] [stdout] | [INFO] [stdout] 630 | impl<'t, T> Store for Box [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 't [INFO] [stdout] --> src/store.rs:691:6 [INFO] [stdout] | [INFO] [stdout] 691 | impl<'t, T> Store for &'t T [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 691 - impl<'t, T> Store for &'t T [INFO] [stdout] 691 + impl Store for &T [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/userid.rs:40:6 [INFO] [stdout] | [INFO] [stdout] 40 | impl<'a> From<(&[u8], SystemTime)> for UserIDSynopsis { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/userid.rs:46:6 [INFO] [stdout] | [INFO] [stdout] 46 | impl<'a> From<&[u8]> for UserIDSynopsis { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/userid.rs:52:6 [INFO] [stdout] | [INFO] [stdout] 52 | impl<'a> From<(&str, SystemTime)> for UserIDSynopsis { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/userid.rs:58:6 [INFO] [stdout] | [INFO] [stdout] 58 | impl<'a> From<&str> for UserIDSynopsis { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/userid.rs:64:6 [INFO] [stdout] | [INFO] [stdout] 64 | impl<'a> From<(UserID, SystemTime)> for UserIDSynopsis { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/userid.rs:74:6 [INFO] [stdout] | [INFO] [stdout] 74 | impl<'a> From for UserIDSynopsis { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/userid.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 104 | &self.userid.value() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.userid.value()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/cert.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | self.expiration_time.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.expiration_time` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/certification.rs:221:57 [INFO] [stdout] | [INFO] [stdout] 221 | (Depth::Limit(x), Depth::Limit(y)) => x.cmp(&y), [INFO] [stdout] | ^^ help: change this to: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/certification.rs:777:22 [INFO] [stdout] | [INFO] [stdout] 777 | match verify(&possible_issuer) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `possible_issuer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/certification.rs:1017:27 [INFO] [stdout] | [INFO] [stdout] 1017 | acc.push((certification.userid().map(Clone::clone), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `certification.userid().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/certification.rs:1050:31 [INFO] [stdout] | [INFO] [stdout] 1050 | acc.push((certification.userid().map(Clone::clone), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `certification.userid().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/certification.rs:1070:27 [INFO] [stdout] | [INFO] [stdout] 1070 | acc.push((certification.userid().map(Clone::clone), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `certification.userid().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/certification.rs:1067:17 [INFO] [stdout] | [INFO] [stdout] 1067 | / acc = Vec::new(); [INFO] [stdout] 1068 | | [INFO] [stdout] 1069 | | // Start a new group. [INFO] [stdout] 1070 | | acc.push((certification.userid().map(Clone::clone), [INFO] [stdout] 1071 | | vec![ certification ])); [INFO] [stdout] | |__________________________________________________^ help: consider using the `vec![]` macro: `acc = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/certification.rs:1168:9 [INFO] [stdout] | [INFO] [stdout] 1168 | / self.certifications.into_iter() [INFO] [stdout] 1169 | | .flat_map(|(_userid, c)| c.into_iter()) [INFO] [stdout] | |___________________________________________________^ help: try: `self.certifications.into_values().flat_map(|c| c.into_iter())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/revocation.rs:62:1 [INFO] [stdout] | [INFO] [stdout] 62 | / impl Default for RevocationStatus { [INFO] [stdout] 63 | | fn default() -> Self { [INFO] [stdout] 64 | | RevocationStatus::NotAsFarAsWeKnow [INFO] [stdout] 65 | | } [INFO] [stdout] 66 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 42 + #[derive(Default)] [INFO] [stdout] 43 | pub enum RevocationStatus { [INFO] [stdout] 44 ~ #[default] [INFO] [stdout] 45 ~ NotAsFarAsWeKnow, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/revocation.rs:108:22 [INFO] [stdout] | [INFO] [stdout] 108 | sigs.into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/network/filter.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 91 - return true; [INFO] [stdout] 91 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Depth` which implements the `Copy` trait [INFO] [stdout] --> src/network/filter.rs:82:29 [INFO] [stdout] | [INFO] [stdout] 82 | let old_depth = depth.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*depth` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/network/filter.rs:135:9 [INFO] [stdout] | [INFO] [stdout] 135 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 135 - return true; [INFO] [stdout] 135 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/network/filter.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 198 - return true; [INFO] [stdout] 198 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/network/filter.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 261 - return true; [INFO] [stdout] 261 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/network/filter.rs:313:9 [INFO] [stdout] | [INFO] [stdout] 313 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 313 - return true; [INFO] [stdout] 313 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/network/roots.rs:75:51 [INFO] [stdout] | [INFO] [stdout] 75 | self.roots.binary_search_by_key(&fpr, |r| &r.fingerprint()).is_ok() [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `r.fingerprint()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> src/network/path.rs:300:1 [INFO] [stdout] | [INFO] [stdout] 300 | / enum CertificationVariants { [INFO] [stdout] 301 | | KeyHandles(KeyHandle, KeyHandle), [INFO] [stdout] 302 | | Certs(KeyHandle, Option, KeyHandle, Option), [INFO] [stdout] | | ----------------------------------------------------------------------- the second-largest variant contains at least 272 bytes [INFO] [stdout] 303 | | Certification(Certification), [INFO] [stdout] | | ---------------------------- the largest variant contains at least 536 bytes [INFO] [stdout] 304 | | } [INFO] [stdout] | |_^ the entire enum is at least 536 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 303 - Certification(Certification), [INFO] [stdout] 303 + Certification(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `certification::Certification` [INFO] [stdout] --> src/network/path.rs:356:29 [INFO] [stdout] | [INFO] [stdout] 356 | let certification = certification.into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `certification` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PathLints` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/network/path.rs:512:5 [INFO] [stdout] | [INFO] [stdout] 512 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/network/path.rs:545:9 [INFO] [stdout] | [INFO] [stdout] 545 | / self.certifications.iter() [INFO] [stdout] 546 | | // The required depth for this path to be valid. [INFO] [stdout] 547 | | .zip((0..self.certifications.len()).rev()) [INFO] [stdout] 548 | | .map(|(c, required_depth)| { [INFO] [stdout] ... | [INFO] [stdout] 608 | | }).min().unwrap_or(120) as usize [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 545 ~ self.certifications.iter() [INFO] [stdout] 546 + // The required depth for this path to be valid. [INFO] [stdout] 547 + .zip((0..self.certifications.len()).rev()) [INFO] [stdout] 548 + .map(|(c, required_depth)| { [INFO] [stdout] 549 + if ! c.errors.is_empty() { [INFO] [stdout] 550 + return 0; [INFO] [stdout] 551 + } [INFO] [stdout] 552 + [INFO] [stdout] 553 + if let Some(c) = c.certification() { [INFO] [stdout] 554 + if self.certification_network { [INFO] [stdout] 555 + c.amount() [INFO] [stdout] 556 + } else if c.depth() < required_depth.into() { [INFO] [stdout] 557 + 0 [INFO] [stdout] 558 + } else if required_depth > 0 [INFO] [stdout] 559 + && (! c.regular_expressions() [INFO] [stdout] 560 + .map(|re_set| { [INFO] [stdout] 561 + let matches = re_set.matches_userid(&userid); [INFO] [stdout] 562 + t!("Certification's regular expression \ [INFO] [stdout] 563 + {} target user ID {}", [INFO] [stdout] 564 + if matches { [INFO] [stdout] 565 + "matches" [INFO] [stdout] 566 + } else { [INFO] [stdout] 567 + "does not match" [INFO] [stdout] 568 + }, [INFO] [stdout] 569 + String::from_utf8_lossy(userid.value())); [INFO] [stdout] 570 + matches [INFO] [stdout] 571 + }) [INFO] [stdout] 572 + // Invalid => assume everything matches. [INFO] [stdout] 573 + .unwrap_or(true)) [INFO] [stdout] 574 + { [INFO] [stdout] 575 + // We check that the current certificate's [INFO] [stdout] 576 + // regular expressions match the target user [INFO] [stdout] 577 + // ID UNLESS (`required_depth == 0`) this is [INFO] [stdout] 578 + // the certification that introduces the [INFO] [stdout] 579 + // target user ID. [INFO] [stdout] 580 + // [INFO] [stdout] 581 + // Consider: Alice delegates to 'Bob [INFO] [stdout] 582 + // ', but only for "some.org". [INFO] [stdout] 583 + // Bob's email address (`bob@other.org`) is [INFO] [stdout] 584 + // not in some.org, but that doesn't matter [INFO] [stdout] 585 + // when considering Alice's introduction of [INFO] [stdout] 586 + // Bob; the regular expressions only scopes [INFO] [stdout] 587 + // what user IDs Bob can introduce! [INFO] [stdout] 588 + // [INFO] [stdout] 589 + // ``` [INFO] [stdout] 590 + // Alice [INFO] [stdout] 591 + // | [INFO] [stdout] 592 + // | Authorization (depth: 1, amount: 120), [INFO] [stdout] 593 + // | Regular expression: some.org [INFO] [stdout] 594 + // v [INFO] [stdout] 595 + // Bob [INFO] [stdout] 596 + // / \ [INFO] [stdout] 597 + // / Certification \ Certification [INFO] [stdout] 598 + // v v [INFO] [stdout] 599 + // Carol Dave [INFO] [stdout] 600 + // ``` [INFO] [stdout] 601 + 0 [INFO] [stdout] 602 + } else { [INFO] [stdout] 603 + c.amount() [INFO] [stdout] 604 + } [INFO] [stdout] 605 + } else { [INFO] [stdout] 606 + 0 [INFO] [stdout] 607 + } [INFO] [stdout] 608 + }).min().unwrap_or(120) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/network/path.rs:561:69 [INFO] [stdout] | [INFO] [stdout] 561 | ... let matches = re_set.matches_userid(&userid); [INFO] [stdout] | ^^^^^^^ help: change this to: `userid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `self.certifications.get(0)` [INFO] [stdout] --> src/network/path.rs:621:20 [INFO] [stdout] | [INFO] [stdout] 621 | let root = self.certifications.get(0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.certifications.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/network/path.rs:640:21 [INFO] [stdout] | [INFO] [stdout] 640 | .zip(self.certs.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 640 - .zip(self.certs.into_iter()) [INFO] [stdout] 640 + .zip(self.certs) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/network/path.rs:728:12 [INFO] [stdout] | [INFO] [stdout] 728 | if khs.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `khs.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `anyhow::Error` [INFO] [stdout] --> src/network/path.rs:946:46 [INFO] [stdout] | [INFO] [stdout] 946 | ... .errors.push(err.into()); [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `anyhow::Error` [INFO] [stdout] --> src/network/path.rs:948:40 [INFO] [stdout] | [INFO] [stdout] 948 | ... return Err(err.into()); [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.iter().next()` on an array [INFO] [stdout] --> src/network/path.rs:956:39 [INFO] [stdout] | [INFO] [stdout] 956 | ... let rev = revs.iter().next().expect("have one"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try calling: `revs.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_next_slice [INFO] [stdout] = note: `#[warn(clippy::iter_next_slice)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.iter().next()` on an array [INFO] [stdout] --> src/network/path.rs:1007:43 [INFO] [stdout] | [INFO] [stdout] 1007 | ... let rev = revs.iter().next().expect("have one"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try calling: `revs.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_next_slice [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/network/path.rs:1108:29 [INFO] [stdout] | [INFO] [stdout] 1108 | ... &issuer, ua, &target, c) [INFO] [stdout] | ^^^^^^^ help: change this to: `issuer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/network/path.rs:1108:42 [INFO] [stdout] | [INFO] [stdout] 1108 | ... &issuer, ua, &target, c) [INFO] [stdout] | ^^^^^^^ help: change this to: `target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/network/path.rs:1135:35 [INFO] [stdout] | [INFO] [stdout] 1135 | if let Some(ua) = target.cert().userids() [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 1136 | | .filter(|ua| ua.userid() == userid) [INFO] [stdout] 1137 | | .next() [INFO] [stdout] | |___________________________^ help: try: `target.cert().userids().find(|ua| ua.userid() == userid)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] = note: `#[warn(clippy::filter_next)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/network/path.rs:1218:65 [INFO] [stdout] | [INFO] [stdout] 1218 | ... .map(|re_set| re_set.matches_userid(&userid)) [INFO] [stdout] | ^^^^^^^ help: change this to: `userid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/network/path.rs:1269:29 [INFO] [stdout] | [INFO] [stdout] 1269 | if adequate(&certification, None) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `certification` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/network/path.rs:1308:51 [INFO] [stdout] | [INFO] [stdout] 1308 | if active_certifications.contains(&certification) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `certification` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | write!(f, "Network {{\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 70 - write!(f, "Network {{\n")?; [INFO] [stdout] 70 + writeln!(f, "Network {{")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | write!(f, " Reference time: {:?}\n", self.reference_time())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 71 - write!(f, " Reference time: {:?}\n", self.reference_time())?; [INFO] [stdout] 71 + writeln!(f, " Reference time: {:?}", self.reference_time())?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | write!(f, " Nodes:\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 72 - write!(f, " Nodes:\n")?; [INFO] [stdout] 72 + writeln!(f, " Nodes:")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | write!(f, " {}: {}\n", fpr, userid)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 89 - write!(f, " {}: {}\n", fpr, userid)?; [INFO] [stdout] 89 + writeln!(f, " {}: {}", fpr, userid)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | write!(f, " Edges:\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 92 - write!(f, " Edges:\n")?; [INFO] [stdout] 92 + writeln!(f, " Edges:")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:120:17 [INFO] [stdout] | [INFO] [stdout] 120 | write!(f, " {} certifies:\n", issuer)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 120 - write!(f, " {} certifies:\n", issuer)?; [INFO] [stdout] 120 + writeln!(f, " {} certifies:", issuer)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:126:17 [INFO] [stdout] | [INFO] [stdout] 126 | / write!(f, " {}, {}: {}, {}, {}\n", [INFO] [stdout] 127 | | target_fpr, [INFO] [stdout] 128 | | c.userid().map(|userid| { [INFO] [stdout] 129 | | String::from_utf8_lossy(userid.value()).into_owned() [INFO] [stdout] ... | [INFO] [stdout] 139 | | "".into() [INFO] [stdout] 140 | | })?; [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 126 - write!(f, " {}, {}: {}, {}, {}\n", [INFO] [stdout] 126 + writeln!(f, " {}, {}: {}, {}, {}", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | write!(f, "}}\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 144 - write!(f, "}}\n")?; [INFO] [stdout] 144 + writeln!(f, "}}")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/network.rs:211:41 [INFO] [stdout] | [INFO] [stdout] 211 | let t = t.into().unwrap_or_else(|| SystemTime::now()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `SystemTime::now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/network.rs:234:41 [INFO] [stdout] | [INFO] [stdout] 234 | let t = t.into().unwrap_or_else(|| SystemTime::now()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `SystemTime::now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/network.rs:254:41 [INFO] [stdout] | [INFO] [stdout] 254 | let t = t.into().unwrap_or_else(|| SystemTime::now()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `SystemTime::now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/network.rs:271:41 [INFO] [stdout] | [INFO] [stdout] 271 | let t = t.into().unwrap_or_else(|| SystemTime::now()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `SystemTime::now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/network.rs:435:29 [INFO] [stdout] | [INFO] [stdout] 435 | ... &path.root().fingerprint(), *path_amount); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `path.root().fingerprint()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> src/backward_propagation.rs:407:17 [INFO] [stdout] | [INFO] [stdout] 407 | signee_fp_cost.depth.into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `signee_fp_cost.depth` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:452:30 [INFO] [stdout] | [INFO] [stdout] 452 | if ! cf.cost(&certification, &mut certification_depth, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `certification` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/backward_propagation.rs:549:25 [INFO] [stdout] | [INFO] [stdout] 549 | certification_amount as usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `certification_amount` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/backward_propagation.rs:563:39 [INFO] [stdout] | [INFO] [stdout] 563 | let current_fp_cost = if let Some(current_fp) [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 564 | | = distance.get(&issuer_fpr.clone()) [INFO] [stdout] 565 | | { [INFO] [stdout] 566 | | Some(fp_cost!(¤t_fp)) [INFO] [stdout] 567 | | } else { [INFO] [stdout] 568 | | None [INFO] [stdout] 569 | | }; [INFO] [stdout] | |_________________^ help: try: `distance.get(&issuer_fpr.clone()).map(|current_fp| fp_cost!(¤t_fp))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/backward_propagation.rs:663:13 [INFO] [stdout] | [INFO] [stdout] 663 | / if ! (gossip || self.roots().is_empty()) { [INFO] [stdout] 664 | | if ! self.roots().is_root(issuer_fpr) { [INFO] [stdout] 665 | | continue; [INFO] [stdout] 666 | | } [INFO] [stdout] 667 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 663 ~ if ! (gossip || self.roots().is_empty()) [INFO] [stdout] 664 ~ && ! self.roots().is_root(issuer_fpr) { [INFO] [stdout] 665 | continue; [INFO] [stdout] 666 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backward_propagation.rs:756:21 [INFO] [stdout] | [INFO] [stdout] 756 | assert!(nodes.len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!nodes.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/backward_propagation.rs:766:56 [INFO] [stdout] | [INFO] [stdout] 766 | auth_rpaths.insert(issuer_fpr.clone(), (p, amount as usize)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `amount` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/backward_propagation.rs:774:45 [INFO] [stdout] | [INFO] [stdout] 774 | .lookup_synopsis_by_fpr(*fpr_a).expect("already looked up") [INFO] [stdout] | ^^^^^^ help: try: `fpr_a` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/backward_propagation.rs:779:45 [INFO] [stdout] | [INFO] [stdout] 779 | .lookup_synopsis_by_fpr(*fpr_b).expect("already looked up") [INFO] [stdout] | ^^^^^^ help: try: `fpr_b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:785:36 [INFO] [stdout] | [INFO] [stdout] 785 | then(fpr_a.cmp(&fpr_b)) [INFO] [stdout] | ^^^^^^ help: change this to: `fpr_b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/backward_propagation.rs:493:36 [INFO] [stdout] | [INFO] [stdout] 493 | if let Some(ref userid) = certification.userid() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 493 - if let Some(ref userid) = certification.userid() { [INFO] [stdout] 493 + if let Some(userid) = certification.userid() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/path.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 145 | if self.edges.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.edges.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/path.rs:148:13 [INFO] [stdout] | [INFO] [stdout] 148 | &self.edges[self.edges.len() - 1].target() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.edges[self.edges.len() - 1].target()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this bound is already specified as the supertrait of `DoubleEndedIterator` [INFO] [stdout] --> src/path.rs:156:17 [INFO] [stdout] | [INFO] [stdout] 156 | -> impl Iterator + DoubleEndedIterator [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implied_bounds_in_impls [INFO] [stdout] = note: `#[warn(clippy::implied_bounds_in_impls)]` on by default [INFO] [stdout] help: try removing this bound [INFO] [stdout] | [INFO] [stdout] 156 - -> impl Iterator + DoubleEndedIterator [INFO] [stdout] 156 + -> impl DoubleEndedIterator [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Path` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/path.rs:165:5 [INFO] [stdout] | [INFO] [stdout] 165 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/path.rs:196:9 [INFO] [stdout] | [INFO] [stdout] 196 | / self.edges.iter() [INFO] [stdout] 197 | | // The required depth for this path to be valid. [INFO] [stdout] 198 | | .zip((0..self.edges.len()).rev()) [INFO] [stdout] 199 | | .map(|(e, required_depth)| { [INFO] [stdout] ... | [INFO] [stdout] 207 | | }).min().unwrap_or(120) as usize [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 196 ~ self.edges.iter() [INFO] [stdout] 197 + // The required depth for this path to be valid. [INFO] [stdout] 198 + .zip((0..self.edges.len()).rev()) [INFO] [stdout] 199 + .map(|(e, required_depth)| { [INFO] [stdout] 200 + if self.certification_network [INFO] [stdout] 201 + || e.depth() >= required_depth.into() [INFO] [stdout] 202 + { [INFO] [stdout] 203 + e.amount() [INFO] [stdout] 204 + } else { [INFO] [stdout] 205 + 0 [INFO] [stdout] 206 + } [INFO] [stdout] 207 + }).min().unwrap_or(120) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/path.rs:343:13 [INFO] [stdout] | [INFO] [stdout] 343 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 343 - return false; [INFO] [stdout] 343 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Paths` [INFO] [stdout] --> src/path.rs:383:5 [INFO] [stdout] | [INFO] [stdout] 383 | / pub fn new() -> Self { [INFO] [stdout] 384 | | Self { [INFO] [stdout] 385 | | paths: Vec::new(), [INFO] [stdout] 386 | | } [INFO] [stdout] 387 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 381 + impl Default for Paths { [INFO] [stdout] 382 + fn default() -> Self { [INFO] [stdout] 383 + Self::new() [INFO] [stdout] 384 + } [INFO] [stdout] 385 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `into_iter` can be confused for the standard trait method `std::iter::IntoIterator::into_iter` [INFO] [stdout] --> src/path.rs:406:5 [INFO] [stdout] | [INFO] [stdout] 406 | / pub fn into_iter(self) -> impl Iterator { [INFO] [stdout] 407 | | self.paths.into_iter() [INFO] [stdout] 408 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::iter::IntoIterator` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/priority_queue.rs:49:18 [INFO] [stdout] | [INFO] [stdout] 49 | self.cmp(&other) == Ordering::Equal [INFO] [stdout] | ^^^^^^ help: change this to: `other` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/priority_queue.rs:122:24 [INFO] [stdout] | [INFO] [stdout] 122 | || self.pending.len() == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.pending.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.iter().count()` on a `BinaryHeap` [INFO] [stdout] --> src/priority_queue.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 131 | self.bh.iter().count(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.bh.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_count [INFO] [stdout] = note: `#[warn(clippy::iter_count)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/priority_queue.rs:153:26 [INFO] [stdout] | [INFO] [stdout] 153 | let bh = std::mem::replace(&mut self.bh, BinaryHeap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.bh)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: `#[warn(clippy::mem_replace_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/priority_queue.rs:221:36 [INFO] [stdout] | [INFO] [stdout] 221 | if ! self.bh.is_empty() || self.pending.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.pending.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SystemTime` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:630:43 [INFO] [stdout] | [INFO] [stdout] 630 | chrono::DateTime::::from(t.clone()) [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Test` is never constructed [INFO] [stdout] --> src/testdata.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct Test { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: initializer for `thread_local` value can be made `const` [INFO] [stdout] --> src/log.rs:16:47 [INFO] [stdout] | [INFO] [stdout] 16 | pub static INDENT_LEVEL: RefCell = RefCell::new(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace with: `const { RefCell::new(0) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_thread_local [INFO] [stdout] = note: `#[warn(clippy::missing_const_for_thread_local)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/store/cert_store.rs:188:36 [INFO] [stdout] | [INFO] [stdout] 188 | MaybeOwnedPolicy::Borrowed(&*p) [INFO] [stdout] | ^^^ help: if you would like to reborrow, try removing `&*`: `p` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SystemTime` which implements the `Copy` trait [INFO] [stdout] --> src/store/cert_store.rs:253:9 [INFO] [stdout] | [INFO] [stdout] 253 | self.reference_time.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.reference_time` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/store/cert_store.rs:337:35 [INFO] [stdout] | [INFO] [stdout] 337 | let c: &'a Cert = c.into(); [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SystemTime` which implements the `Copy` trait [INFO] [stdout] --> src/store/cert_store.rs:570:38 [INFO] [stdout] | [INFO] [stdout] 570 | let reference_time = self.reference_time.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.reference_time` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/store/cert_store.rs:633:49 [INFO] [stdout] | [INFO] [stdout] 633 | self.redge_cache.lock().unwrap().extend(redges.into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/collect.rs:416:17 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 633 - self.redge_cache.lock().unwrap().extend(redges.into_iter()); [INFO] [stdout] 633 + self.redge_cache.lock().unwrap().extend(redges); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `impl std::iter::Iterator + '_` [INFO] [stdout] --> src/store/cert_store.rs:756:17 [INFO] [stdout] | [INFO] [stdout] 756 | c.userids().into_iter() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `c.userids()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/store/synopses.rs:89:35 [INFO] [stdout] | [INFO] [stdout] 89 | for cert in cert_synopses.into_iter() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/store/synopses.rs:93:33 [INFO] [stdout] | [INFO] [stdout] 93 | for c in certifications.into_iter() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&certification::Certification` [INFO] [stdout] --> src/store/synopses.rs:94:37 [INFO] [stdout] | [INFO] [stdout] 94 | let c: &Certification = c.into(); [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/store/synopses.rs:187:18 [INFO] [stdout] | [INFO] [stdout] 187 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/store/synopses.rs:198:18 [INFO] [stdout] | [INFO] [stdout] 198 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/store/synopses.rs:210:17 [INFO] [stdout] | [INFO] [stdout] 210 | .map(|cs| Arc::clone(cs)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `Arc::clone` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/store.rs:230:28 [INFO] [stdout] | [INFO] [stdout] 230 | if ! filter.get(&alleged_issuer_keyid).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter.get(&alleged_issuer_keyid).is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/store.rs:340:20 [INFO] [stdout] | [INFO] [stdout] 340 | if let Err(_) = std::str::from_utf8(ua.userid().value()) { [INFO] [stdout] | -------^^^^^^------------------------------------------- help: try: `if std::str::from_utf8(ua.userid().value()).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/store.rs:413:14 [INFO] [stdout] | [INFO] [stdout] 413 | impl<'a: 't, 't, T> Backend<'a> for Box [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/store.rs:537:33 [INFO] [stdout] | [INFO] [stdout] 537 | .filter_map(|c| c.userid().map(Clone::clone)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `c.userid().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/store.rs:630:6 [INFO] [stdout] | [INFO] [stdout] 630 | impl<'t, T> Store for Box [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 't [INFO] [stdout] --> src/store.rs:691:6 [INFO] [stdout] | [INFO] [stdout] 691 | impl<'t, T> Store for &'t T [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 691 - impl<'t, T> Store for &'t T [INFO] [stdout] 691 + impl Store for &T [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/store.rs:829:41 [INFO] [stdout] | [INFO] [stdout] 829 | ... &[ alice_fpr.clone() ])?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] = note: `#[warn(clippy::cloned_ref_to_slice_refs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/store.rs:837:41 [INFO] [stdout] | [INFO] [stdout] 837 | ... &[ alice_fpr.clone() ])?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/store.rs:847:41 [INFO] [stdout] | [INFO] [stdout] 847 | ... &[ alice_fpr.clone() ])?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/store.rs:856:41 [INFO] [stdout] | [INFO] [stdout] 856 | ... &[ alice_fpr.clone() ])?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/userid.rs:40:6 [INFO] [stdout] | [INFO] [stdout] 40 | impl<'a> From<(&[u8], SystemTime)> for UserIDSynopsis { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/userid.rs:46:6 [INFO] [stdout] | [INFO] [stdout] 46 | impl<'a> From<&[u8]> for UserIDSynopsis { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/userid.rs:52:6 [INFO] [stdout] | [INFO] [stdout] 52 | impl<'a> From<(&str, SystemTime)> for UserIDSynopsis { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/userid.rs:58:6 [INFO] [stdout] | [INFO] [stdout] 58 | impl<'a> From<&str> for UserIDSynopsis { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/userid.rs:64:6 [INFO] [stdout] | [INFO] [stdout] 64 | impl<'a> From<(UserID, SystemTime)> for UserIDSynopsis { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/userid.rs:74:6 [INFO] [stdout] | [INFO] [stdout] 74 | impl<'a> From for UserIDSynopsis { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/userid.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 104 | &self.userid.value() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.userid.value()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/cert.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | self.expiration_time.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.expiration_time` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/certification.rs:221:57 [INFO] [stdout] | [INFO] [stdout] 221 | (Depth::Limit(x), Depth::Limit(y)) => x.cmp(&y), [INFO] [stdout] | ^^ help: change this to: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/certification.rs:777:22 [INFO] [stdout] | [INFO] [stdout] 777 | match verify(&possible_issuer) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `possible_issuer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/certification.rs:1017:27 [INFO] [stdout] | [INFO] [stdout] 1017 | acc.push((certification.userid().map(Clone::clone), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `certification.userid().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/certification.rs:1050:31 [INFO] [stdout] | [INFO] [stdout] 1050 | acc.push((certification.userid().map(Clone::clone), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `certification.userid().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/certification.rs:1070:27 [INFO] [stdout] | [INFO] [stdout] 1070 | acc.push((certification.userid().map(Clone::clone), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `certification.userid().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/certification.rs:1067:17 [INFO] [stdout] | [INFO] [stdout] 1067 | / acc = Vec::new(); [INFO] [stdout] 1068 | | [INFO] [stdout] 1069 | | // Start a new group. [INFO] [stdout] 1070 | | acc.push((certification.userid().map(Clone::clone), [INFO] [stdout] 1071 | | vec![ certification ])); [INFO] [stdout] | |__________________________________________________^ help: consider using the `vec![]` macro: `acc = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/certification.rs:1168:9 [INFO] [stdout] | [INFO] [stdout] 1168 | / self.certifications.into_iter() [INFO] [stdout] 1169 | | .flat_map(|(_userid, c)| c.into_iter()) [INFO] [stdout] | |___________________________________________________^ help: try: `self.certifications.into_values().flat_map(|c| c.into_iter())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/revocation.rs:62:1 [INFO] [stdout] | [INFO] [stdout] 62 | / impl Default for RevocationStatus { [INFO] [stdout] 63 | | fn default() -> Self { [INFO] [stdout] 64 | | RevocationStatus::NotAsFarAsWeKnow [INFO] [stdout] 65 | | } [INFO] [stdout] 66 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 42 + #[derive(Default)] [INFO] [stdout] 43 | pub enum RevocationStatus { [INFO] [stdout] 44 ~ #[default] [INFO] [stdout] 45 ~ NotAsFarAsWeKnow, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/revocation.rs:108:22 [INFO] [stdout] | [INFO] [stdout] 108 | sigs.into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/network/filter.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 91 - return true; [INFO] [stdout] 91 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Depth` which implements the `Copy` trait [INFO] [stdout] --> src/network/filter.rs:82:29 [INFO] [stdout] | [INFO] [stdout] 82 | let old_depth = depth.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*depth` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/network/filter.rs:135:9 [INFO] [stdout] | [INFO] [stdout] 135 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 135 - return true; [INFO] [stdout] 135 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/network/filter.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 198 - return true; [INFO] [stdout] 198 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/network/filter.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 261 - return true; [INFO] [stdout] 261 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/network/filter.rs:313:9 [INFO] [stdout] | [INFO] [stdout] 313 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 313 - return true; [INFO] [stdout] 313 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/network/roots.rs:75:51 [INFO] [stdout] | [INFO] [stdout] 75 | self.roots.binary_search_by_key(&fpr, |r| &r.fingerprint()).is_ok() [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `r.fingerprint()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> src/network/path.rs:300:1 [INFO] [stdout] | [INFO] [stdout] 300 | / enum CertificationVariants { [INFO] [stdout] 301 | | KeyHandles(KeyHandle, KeyHandle), [INFO] [stdout] 302 | | Certs(KeyHandle, Option, KeyHandle, Option), [INFO] [stdout] | | ----------------------------------------------------------------------- the second-largest variant contains at least 272 bytes [INFO] [stdout] 303 | | Certification(Certification), [INFO] [stdout] | | ---------------------------- the largest variant contains at least 536 bytes [INFO] [stdout] 304 | | } [INFO] [stdout] | |_^ the entire enum is at least 536 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 303 - Certification(Certification), [INFO] [stdout] 303 + Certification(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `certification::Certification` [INFO] [stdout] --> src/network/path.rs:356:29 [INFO] [stdout] | [INFO] [stdout] 356 | let certification = certification.into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `certification` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PathLints` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/network/path.rs:512:5 [INFO] [stdout] | [INFO] [stdout] 512 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/network/path.rs:545:9 [INFO] [stdout] | [INFO] [stdout] 545 | / self.certifications.iter() [INFO] [stdout] 546 | | // The required depth for this path to be valid. [INFO] [stdout] 547 | | .zip((0..self.certifications.len()).rev()) [INFO] [stdout] 548 | | .map(|(c, required_depth)| { [INFO] [stdout] ... | [INFO] [stdout] 608 | | }).min().unwrap_or(120) as usize [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 545 ~ self.certifications.iter() [INFO] [stdout] 546 + // The required depth for this path to be valid. [INFO] [stdout] 547 + .zip((0..self.certifications.len()).rev()) [INFO] [stdout] 548 + .map(|(c, required_depth)| { [INFO] [stdout] 549 + if ! c.errors.is_empty() { [INFO] [stdout] 550 + return 0; [INFO] [stdout] 551 + } [INFO] [stdout] 552 + [INFO] [stdout] 553 + if let Some(c) = c.certification() { [INFO] [stdout] 554 + if self.certification_network { [INFO] [stdout] 555 + c.amount() [INFO] [stdout] 556 + } else if c.depth() < required_depth.into() { [INFO] [stdout] 557 + 0 [INFO] [stdout] 558 + } else if required_depth > 0 [INFO] [stdout] 559 + && (! c.regular_expressions() [INFO] [stdout] 560 + .map(|re_set| { [INFO] [stdout] 561 + let matches = re_set.matches_userid(&userid); [INFO] [stdout] 562 + t!("Certification's regular expression \ [INFO] [stdout] 563 + {} target user ID {}", [INFO] [stdout] 564 + if matches { [INFO] [stdout] 565 + "matches" [INFO] [stdout] 566 + } else { [INFO] [stdout] 567 + "does not match" [INFO] [stdout] 568 + }, [INFO] [stdout] 569 + String::from_utf8_lossy(userid.value())); [INFO] [stdout] 570 + matches [INFO] [stdout] 571 + }) [INFO] [stdout] 572 + // Invalid => assume everything matches. [INFO] [stdout] 573 + .unwrap_or(true)) [INFO] [stdout] 574 + { [INFO] [stdout] 575 + // We check that the current certificate's [INFO] [stdout] 576 + // regular expressions match the target user [INFO] [stdout] 577 + // ID UNLESS (`required_depth == 0`) this is [INFO] [stdout] 578 + // the certification that introduces the [INFO] [stdout] 579 + // target user ID. [INFO] [stdout] 580 + // [INFO] [stdout] 581 + // Consider: Alice delegates to 'Bob [INFO] [stdout] 582 + // ', but only for "some.org". [INFO] [stdout] 583 + // Bob's email address (`bob@other.org`) is [INFO] [stdout] 584 + // not in some.org, but that doesn't matter [INFO] [stdout] 585 + // when considering Alice's introduction of [INFO] [stdout] 586 + // Bob; the regular expressions only scopes [INFO] [stdout] 587 + // what user IDs Bob can introduce! [INFO] [stdout] 588 + // [INFO] [stdout] 589 + // ``` [INFO] [stdout] 590 + // Alice [INFO] [stdout] 591 + // | [INFO] [stdout] 592 + // | Authorization (depth: 1, amount: 120), [INFO] [stdout] 593 + // | Regular expression: some.org [INFO] [stdout] 594 + // v [INFO] [stdout] 595 + // Bob [INFO] [stdout] 596 + // / \ [INFO] [stdout] 597 + // / Certification \ Certification [INFO] [stdout] 598 + // v v [INFO] [stdout] 599 + // Carol Dave [INFO] [stdout] 600 + // ``` [INFO] [stdout] 601 + 0 [INFO] [stdout] 602 + } else { [INFO] [stdout] 603 + c.amount() [INFO] [stdout] 604 + } [INFO] [stdout] 605 + } else { [INFO] [stdout] 606 + 0 [INFO] [stdout] 607 + } [INFO] [stdout] 608 + }).min().unwrap_or(120) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/network/path.rs:561:69 [INFO] [stdout] | [INFO] [stdout] 561 | ... let matches = re_set.matches_userid(&userid); [INFO] [stdout] | ^^^^^^^ help: change this to: `userid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `self.certifications.get(0)` [INFO] [stdout] --> src/network/path.rs:621:20 [INFO] [stdout] | [INFO] [stdout] 621 | let root = self.certifications.get(0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.certifications.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/network/path.rs:640:21 [INFO] [stdout] | [INFO] [stdout] 640 | .zip(self.certs.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 640 - .zip(self.certs.into_iter()) [INFO] [stdout] 640 + .zip(self.certs) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/network/path.rs:728:12 [INFO] [stdout] | [INFO] [stdout] 728 | if khs.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `khs.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `anyhow::Error` [INFO] [stdout] --> src/network/path.rs:946:46 [INFO] [stdout] | [INFO] [stdout] 946 | ... .errors.push(err.into()); [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `anyhow::Error` [INFO] [stdout] --> src/network/path.rs:948:40 [INFO] [stdout] | [INFO] [stdout] 948 | ... return Err(err.into()); [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.iter().next()` on an array [INFO] [stdout] --> src/network/path.rs:956:39 [INFO] [stdout] | [INFO] [stdout] 956 | ... let rev = revs.iter().next().expect("have one"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try calling: `revs.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_next_slice [INFO] [stdout] = note: `#[warn(clippy::iter_next_slice)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.iter().next()` on an array [INFO] [stdout] --> src/network/path.rs:1007:43 [INFO] [stdout] | [INFO] [stdout] 1007 | ... let rev = revs.iter().next().expect("have one"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try calling: `revs.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_next_slice [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/network/path.rs:1108:29 [INFO] [stdout] | [INFO] [stdout] 1108 | ... &issuer, ua, &target, c) [INFO] [stdout] | ^^^^^^^ help: change this to: `issuer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/network/path.rs:1108:42 [INFO] [stdout] | [INFO] [stdout] 1108 | ... &issuer, ua, &target, c) [INFO] [stdout] | ^^^^^^^ help: change this to: `target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/network/path.rs:1135:35 [INFO] [stdout] | [INFO] [stdout] 1135 | if let Some(ua) = target.cert().userids() [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 1136 | | .filter(|ua| ua.userid() == userid) [INFO] [stdout] 1137 | | .next() [INFO] [stdout] | |___________________________^ help: try: `target.cert().userids().find(|ua| ua.userid() == userid)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] = note: `#[warn(clippy::filter_next)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/network/path.rs:1218:65 [INFO] [stdout] | [INFO] [stdout] 1218 | ... .map(|re_set| re_set.matches_userid(&userid)) [INFO] [stdout] | ^^^^^^^ help: change this to: `userid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/network/path.rs:1269:29 [INFO] [stdout] | [INFO] [stdout] 1269 | if adequate(&certification, None) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `certification` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/network/path.rs:1308:51 [INFO] [stdout] | [INFO] [stdout] 1308 | if active_certifications.contains(&certification) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `certification` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | write!(f, "Network {{\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 70 - write!(f, "Network {{\n")?; [INFO] [stdout] 70 + writeln!(f, "Network {{")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | write!(f, " Reference time: {:?}\n", self.reference_time())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 71 - write!(f, " Reference time: {:?}\n", self.reference_time())?; [INFO] [stdout] 71 + writeln!(f, " Reference time: {:?}", self.reference_time())?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | write!(f, " Nodes:\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 72 - write!(f, " Nodes:\n")?; [INFO] [stdout] 72 + writeln!(f, " Nodes:")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | write!(f, " {}: {}\n", fpr, userid)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 89 - write!(f, " {}: {}\n", fpr, userid)?; [INFO] [stdout] 89 + writeln!(f, " {}: {}", fpr, userid)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | write!(f, " Edges:\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 92 - write!(f, " Edges:\n")?; [INFO] [stdout] 92 + writeln!(f, " Edges:")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:120:17 [INFO] [stdout] | [INFO] [stdout] 120 | write!(f, " {} certifies:\n", issuer)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 120 - write!(f, " {} certifies:\n", issuer)?; [INFO] [stdout] 120 + writeln!(f, " {} certifies:", issuer)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:126:17 [INFO] [stdout] | [INFO] [stdout] 126 | / write!(f, " {}, {}: {}, {}, {}\n", [INFO] [stdout] 127 | | target_fpr, [INFO] [stdout] 128 | | c.userid().map(|userid| { [INFO] [stdout] 129 | | String::from_utf8_lossy(userid.value()).into_owned() [INFO] [stdout] ... | [INFO] [stdout] 139 | | "".into() [INFO] [stdout] 140 | | })?; [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 126 - write!(f, " {}, {}: {}, {}, {}\n", [INFO] [stdout] 126 + writeln!(f, " {}, {}: {}, {}, {}", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/network.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | write!(f, "}}\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 144 - write!(f, "}}\n")?; [INFO] [stdout] 144 + writeln!(f, "}}")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/network.rs:211:41 [INFO] [stdout] | [INFO] [stdout] 211 | let t = t.into().unwrap_or_else(|| SystemTime::now()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `SystemTime::now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/network.rs:234:41 [INFO] [stdout] | [INFO] [stdout] 234 | let t = t.into().unwrap_or_else(|| SystemTime::now()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `SystemTime::now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/network.rs:254:41 [INFO] [stdout] | [INFO] [stdout] 254 | let t = t.into().unwrap_or_else(|| SystemTime::now()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `SystemTime::now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/network.rs:271:41 [INFO] [stdout] | [INFO] [stdout] 271 | let t = t.into().unwrap_or_else(|| SystemTime::now()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `SystemTime::now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/network.rs:435:29 [INFO] [stdout] | [INFO] [stdout] 435 | ... &path.root().fingerprint(), *path_amount); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `path.root().fingerprint()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/network.rs:570:34 [INFO] [stdout] | [INFO] [stdout] 570 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/network.rs:584:28 [INFO] [stdout] | [INFO] [stdout] 584 | ... c.userid().map(Clone::clone))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `c.userid().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/network.rs:634:34 [INFO] [stdout] | [INFO] [stdout] 634 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/network.rs:695:34 [INFO] [stdout] | [INFO] [stdout] 695 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> src/backward_propagation.rs:407:17 [INFO] [stdout] | [INFO] [stdout] 407 | signee_fp_cost.depth.into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `signee_fp_cost.depth` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:452:30 [INFO] [stdout] | [INFO] [stdout] 452 | if ! cf.cost(&certification, &mut certification_depth, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `certification` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/backward_propagation.rs:549:25 [INFO] [stdout] | [INFO] [stdout] 549 | certification_amount as usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `certification_amount` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/backward_propagation.rs:563:39 [INFO] [stdout] | [INFO] [stdout] 563 | let current_fp_cost = if let Some(current_fp) [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 564 | | = distance.get(&issuer_fpr.clone()) [INFO] [stdout] 565 | | { [INFO] [stdout] 566 | | Some(fp_cost!(¤t_fp)) [INFO] [stdout] 567 | | } else { [INFO] [stdout] 568 | | None [INFO] [stdout] 569 | | }; [INFO] [stdout] | |_________________^ help: try: `distance.get(&issuer_fpr.clone()).map(|current_fp| fp_cost!(¤t_fp))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/backward_propagation.rs:663:13 [INFO] [stdout] | [INFO] [stdout] 663 | / if ! (gossip || self.roots().is_empty()) { [INFO] [stdout] 664 | | if ! self.roots().is_root(issuer_fpr) { [INFO] [stdout] 665 | | continue; [INFO] [stdout] 666 | | } [INFO] [stdout] 667 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 663 ~ if ! (gossip || self.roots().is_empty()) [INFO] [stdout] 664 ~ && ! self.roots().is_root(issuer_fpr) { [INFO] [stdout] 665 | continue; [INFO] [stdout] 666 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backward_propagation.rs:756:21 [INFO] [stdout] | [INFO] [stdout] 756 | assert!(nodes.len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!nodes.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/backward_propagation.rs:766:56 [INFO] [stdout] | [INFO] [stdout] 766 | auth_rpaths.insert(issuer_fpr.clone(), (p, amount as usize)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `amount` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/backward_propagation.rs:774:45 [INFO] [stdout] | [INFO] [stdout] 774 | .lookup_synopsis_by_fpr(*fpr_a).expect("already looked up") [INFO] [stdout] | ^^^^^^ help: try: `fpr_a` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/backward_propagation.rs:779:45 [INFO] [stdout] | [INFO] [stdout] 779 | .lookup_synopsis_by_fpr(*fpr_b).expect("already looked up") [INFO] [stdout] | ^^^^^^ help: try: `fpr_b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:785:36 [INFO] [stdout] | [INFO] [stdout] 785 | then(fpr_a.cmp(&fpr_b)) [INFO] [stdout] | ^^^^^^ help: change this to: `fpr_b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/backward_propagation.rs:493:36 [INFO] [stdout] | [INFO] [stdout] 493 | if let Some(ref userid) = certification.userid() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 493 - if let Some(ref userid) = certification.userid() { [INFO] [stdout] 493 + if let Some(userid) = certification.userid() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/backward_propagation.rs:867:26 [INFO] [stdout] | [INFO] [stdout] 867 | .map(|fpr| KeyHandle::from(fpr)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `KeyHandle::from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:930:34 [INFO] [stdout] | [INFO] [stdout] 930 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&ellen_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:954:23 [INFO] [stdout] | [INFO] [stdout] 954 | assert!(&auth.get(&ellen_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&ellen_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:955:18 [INFO] [stdout] | [INFO] [stdout] 955 | pcmp(&n, &auth.get(&carol_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&carol_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:958:18 [INFO] [stdout] | [INFO] [stdout] 958 | pcmp(&n, &auth.get(&bob_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&bob_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:961:18 [INFO] [stdout] | [INFO] [stdout] 961 | pcmp(&n, &auth.get(&alice_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&alice_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&ellen_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:971:23 [INFO] [stdout] | [INFO] [stdout] 971 | assert!(&auth.get(&ellen_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&ellen_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:972:18 [INFO] [stdout] | [INFO] [stdout] 972 | pcmp(&n, &auth.get(&carol_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&carol_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:975:18 [INFO] [stdout] | [INFO] [stdout] 975 | pcmp(&n, &auth.get(&bob_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&bob_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:981:18 [INFO] [stdout] | [INFO] [stdout] 981 | pcmp(&n, &auth.get(&alice_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&alice_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&ellen_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:991:23 [INFO] [stdout] | [INFO] [stdout] 991 | assert!(&auth.get(&ellen_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&ellen_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:992:18 [INFO] [stdout] | [INFO] [stdout] 992 | pcmp(&n, &auth.get(&carol_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&carol_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:998:18 [INFO] [stdout] | [INFO] [stdout] 998 | pcmp(&n, &auth.get(&bob_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&bob_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1001:18 [INFO] [stdout] | [INFO] [stdout] 1001 | pcmp(&n, &auth.get(&alice_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&alice_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&ellen_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1014:23 [INFO] [stdout] | [INFO] [stdout] 1014 | assert!(&auth.get(&ellen_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&ellen_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&dave_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1015:23 [INFO] [stdout] | [INFO] [stdout] 1015 | assert!(&auth.get(&dave_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&dave_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&carol_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1016:23 [INFO] [stdout] | [INFO] [stdout] 1016 | assert!(&auth.get(&carol_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&carol_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&bob_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1017:23 [INFO] [stdout] | [INFO] [stdout] 1017 | assert!(&auth.get(&bob_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&bob_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&alice_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1018:23 [INFO] [stdout] | [INFO] [stdout] 1018 | assert!(&auth.get(&alice_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&ellen_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1029:23 [INFO] [stdout] | [INFO] [stdout] 1029 | assert!(&auth.get(&ellen_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&ellen_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&dave_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1030:23 [INFO] [stdout] | [INFO] [stdout] 1030 | assert!(&auth.get(&dave_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&dave_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&carol_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1031:23 [INFO] [stdout] | [INFO] [stdout] 1031 | assert!(&auth.get(&carol_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&carol_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&bob_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1032:23 [INFO] [stdout] | [INFO] [stdout] 1032 | assert!(&auth.get(&bob_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&bob_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&alice_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1033:23 [INFO] [stdout] | [INFO] [stdout] 1033 | assert!(&auth.get(&alice_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:1091:34 [INFO] [stdout] | [INFO] [stdout] 1091 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1102:18 [INFO] [stdout] | [INFO] [stdout] 1102 | pcmp(&n, &auth.get(&ed_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&ed_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1105:18 [INFO] [stdout] | [INFO] [stdout] 1105 | pcmp(&n, &auth.get(&dave_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&dave_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1108:18 [INFO] [stdout] | [INFO] [stdout] 1108 | pcmp(&n, &auth.get(&carol_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&carol_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1111:18 [INFO] [stdout] | [INFO] [stdout] 1111 | pcmp(&n, &auth.get(&bob_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&bob_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&alice_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1114:23 [INFO] [stdout] | [INFO] [stdout] 1114 | assert!(&auth.get(&alice_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1123:18 [INFO] [stdout] | [INFO] [stdout] 1123 | pcmp(&n, &auth.get(&ed_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&ed_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1126:18 [INFO] [stdout] | [INFO] [stdout] 1126 | pcmp(&n, &auth.get(&dave_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&dave_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1129:18 [INFO] [stdout] | [INFO] [stdout] 1129 | pcmp(&n, &auth.get(&carol_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&carol_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1132:18 [INFO] [stdout] | [INFO] [stdout] 1132 | pcmp(&n, &auth.get(&bob_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&bob_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&alice_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1135:23 [INFO] [stdout] | [INFO] [stdout] 1135 | assert!(&auth.get(&alice_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&frank_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1143:23 [INFO] [stdout] | [INFO] [stdout] 1143 | assert!(&auth.get(&frank_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&frank_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1144:18 [INFO] [stdout] | [INFO] [stdout] 1144 | pcmp(&n, &auth.get(&dave_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&dave_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1147:18 [INFO] [stdout] | [INFO] [stdout] 1147 | pcmp(&n, &auth.get(&carol_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&carol_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1150:18 [INFO] [stdout] | [INFO] [stdout] 1150 | pcmp(&n, &auth.get(&bob_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&bob_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1153:18 [INFO] [stdout] | [INFO] [stdout] 1153 | pcmp(&n, &auth.get(&alice_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&alice_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&frank_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1163:23 [INFO] [stdout] | [INFO] [stdout] 1163 | assert!(&auth.get(&frank_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&frank_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&ed_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1164:23 [INFO] [stdout] | [INFO] [stdout] 1164 | assert!(&auth.get(&ed_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&ed_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1165:18 [INFO] [stdout] | [INFO] [stdout] 1165 | pcmp(&n, &auth.get(&dave_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&dave_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1168:18 [INFO] [stdout] | [INFO] [stdout] 1168 | pcmp(&n, &auth.get(&bob_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&bob_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1173:18 [INFO] [stdout] | [INFO] [stdout] 1173 | pcmp(&n, &auth.get(&alice_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&alice_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:1263:34 [INFO] [stdout] | [INFO] [stdout] 1263 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1275:18 [INFO] [stdout] | [INFO] [stdout] 1275 | pcmp(&n, &auth.get(&root_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&root_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:1298:34 [INFO] [stdout] | [INFO] [stdout] 1298 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1310:18 [INFO] [stdout] | [INFO] [stdout] 1310 | pcmp(&n, &auth.get(&root_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&root_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:1330:34 [INFO] [stdout] | [INFO] [stdout] 1330 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1342:18 [INFO] [stdout] | [INFO] [stdout] 1342 | pcmp(&n, &auth.get(&root_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&root_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:1441:34 [INFO] [stdout] | [INFO] [stdout] 1441 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1452:18 [INFO] [stdout] | [INFO] [stdout] 1452 | pcmp(&n, &auth.get(&alice_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&alice_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&carol_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1455:23 [INFO] [stdout] | [INFO] [stdout] 1455 | assert!(&auth.get(&carol_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&carol_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&jenny_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1456:23 [INFO] [stdout] | [INFO] [stdout] 1456 | assert!(&auth.get(&jenny_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&jenny_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backward_propagation.rs:1467:18 [INFO] [stdout] | [INFO] [stdout] 1467 | pcmp(&n, &auth.get(&jenny_fpr).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `auth.get(&jenny_fpr).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:1546:34 [INFO] [stdout] | [INFO] [stdout] 1546 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&francis_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1572:22 [INFO] [stdout] | [INFO] [stdout] 1572 | assert!(auth.get(&francis_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&francis_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&georgina_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1573:22 [INFO] [stdout] | [INFO] [stdout] 1573 | assert!(auth.get(&georgina_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&georgina_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&georgina_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1598:22 [INFO] [stdout] | [INFO] [stdout] 1598 | assert!(auth.get(&georgina_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&georgina_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&henry_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1599:22 [INFO] [stdout] | [INFO] [stdout] 1599 | assert!(auth.get(&henry_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&henry_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:1656:34 [INFO] [stdout] | [INFO] [stdout] 1656 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/backward_propagation.rs:1703:48 [INFO] [stdout] | [INFO] [stdout] 1703 | let n = NetworkBuilder::rooted(&store, &[ alice_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:1791:34 [INFO] [stdout] | [INFO] [stdout] 1791 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&alice_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1824:22 [INFO] [stdout] | [INFO] [stdout] 1824 | assert!(auth.get(&alice_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&alice_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1833:22 [INFO] [stdout] | [INFO] [stdout] 1833 | assert!(auth.get(&alice_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&alice_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1843:22 [INFO] [stdout] | [INFO] [stdout] 1843 | assert!(auth.get(&alice_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&bob_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1873:22 [INFO] [stdout] | [INFO] [stdout] 1873 | assert!(auth.get(&bob_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&bob_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:1951:34 [INFO] [stdout] | [INFO] [stdout] 1951 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&alice_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:1988:22 [INFO] [stdout] | [INFO] [stdout] 1988 | assert!(auth.get(&alice_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&bob_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:2021:22 [INFO] [stdout] | [INFO] [stdout] 2021 | assert!(auth.get(&bob_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&bob_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:2121:34 [INFO] [stdout] | [INFO] [stdout] 2121 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&alice_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:2163:22 [INFO] [stdout] | [INFO] [stdout] 2163 | assert!(auth.get(&alice_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&alice_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:2179:22 [INFO] [stdout] | [INFO] [stdout] 2179 | assert!(auth.get(&alice_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&alice_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:2186:22 [INFO] [stdout] | [INFO] [stdout] 2186 | assert!(auth.get(&alice_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&bob_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:2215:22 [INFO] [stdout] | [INFO] [stdout] 2215 | assert!(auth.get(&bob_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&bob_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:2317:34 [INFO] [stdout] | [INFO] [stdout] 2317 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:2399:34 [INFO] [stdout] | [INFO] [stdout] 2399 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&alice_fpr).is_none()` [INFO] [stdout] --> src/backward_propagation.rs:2447:22 [INFO] [stdout] | [INFO] [stdout] 2447 | assert!(auth.get(&alice_fpr).is_none()); [INFO] [stdout] | -----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!auth.contains_key(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:2500:34 [INFO] [stdout] | [INFO] [stdout] 2500 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/backward_propagation.rs:2585:34 [INFO] [stdout] | [INFO] [stdout] 2585 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/path.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 145 | if self.edges.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.edges.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/path.rs:148:13 [INFO] [stdout] | [INFO] [stdout] 148 | &self.edges[self.edges.len() - 1].target() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.edges[self.edges.len() - 1].target()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this bound is already specified as the supertrait of `DoubleEndedIterator` [INFO] [stdout] --> src/path.rs:156:17 [INFO] [stdout] | [INFO] [stdout] 156 | -> impl Iterator + DoubleEndedIterator [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implied_bounds_in_impls [INFO] [stdout] = note: `#[warn(clippy::implied_bounds_in_impls)]` on by default [INFO] [stdout] help: try removing this bound [INFO] [stdout] | [INFO] [stdout] 156 - -> impl Iterator + DoubleEndedIterator [INFO] [stdout] 156 + -> impl DoubleEndedIterator [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Path` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/path.rs:165:5 [INFO] [stdout] | [INFO] [stdout] 165 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/path.rs:196:9 [INFO] [stdout] | [INFO] [stdout] 196 | / self.edges.iter() [INFO] [stdout] 197 | | // The required depth for this path to be valid. [INFO] [stdout] 198 | | .zip((0..self.edges.len()).rev()) [INFO] [stdout] 199 | | .map(|(e, required_depth)| { [INFO] [stdout] ... | [INFO] [stdout] 207 | | }).min().unwrap_or(120) as usize [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 196 ~ self.edges.iter() [INFO] [stdout] 197 + // The required depth for this path to be valid. [INFO] [stdout] 198 + .zip((0..self.edges.len()).rev()) [INFO] [stdout] 199 + .map(|(e, required_depth)| { [INFO] [stdout] 200 + if self.certification_network [INFO] [stdout] 201 + || e.depth() >= required_depth.into() [INFO] [stdout] 202 + { [INFO] [stdout] 203 + e.amount() [INFO] [stdout] 204 + } else { [INFO] [stdout] 205 + 0 [INFO] [stdout] 206 + } [INFO] [stdout] 207 + }).min().unwrap_or(120) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/path.rs:343:13 [INFO] [stdout] | [INFO] [stdout] 343 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 343 - return false; [INFO] [stdout] 343 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Paths` [INFO] [stdout] --> src/path.rs:383:5 [INFO] [stdout] | [INFO] [stdout] 383 | / pub fn new() -> Self { [INFO] [stdout] 384 | | Self { [INFO] [stdout] 385 | | paths: Vec::new(), [INFO] [stdout] 386 | | } [INFO] [stdout] 387 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 381 + impl Default for Paths { [INFO] [stdout] 382 + fn default() -> Self { [INFO] [stdout] 383 + Self::new() [INFO] [stdout] 384 + } [INFO] [stdout] 385 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `into_iter` can be confused for the standard trait method `std::iter::IntoIterator::into_iter` [INFO] [stdout] --> src/path.rs:406:5 [INFO] [stdout] | [INFO] [stdout] 406 | / pub fn into_iter(self) -> impl Iterator { [INFO] [stdout] 407 | | self.paths.into_iter() [INFO] [stdout] 408 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::iter::IntoIterator` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/priority_queue.rs:49:18 [INFO] [stdout] | [INFO] [stdout] 49 | self.cmp(&other) == Ordering::Equal [INFO] [stdout] | ^^^^^^ help: change this to: `other` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/priority_queue.rs:122:24 [INFO] [stdout] | [INFO] [stdout] 122 | || self.pending.len() == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.pending.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.iter().count()` on a `BinaryHeap` [INFO] [stdout] --> src/priority_queue.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 131 | self.bh.iter().count(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.bh.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_count [INFO] [stdout] = note: `#[warn(clippy::iter_count)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/priority_queue.rs:153:26 [INFO] [stdout] | [INFO] [stdout] 153 | let bh = std::mem::replace(&mut self.bh, BinaryHeap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.bh)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: `#[warn(clippy::mem_replace_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/priority_queue.rs:221:36 [INFO] [stdout] | [INFO] [stdout] 221 | if ! self.bh.is_empty() || self.pending.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.pending.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/testdata.rs:59:11 [INFO] [stdout] | [INFO] [stdout] 59 | file(&format!("{}", name)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `name.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SystemTime` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:630:43 [INFO] [stdout] | [INFO] [stdout] 630 | chrono::DateTime::::from(t.clone()) [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:677:40 [INFO] [stdout] | [INFO] [stdout] 677 | match (got.iter().count() > 0, expected.len() > 0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!expected.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:822:34 [INFO] [stdout] | [INFO] [stdout] 822 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:824:21 [INFO] [stdout] | [INFO] [stdout] 824 | &store, &[ alice_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:857:48 [INFO] [stdout] | [INFO] [stdout] 857 | let n = NetworkBuilder::rooted(&store, &[ bob_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&bob_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:942:34 [INFO] [stdout] | [INFO] [stdout] 942 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:944:21 [INFO] [stdout] | [INFO] [stdout] 944 | &store, &[ alice_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:986:48 [INFO] [stdout] | [INFO] [stdout] 986 | let n = NetworkBuilder::rooted(&store, &[ bob_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&bob_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:1081:34 [INFO] [stdout] | [INFO] [stdout] 1081 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:1087:21 [INFO] [stdout] | [INFO] [stdout] 1087 | &store, &[ alice_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:1258:34 [INFO] [stdout] | [INFO] [stdout] 1258 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:1264:21 [INFO] [stdout] | [INFO] [stdout] 1264 | &store, &[ root_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&root_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:1286:48 [INFO] [stdout] | [INFO] [stdout] 1286 | let n = NetworkBuilder::rooted(&store, &[ a_1_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&a_1_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:1310:34 [INFO] [stdout] | [INFO] [stdout] 1310 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:1315:48 [INFO] [stdout] | [INFO] [stdout] 1315 | let n = NetworkBuilder::rooted(&store, &[ root_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&root_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:1362:48 [INFO] [stdout] | [INFO] [stdout] 1362 | let n = NetworkBuilder::rooted(&store, &[ a_1_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&a_1_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:1387:34 [INFO] [stdout] | [INFO] [stdout] 1387 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:1392:48 [INFO] [stdout] | [INFO] [stdout] 1392 | let n = NetworkBuilder::rooted(&store, &[ root_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&root_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:1438:48 [INFO] [stdout] | [INFO] [stdout] 1438 | let n = NetworkBuilder::rooted(&store, &[ a_1_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&a_1_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:1552:34 [INFO] [stdout] | [INFO] [stdout] 1552 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:1557:48 [INFO] [stdout] | [INFO] [stdout] 1557 | let n = NetworkBuilder::rooted(&store, &[ alice_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:1634:48 [INFO] [stdout] | [INFO] [stdout] 1634 | let n = NetworkBuilder::rooted(&store, &[ jenny_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&jenny_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:1882:34 [INFO] [stdout] | [INFO] [stdout] 1882 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:1887:48 [INFO] [stdout] | [INFO] [stdout] 1887 | let n = NetworkBuilder::rooted(&store, &[ alice_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:1958:48 [INFO] [stdout] | [INFO] [stdout] 1958 | let n = NetworkBuilder::rooted(&store, &[ bob_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&bob_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:2069:34 [INFO] [stdout] | [INFO] [stdout] 2069 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:2074:48 [INFO] [stdout] | [INFO] [stdout] 2074 | let n = NetworkBuilder::rooted(&store, &[ alice_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:2134:38 [INFO] [stdout] | [INFO] [stdout] 2134 | certs.iter().map(|c| c.into()), p, *t)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:2139:52 [INFO] [stdout] | [INFO] [stdout] 2139 | let n = NetworkBuilder::rooted(&store, &[ alice_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:2219:38 [INFO] [stdout] | [INFO] [stdout] 2219 | certs.iter().map(|c| c.into()), p, *t)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:2227:52 [INFO] [stdout] | [INFO] [stdout] 2227 | let n = NetworkBuilder::rooted(&store, &[ bob_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&bob_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:2234:52 [INFO] [stdout] | [INFO] [stdout] 2234 | let n = NetworkBuilder::rooted(&store, &[ alice_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:2328:38 [INFO] [stdout] | [INFO] [stdout] 2328 | certs.iter().map(|c| c.into()), p, *t)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:2336:52 [INFO] [stdout] | [INFO] [stdout] 2336 | let n = NetworkBuilder::rooted(&store, &[ bob_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&bob_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:2341:52 [INFO] [stdout] | [INFO] [stdout] 2341 | let n = NetworkBuilder::rooted(&store, &[ alice_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:2408:38 [INFO] [stdout] | [INFO] [stdout] 2408 | certs.iter().map(|c| c.into()), p, *t)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:2413:52 [INFO] [stdout] | [INFO] [stdout] 2413 | let n = NetworkBuilder::rooted(&store, &[ alice_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:2434:52 [INFO] [stdout] | [INFO] [stdout] 2434 | let n = NetworkBuilder::rooted(&store, &[ bob_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&bob_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:2502:38 [INFO] [stdout] | [INFO] [stdout] 2502 | certs.iter().map(|c| c.into()), p, *t)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:2508:52 [INFO] [stdout] | [INFO] [stdout] 2508 | let n = NetworkBuilder::rooted(&store, &[ bob_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&bob_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:2519:52 [INFO] [stdout] | [INFO] [stdout] 2519 | let n = NetworkBuilder::rooted(&store, &[ alice_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:2599:38 [INFO] [stdout] | [INFO] [stdout] 2599 | certs.iter().map(|c| c.into()), p, *t)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:2604:52 [INFO] [stdout] | [INFO] [stdout] 2604 | let n = NetworkBuilder::rooted(&store, &[ alice_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:2640:52 [INFO] [stdout] | [INFO] [stdout] 2640 | let n = NetworkBuilder::rooted(&store, &[ bob_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&bob_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:2940:34 [INFO] [stdout] | [INFO] [stdout] 2940 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:2945:48 [INFO] [stdout] | [INFO] [stdout] 2945 | let n = NetworkBuilder::rooted(&store, &[ u1_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&u1_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:3008:38 [INFO] [stdout] | [INFO] [stdout] 3008 | certs.iter().map(|c| c.into()), p, *t)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:3013:52 [INFO] [stdout] | [INFO] [stdout] 3013 | let n = NetworkBuilder::rooted(&store, &[ alice_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:3027:52 [INFO] [stdout] | [INFO] [stdout] 3027 | let n = NetworkBuilder::rooted(&store, &[ bob_fpr.clone() ]).build(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&bob_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:3094:34 [INFO] [stdout] | [INFO] [stdout] 3094 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:3195:34 [INFO] [stdout] | [INFO] [stdout] 3195 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:3281:38 [INFO] [stdout] | [INFO] [stdout] 3281 | certs.iter().map(|c| c.into()), p, *t)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:3286:52 [INFO] [stdout] | [INFO] [stdout] 3286 | let n = NetworkBuilder::rooted(&store, &[ alice_fpr.clone() ]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:3350:34 [INFO] [stdout] | [INFO] [stdout] 3350 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&sequoia_openpgp::Cert` [INFO] [stdout] --> src/lib.rs:3515:34 [INFO] [stdout] | [INFO] [stdout] 3515 | certs.iter().map(|c| c.into()), p, None)?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> src/lib.rs:3521:48 [INFO] [stdout] | [INFO] [stdout] 3521 | let n = NetworkBuilder::rooted(&store, &[ alice_fpr.clone() ]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&alice_fpr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.80s [INFO] running `Command { std: "docker" "inspect" "b77ed2f79850096df9f8a62bccb02bf4d8f84e380f0e1107f7b3c53264c3b2ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b77ed2f79850096df9f8a62bccb02bf4d8f84e380f0e1107f7b3c53264c3b2ca", kill_on_drop: false }` [INFO] [stdout] b77ed2f79850096df9f8a62bccb02bf4d8f84e380f0e1107f7b3c53264c3b2ca