[INFO] fetching crate ksi-double-ratchet 0.1.3... [INFO] linting ksi-double-ratchet-0.1.3 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate ksi-double-ratchet 0.1.3 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate ksi-double-ratchet 0.1.3 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate ksi-double-ratchet 0.1.3 [INFO] tweaked toml for crates.io crate ksi-double-ratchet 0.1.3 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate ksi-double-ratchet 0.1.3 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] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 40 packages to latest compatible versions [INFO] [stderr] Adding block-padding v0.3.3 (available: v0.4.2) [INFO] [stderr] Adding cipher v0.4.4 (available: v0.5.1) [INFO] [stderr] Adding generic-array v0.14.7 (available: v0.14.9) [INFO] [stderr] Adding hashbrown v0.1.8 (available: v0.16.1) [INFO] [stderr] Adding rand_core v0.4.2 (available: v0.10.0) [INFO] [stderr] Adding rand_os v0.1.3 (available: v0.2.2) [INFO] [stderr] Adding x25519-dalek v0.5.2 (available: v2.0.1) [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] Downloading crates ... [INFO] [stderr] Downloaded crypto v0.5.1 [INFO] [stderr] Downloaded scopeguard v0.3.3 [INFO] [stderr] Downloaded hashbrown v0.1.8 [INFO] [stderr] Downloaded clear_on_drop v0.2.5 [INFO] [stderr] Downloaded x25519-dalek v0.5.2 [INFO] [stderr] Downloaded curve25519-dalek v1.2.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] debf7739fb5c39bba5014021847bb209457fda81a1cf0e1aa4d31361d0937beb [INFO] running `Command { std: "docker" "start" "-a" "debf7739fb5c39bba5014021847bb209457fda81a1cf0e1aa4d31361d0937beb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "debf7739fb5c39bba5014021847bb209457fda81a1cf0e1aa4d31361d0937beb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "debf7739fb5c39bba5014021847bb209457fda81a1cf0e1aa4d31361d0937beb", kill_on_drop: false }` [INFO] [stdout] debf7739fb5c39bba5014021847bb209457fda81a1cf0e1aa4d31361d0937beb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] c0ca6b8cb516cc2c4519f762b0648857ea75448f60b3d05af5308d861e033844 [INFO] running `Command { std: "docker" "start" "-a" "c0ca6b8cb516cc2c4519f762b0648857ea75448f60b3d05af5308d861e033844", kill_on_drop: false }` [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Compiling rand_core v0.4.2 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking scopeguard v0.3.3 [INFO] [stderr] Compiling generic-array v0.12.4 [INFO] [stderr] Checking block-padding v0.3.3 [INFO] [stderr] Checking digest v0.8.1 [INFO] [stderr] Checking rand_core v0.3.1 [INFO] [stderr] Compiling clear_on_drop v0.2.5 [INFO] [stderr] Checking crypto v0.5.1 [INFO] [stderr] Checking rand_os v0.1.3 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking hashbrown v0.1.8 [INFO] [stderr] Checking hkdf v0.12.4 [INFO] [stderr] Compiling curve25519-dalek v1.2.6 [INFO] [stderr] Checking cbc v0.1.2 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking ksi-double-ratchet v0.1.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: docs for function returning `Result` missing `# Errors` section [INFO] [stdout] --> src/dr.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 264 | / pub fn try_ratchet_encrypt( [INFO] [stdout] 265 | | &mut self, [INFO] [stdout] 266 | | plaintext: &[u8], [INFO] [stdout] 267 | | associated_data: &[u8], [INFO] [stdout] 268 | | rng: &mut R, [INFO] [stdout] 269 | | ) -> Result<(Header, Vec), EncryptUninit> { [INFO] [stdout] | |________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | #![warn(clippy::pedantic)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(clippy::missing_errors_doc)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: docs for function returning `Result` missing `# Errors` section [INFO] [stdout] --> src/dr.rs:365:5 [INFO] [stdout] | [INFO] [stdout] 365 | / pub fn ratchet_decrypt( [INFO] [stdout] 366 | | &mut self, [INFO] [stdout] 367 | | header: &Header, [INFO] [stdout] 368 | | ciphertext: &[u8], [INFO] [stdout] 369 | | associated_data: &[u8], [INFO] [stdout] 370 | | ) -> Result, DecryptError> { [INFO] [stdout] | |______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dr.rs:373:64 [INFO] [stdout] | [INFO] [stdout] 373 | self.try_decrypt(header, ciphertext, &Self::concat(&header, associated_data))?; [INFO] [stdout] | ^^^^^^^ help: change this to: `header` [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: usage of wildcard import for enum variants [INFO] [stdout] --> src/dr.rs:388:13 [INFO] [stdout] | [INFO] [stdout] 388 | use Diff::*; [INFO] [stdout] | ^^^^^^^ help: try: `Diff::{OldKey, CurrentChain, NextChain}` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_glob_use [INFO] [stdout] = note: `#[warn(clippy::enum_glob_use)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.ckr` after checking its variant with `is_some` [INFO] [stdout] --> src/dr.rs:452:31 [INFO] [stdout] | [INFO] [stdout] 451 | if self.ckr.is_some() && self.nr < h.pn { [INFO] [stdout] | ------------------ the check is happening here [INFO] [stdout] 452 | let ckr = self.ckr.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of wildcard import for enum variants [INFO] [stdout] --> src/dr.rs:442:13 [INFO] [stdout] | [INFO] [stdout] 442 | use Diff::*; [INFO] [stdout] | ^^^^^^^ help: try: `Diff::{OldKey, CurrentChain, NextChain}` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_glob_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dr.rs:472:40 [INFO] [stdout] | [INFO] [stdout] 472 | let (mut ckr, mk) = CP::kdf_ck(&ckr); [INFO] [stdout] | ^^^^ help: change this to: `ckr` [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: docs for function returning `Result` missing `# Errors` section [INFO] [stdout] --> src/dr.rs:574:5 [INFO] [stdout] | [INFO] [stdout] 574 | / fn decrypt( [INFO] [stdout] 575 | | key: &Self::MessageKey, [INFO] [stdout] 576 | | ciphertext: &[u8], [INFO] [stdout] 577 | | associated_data: &[u8], [INFO] [stdout] 578 | | ) -> Result, DecryptError>; [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/dr.rs:643:32 [INFO] [stdout] | [INFO] [stdout] 643 | let values = (n..).zip(mks.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/91021ccc790478a1a89c003e7d32b8d155ae6aae/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] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 643 - let values = (n..).zip(mks.into_iter()); [INFO] [stdout] 643 + let values = (n..).zip(mks); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of wildcard import for enum variants [INFO] [stdout] --> src/dr.rs:718:13 [INFO] [stdout] | [INFO] [stdout] 718 | use DecryptError::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `DecryptError::{DecryptFailure, MessageKeyNotFound, SkipTooLarge, StorageFull}` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_glob_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of wildcard import [INFO] [stdout] --> src/dr.rs:736:9 [INFO] [stdout] | [INFO] [stdout] 736 | use super::*; [INFO] [stdout] | ^^^^^^^^ help: try: `super::{Hash, Vec, RngCore}` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports [INFO] [stdout] = note: `#[warn(clippy::wildcard_imports)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking x25519-dalek v0.5.2 [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:920:13 [INFO] [stdout] | [INFO] [stdout] 920 | let pt_b_0 = b"Yes I'm here"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:903:13 [INFO] [stdout] | [INFO] [stdout] 903 | let pt_a_0 = b"Hi Bobby"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | #![warn(clippy::pedantic)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(clippy::similar_names)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:921:14 [INFO] [stdout] | [INFO] [stdout] 921 | let (h_b_0, ct_b_0) = bob.ratchet_encrypt(pt_b_0, ad_b, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:904:14 [INFO] [stdout] | [INFO] [stdout] 904 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(pt_a_0, ad_a, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:921:21 [INFO] [stdout] | [INFO] [stdout] 921 | let (h_b_0, ct_b_0) = bob.ratchet_encrypt(pt_b_0, ad_b, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:904:21 [INFO] [stdout] | [INFO] [stdout] 904 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(pt_a_0, ad_a, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:925:13 [INFO] [stdout] | [INFO] [stdout] 925 | let pt_b_9 = b"Tell me why!!!"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:903:13 [INFO] [stdout] | [INFO] [stdout] 903 | let pt_a_0 = b"Hi Bobby"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:926:14 [INFO] [stdout] | [INFO] [stdout] 926 | let (h_b_9, ct_b_9) = bob.ratchet_encrypt(pt_b_9, ad_b, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:904:14 [INFO] [stdout] | [INFO] [stdout] 904 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(pt_a_0, ad_a, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:926:21 [INFO] [stdout] | [INFO] [stdout] 926 | let (h_b_9, ct_b_9) = bob.ratchet_encrypt(pt_b_9, ad_b, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:904:21 [INFO] [stdout] | [INFO] [stdout] 904 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(pt_a_0, ad_a, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:953:13 [INFO] [stdout] | [INFO] [stdout] 953 | let pt_b_0 = b"Salutations Allison"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:943:13 [INFO] [stdout] | [INFO] [stdout] 943 | let pt_a_0 = b"Good day Robert"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:954:14 [INFO] [stdout] | [INFO] [stdout] 954 | let (h_b_0, ct_b_0) = bob.ratchet_encrypt(pt_b_0, ad_b, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:944:14 [INFO] [stdout] | [INFO] [stdout] 944 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(pt_a_0, ad_a, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:954:21 [INFO] [stdout] | [INFO] [stdout] 954 | let (h_b_0, ct_b_0) = bob.ratchet_encrypt(pt_b_0, ad_b, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:944:21 [INFO] [stdout] | [INFO] [stdout] 944 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(pt_a_0, ad_a, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:956:13 [INFO] [stdout] | [INFO] [stdout] 956 | let pt_b_1 = b"How is your day going?"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:943:13 [INFO] [stdout] | [INFO] [stdout] 943 | let pt_a_0 = b"Good day Robert"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:957:14 [INFO] [stdout] | [INFO] [stdout] 957 | let (h_b_1, ct_b_1) = bob.ratchet_encrypt(pt_b_1, ad_b, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:944:14 [INFO] [stdout] | [INFO] [stdout] 944 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(pt_a_0, ad_a, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:957:21 [INFO] [stdout] | [INFO] [stdout] 957 | let (h_b_1, ct_b_1) = bob.ratchet_encrypt(pt_b_1, ad_b, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:944:21 [INFO] [stdout] | [INFO] [stdout] 944 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(pt_a_0, ad_a, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:975:13 [INFO] [stdout] | [INFO] [stdout] 975 | let pt_b_2 = b"Yes I like Rust"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:943:13 [INFO] [stdout] | [INFO] [stdout] 943 | let pt_a_0 = b"Good day Robert"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:976:14 [INFO] [stdout] | [INFO] [stdout] 976 | let (h_b_2, ct_b_2) = bob.ratchet_encrypt(pt_b_2, ad_b, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:944:14 [INFO] [stdout] | [INFO] [stdout] 944 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(pt_a_0, ad_a, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:976:21 [INFO] [stdout] | [INFO] [stdout] 976 | let (h_b_2, ct_b_2) = bob.ratchet_encrypt(pt_b_2, ad_b, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:944:21 [INFO] [stdout] | [INFO] [stdout] 944 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(pt_a_0, ad_a, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:1081:14 [INFO] [stdout] | [INFO] [stdout] 1081 | let (h_b_0, ct_b_0) = bob.ratchet_encrypt(b"Whatever", ad_b, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:1077:14 [INFO] [stdout] | [INFO] [stdout] 1077 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(b"Whatever", ad_a, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:1081:21 [INFO] [stdout] | [INFO] [stdout] 1081 | let (h_b_0, ct_b_0) = bob.ratchet_encrypt(b"Whatever", ad_b, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:1077:21 [INFO] [stdout] | [INFO] [stdout] 1077 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(b"Whatever", ad_a, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:1087:14 [INFO] [stdout] | [INFO] [stdout] 1087 | let (h_b_1, ct_b_1) = bob.ratchet_encrypt(b"Whatever", ad_b, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:1077:14 [INFO] [stdout] | [INFO] [stdout] 1077 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(b"Whatever", ad_a, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:1087:21 [INFO] [stdout] | [INFO] [stdout] 1087 | let (h_b_1, ct_b_1) = bob.ratchet_encrypt(b"Whatever", ad_b, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:1077:21 [INFO] [stdout] | [INFO] [stdout] 1077 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(b"Whatever", ad_a, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:1102:14 [INFO] [stdout] | [INFO] [stdout] 1102 | let (h_b_0, ct_b_0) = bob.ratchet_encrypt(b"Hi Alice", ad_b, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:1100:14 [INFO] [stdout] | [INFO] [stdout] 1100 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(b"Hi Bob", ad_a, &mut rng); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/dr.rs:1102:21 [INFO] [stdout] | [INFO] [stdout] 1102 | let (h_b_0, ct_b_0) = bob.ratchet_encrypt(b"Hi Alice", ad_b, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/dr.rs:1100:21 [INFO] [stdout] | [INFO] [stdout] 1100 | let (h_a_0, ct_a_0) = alice.ratchet_encrypt(b"Hi Bob", ad_a, &mut rng); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> tests/signal.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | use cbc; [INFO] [stdout] | ^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tests/signal.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | return (SymmetricKey(root_key), SymmetricKey(chain_key)) [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] 50 - return (SymmetricKey(root_key), SymmetricKey(chain_key)) [INFO] [stdout] 50 + (SymmetricKey(root_key), SymmetricKey(chain_key)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/signal.rs:43:34 [INFO] [stdout] | [INFO] [stdout] 43 | pseudo_random_key.expand(&info, &mut output_key_material).unwrap(); [INFO] [stdout] | ^^^^^ help: change this to: `info` [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 `GenericArray, B0>, B0>, B0>, B0>, B0>>` which implements the `Copy` trait [INFO] [stdout] --> tests/signal.rs:45:45 [INFO] [stdout] | [INFO] [stdout] 45 | let root_key: GenericArray = GenericArray::::from_slice(&output_key_material[..32]).clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*GenericArray::::from_slice(&output_key_material[..32])` [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: using `clone` on type `GenericArray, B0>, B0>, B0>, B0>, B0>>` which implements the `Copy` trait [INFO] [stdout] --> tests/signal.rs:48:13 [INFO] [stdout] | [INFO] [stdout] 48 | GenericArray::::from_slice(&output_key_material[32..]).clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*GenericArray::::from_slice(&output_key_material[32..])` [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] --> tests/signal.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | return (SymmetricKey(chain_key), SymmetricKey(message_key)) [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] 65 - return (SymmetricKey(chain_key), SymmetricKey(message_key)) [INFO] [stdout] 65 + (SymmetricKey(chain_key), SymmetricKey(message_key)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/signal.rs:98:20 [INFO] [stdout] | [INFO] [stdout] 98 | mac.update(&ciphertext); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `ciphertext` [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 `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> tests/signal.rs:103:43 [INFO] [stdout] | [INFO] [stdout] 103 | ciphertext_vec.extend((&tag[..8]).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: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> tests/signal.rs:103:31 [INFO] [stdout] | [INFO] [stdout] 103 | ciphertext_vec.extend((&tag[..8]).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/91021ccc790478a1a89c003e7d32b8d155ae6aae/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] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 103 - ciphertext_vec.extend((&tag[..8]).into_iter()); [INFO] [stdout] 103 + ciphertext_vec.extend(&*(&tag[..8])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/signal.rs:139:23 [INFO] [stdout] | [INFO] [stdout] 139 | if bool::from(!((&tag[..8]) == (&ct[ciphertext_len..]))) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((&tag[..8]) != (&ct[ciphertext_len..]))` [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: unneeded `return` statement [INFO] [stdout] --> tests/signal.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | / return match ciphr.decrypt_padded_mut::(&mut ciphertext_vec) { [INFO] [stdout] 151 | | Ok(pt) => { [INFO] [stdout] 152 | | output_key_material.clear(); [INFO] [stdout] 153 | | println!("pt: {:?}", pt); [INFO] [stdout] ... | [INFO] [stdout] 161 | | }; [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] 150 ~ match ciphr.decrypt_padded_mut::(&mut ciphertext_vec) { [INFO] [stdout] 151 + Ok(pt) => { [INFO] [stdout] 152 + output_key_material.clear(); [INFO] [stdout] 153 + println!("pt: {:?}", pt); [INFO] [stdout] 154 + Ok(pt.to_vec()) [INFO] [stdout] 155 + } [INFO] [stdout] 156 + Err(e) => { [INFO] [stdout] 157 + output_key_material.clear(); [INFO] [stdout] 158 + println!("Error: {:?}", e); [INFO] [stdout] 159 + Err(dr::DecryptError::DecryptFailure) [INFO] [stdout] 160 + } [INFO] [stdout] 161 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `bool` [INFO] [stdout] --> tests/signal.rs:139:12 [INFO] [stdout] | [INFO] [stdout] 139 | if bool::from(!((&tag[..8]) == (&ct[ciphertext_len..]))) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `bool::from()`: `(!((&tag[..8]) == (&ct[ciphertext_len..])))` [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: needlessly taken reference of both operands [INFO] [stdout] --> tests/signal.rs:139:24 [INFO] [stdout] | [INFO] [stdout] 139 | if bool::from(!((&tag[..8]) == (&ct[ciphertext_len..]))) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 139 - if bool::from(!((&tag[..8]) == (&ct[ciphertext_len..]))) { [INFO] [stdout] 139 + if bool::from(!(tag[..8] == ct[ciphertext_len..])) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: docs for function returning `Result` missing `# Errors` section [INFO] [stdout] --> src/dr.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 264 | / pub fn try_ratchet_encrypt( [INFO] [stdout] 265 | | &mut self, [INFO] [stdout] 266 | | plaintext: &[u8], [INFO] [stdout] 267 | | associated_data: &[u8], [INFO] [stdout] 268 | | rng: &mut R, [INFO] [stdout] 269 | | ) -> Result<(Header, Vec), EncryptUninit> { [INFO] [stdout] | |________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc [INFO] [stdout] = note: `#[warn(clippy::missing_errors_doc)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: docs for function returning `Result` missing `# Errors` section [INFO] [stdout] --> src/dr.rs:365:5 [INFO] [stdout] | [INFO] [stdout] 365 | / pub fn ratchet_decrypt( [INFO] [stdout] 366 | | &mut self, [INFO] [stdout] 367 | | header: &Header, [INFO] [stdout] 368 | | ciphertext: &[u8], [INFO] [stdout] 369 | | associated_data: &[u8], [INFO] [stdout] 370 | | ) -> Result, DecryptError> { [INFO] [stdout] | |______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dr.rs:373:64 [INFO] [stdout] | [INFO] [stdout] 373 | self.try_decrypt(header, ciphertext, &Self::concat(&header, associated_data))?; [INFO] [stdout] | ^^^^^^^ help: change this to: `header` [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: called `unwrap` on `self.ckr` after checking its variant with `is_some` [INFO] [stdout] --> src/dr.rs:452:31 [INFO] [stdout] | [INFO] [stdout] 451 | if self.ckr.is_some() && self.nr < h.pn { [INFO] [stdout] | ------------------ the check is happening here [INFO] [stdout] 452 | let ckr = self.ckr.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` 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/dr.rs:472:40 [INFO] [stdout] | [INFO] [stdout] 472 | let (mut ckr, mk) = CP::kdf_ck(&ckr); [INFO] [stdout] | ^^^^ help: change this to: `ckr` [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: docs for function returning `Result` missing `# Errors` section [INFO] [stdout] --> src/dr.rs:574:5 [INFO] [stdout] | [INFO] [stdout] 574 | / fn decrypt( [INFO] [stdout] 575 | | key: &Self::MessageKey, [INFO] [stdout] 576 | | ciphertext: &[u8], [INFO] [stdout] 577 | | associated_data: &[u8], [INFO] [stdout] 578 | | ) -> Result, DecryptError>; [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/dr.rs:643:32 [INFO] [stdout] | [INFO] [stdout] 643 | let values = (n..).zip(mks.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/91021ccc790478a1a89c003e7d32b8d155ae6aae/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] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 643 - let values = (n..).zip(mks.into_iter()); [INFO] [stdout] 643 + let values = (n..).zip(mks); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/dr.rs:1148:51 [INFO] [stdout] | [INFO] [stdout] 1148 | let _ = &bob.mkskipped.0.values().map(|hm| hm.len()).sum::(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace the closure with the method itself: `hashbrown::HashMap::len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] = note: `#[warn(clippy::redundant_closure_for_method_calls)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.27s [INFO] running `Command { std: "docker" "inspect" "c0ca6b8cb516cc2c4519f762b0648857ea75448f60b3d05af5308d861e033844", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c0ca6b8cb516cc2c4519f762b0648857ea75448f60b3d05af5308d861e033844", kill_on_drop: false }` [INFO] [stdout] c0ca6b8cb516cc2c4519f762b0648857ea75448f60b3d05af5308d861e033844