[INFO] fetching crate schnorrkel 0.11.5... [INFO] linting schnorrkel-0.11.5 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate schnorrkel 0.11.5 into /workspace/builds/worker-7-tc1/source [INFO] started tweaking crates.io crate schnorrkel 0.11.5 [INFO] finished tweaking crates.io crate schnorrkel 0.11.5 [INFO] tweaked toml for crates.io crate schnorrkel 0.11.5 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate schnorrkel 0.11.5 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 schnorrkel 0.11.5 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 sha2-asm v0.6.3 [INFO] [stderr] Downloaded zeroize v1.6.0 [INFO] [stderr] Downloaded ciborium-io v0.2.1 [INFO] [stderr] Downloaded sha2 v0.10.7 [INFO] [stderr] Downloaded proc-macro2 v1.0.66 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.87 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.87 [INFO] [stderr] Downloaded plotters-backend v0.3.5 [INFO] [stderr] Downloaded hermit-abi v0.3.2 [INFO] [stderr] Downloaded ciborium-ll v0.2.1 [INFO] [stderr] Downloaded plotters-svg v0.3.5 [INFO] [stderr] Downloaded wasm-bindgen-backend v0.2.87 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.87 [INFO] [stderr] Downloaded walkdir v2.4.0 [INFO] [stderr] Downloaded os_str_bytes v6.5.1 [INFO] [stderr] Downloaded serde_derive v1.0.188 [INFO] [stderr] Downloaded arrayvec v0.7.4 [INFO] [stderr] Downloaded half v1.8.2 [INFO] [stderr] Downloaded ciborium v0.2.1 [INFO] [stderr] Downloaded textwrap v0.16.0 [INFO] [stderr] Downloaded num-traits v0.2.16 [INFO] [stderr] Downloaded serde v1.0.188 [INFO] [stderr] Downloaded js-sys v0.3.64 [INFO] [stderr] Downloaded bumpalo v3.13.0 [INFO] [stderr] Downloaded criterion v0.4.0 [INFO] [stderr] Downloaded memchr v2.6.3 [INFO] [stderr] Downloaded serde_json v1.0.105 [INFO] [stderr] Downloaded rayon-core v1.11.0 [INFO] [stderr] Downloaded plotters v0.3.5 [INFO] [stderr] Downloaded rayon v1.7.0 [INFO] [stderr] Downloaded aho-corasick v1.0.5 [INFO] [stderr] Downloaded wasm-bindgen v0.2.87 [INFO] [stderr] Downloaded syn v2.0.31 [INFO] [stderr] Downloaded regex v1.9.5 [INFO] [stderr] Downloaded fiat-crypto v0.2.1 [INFO] [stderr] Downloaded regex-automata v0.3.8 [INFO] [stderr] Downloaded libc v0.2.147 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 70e9e2c42e2cdff9ac8548557f0775832b658ab08a709f1afbe500f8e39d85e3 [INFO] running `Command { std: "docker" "start" "-a" "70e9e2c42e2cdff9ac8548557f0775832b658ab08a709f1afbe500f8e39d85e3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "70e9e2c42e2cdff9ac8548557f0775832b658ab08a709f1afbe500f8e39d85e3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "70e9e2c42e2cdff9ac8548557f0775832b658ab08a709f1afbe500f8e39d85e3", kill_on_drop: false }` [INFO] [stdout] 70e9e2c42e2cdff9ac8548557f0775832b658ab08a709f1afbe500f8e39d85e3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 510bb03a3a7186fa2241507fc8a6599371ac2af523283af70c232951c1d50472 [INFO] running `Command { std: "docker" "start" "-a" "510bb03a3a7186fa2241507fc8a6599371ac2af523283af70c232951c1d50472", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.66 [INFO] [stderr] Compiling libc v0.2.147 [INFO] [stderr] Compiling serde v1.0.188 [INFO] [stderr] Compiling crossbeam-utils v0.8.16 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling crossbeam-epoch v0.9.15 [INFO] [stderr] Compiling num-traits v0.2.16 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Checking either v1.9.0 [INFO] [stderr] Compiling serde_json v1.0.105 [INFO] [stderr] Compiling rayon-core v1.11.0 [INFO] [stderr] Compiling curve25519-dalek v4.1.3 [INFO] [stderr] Checking half v1.8.2 [INFO] [stderr] Checking os_str_bytes v6.5.1 [INFO] [stderr] Checking hashbrown v0.12.3 [INFO] [stderr] Checking regex-syntax v0.7.5 [INFO] [stderr] Checking plotters-backend v0.3.5 [INFO] [stderr] Checking getrandom v0.2.10 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking crossbeam-channel v0.5.8 [INFO] [stderr] Compiling syn v2.0.31 [INFO] [stderr] Checking crossbeam-deque v0.8.3 [INFO] [stderr] Checking ciborium-io v0.2.1 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking ciborium-ll v0.2.1 [INFO] [stderr] Checking plotters-svg v0.3.5 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking clap_lex v0.2.4 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Checking textwrap v0.16.0 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Checking byteorder v1.4.3 [INFO] [stderr] Checking cast v0.3.0 [INFO] [stderr] Checking subtle v2.5.0 [INFO] [stderr] Checking walkdir v2.4.0 [INFO] [stderr] Checking regex-automata v0.3.8 [INFO] [stderr] Checking rayon v1.7.0 [INFO] [stderr] Checking clap v3.2.25 [INFO] [stderr] Checking plotters v0.3.5 [INFO] [stderr] Checking sha2 v0.10.7 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking getrandom_or_panic v0.0.3 [INFO] [stderr] Checking oorandom v11.1.3 [INFO] [stderr] Checking anes v0.1.6 [INFO] [stderr] Checking arrayvec v0.7.4 [INFO] [stderr] Checking sha3 v0.10.8 [INFO] [stderr] Checking hex-literal v0.4.1 [INFO] [stderr] Checking criterion-plot v0.5.0 [INFO] [stderr] Checking regex v1.9.5 [INFO] [stderr] Compiling serde_derive v1.0.188 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Compiling curve25519-dalek-derive v0.1.0 [INFO] [stderr] Checking zeroize v1.6.0 [INFO] [stderr] Checking merlin v3.0.0 [INFO] [stderr] Checking ciborium v0.2.1 [INFO] [stderr] Checking serde_bytes v0.11.12 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking schnorrkel v0.11.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: unexpected `cfg` condition value: `rand_chacha` [INFO] [stdout] --> src/context.rs:402:7 [INFO] [stdout] | [INFO] [stdout] 402 | #[cfg(feature = "rand_chacha")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `aead`, `alloc`, `asm`, `cfg-if`, `default`, `failure`, `getrandom`, `nightly`, `preaudit_deprecated`, `serde`, `serde_bytes`, `serde_crate`, and `std` [INFO] [stdout] = help: consider adding `rand_chacha` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `rand_chacha` [INFO] [stdout] --> src/context.rs:406:7 [INFO] [stdout] | [INFO] [stdout] 406 | #[cfg(feature = "rand_chacha")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `aead`, `alloc`, `asm`, `cfg-if`, `default`, `failure`, `getrandom`, `nightly`, `preaudit_deprecated`, `serde`, `serde_bytes`, `serde_crate`, and `std` [INFO] [stdout] = help: consider adding `rand_chacha` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `rand_chacha` [INFO] [stdout] --> src/vrf.rs:382:11 [INFO] [stdout] | [INFO] [stdout] 382 | #[cfg(feature = "rand_chacha")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `aead`, `alloc`, `asm`, `cfg-if`, `default`, `failure`, `getrandom`, `nightly`, `preaudit_deprecated`, `serde`, `serde_bytes`, `serde_crate`, and `std` [INFO] [stdout] = help: consider adding `rand_chacha` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/cert.rs:65:1 [INFO] [stdout] | [INFO] [stdout] 65 | / /// TODO: Serde serialization/deserialization [INFO] [stdout] 66 | | [INFO] [stdout] | |_^ [INFO] [stdout] 67 | impl From for AdaptorCertPublic { [INFO] [stdout] | - the comment documents this implementation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/cert.rs:82:1 [INFO] [stdout] | [INFO] [stdout] 82 | / /// TODO: Serde serialization/deserialization [INFO] [stdout] 83 | | [INFO] [stdout] | |_^ [INFO] [stdout] 84 | impl AdaptorCertPublic { [INFO] [stdout] | - the comment documents this implementation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/keys.rs:784:9 [INFO] [stdout] | [INFO] [stdout] 784 | /// first a `SecretKey` and then the corresponding ristretto [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 784 | /// first a `SecretKey` and then the corresponding ristretto [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/keys.rs:785:9 [INFO] [stdout] | [INFO] [stdout] 785 | /// `PublicKey`. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 785 | /// `PublicKey`. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/batch.rs:358:12 [INFO] [stdout] | [INFO] [stdout] 358 | if bytes.len() % 32 != 0 || bytes.len() < 64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!bytes.len().is_multiple_of(32)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/musig.rs:247:12 [INFO] [stdout] | [INFO] [stdout] 247 | if self.0.len() % 32 == 0 { Ok(()) } else { Err(SignatureError::PointDecompressionError) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `self.0.len().is_multiple_of(32)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/musig.rs:696:25 [INFO] [stdout] | [INFO] [stdout] 696 | let s: Scalar = self.Rs.iter() [INFO] [stdout] | _________________________^ [INFO] [stdout] 697 | | .filter_map( |(_pk,cor)| match cor { [INFO] [stdout] 698 | | CoR::Commit(_) => None, [INFO] [stdout] 699 | | CoR::Reveal(_) => panic!("Internal error, MuSig::uncosigned broken."), [INFO] [stdout] 700 | | CoR::Cosigned { s, .. } => Some(s), [INFO] [stdout] 701 | | CoR::Collect { .. } => panic!("Collect found in Cosign phase."), [INFO] [stdout] 702 | | } ).sum(); [INFO] [stdout] | |_______________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 696 ~ let s: Scalar = self.Rs.values().filter_map(|cor| match cor { [INFO] [stdout] 697 + CoR::Commit(_) => None, [INFO] [stdout] 698 + CoR::Reveal(_) => panic!("Internal error, MuSig::uncosigned broken."), [INFO] [stdout] 699 + CoR::Cosigned { s, .. } => Some(s), [INFO] [stdout] 700 + CoR::Collect { .. } => panic!("Collect found in Cosign phase."), [INFO] [stdout] 701 ~ }).sum(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking criterion v0.4.0 [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> benches/schnorr_benchmarks.rs:65:20 [INFO] [stdout] | [INFO] [stdout] 65 | b.iter(|| Keypair::generate()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Keypair::generate` [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: unexpected `cfg` condition value: `rand_chacha` [INFO] [stdout] --> src/context.rs:402:7 [INFO] [stdout] | [INFO] [stdout] 402 | #[cfg(feature = "rand_chacha")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `aead`, `alloc`, `asm`, `cfg-if`, `default`, `failure`, `getrandom`, `nightly`, `preaudit_deprecated`, `serde`, `serde_bytes`, `serde_crate`, and `std` [INFO] [stdout] = help: consider adding `rand_chacha` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `rand_chacha` [INFO] [stdout] --> src/context.rs:406:7 [INFO] [stdout] | [INFO] [stdout] 406 | #[cfg(feature = "rand_chacha")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `aead`, `alloc`, `asm`, `cfg-if`, `default`, `failure`, `getrandom`, `nightly`, `preaudit_deprecated`, `serde`, `serde_bytes`, `serde_crate`, and `std` [INFO] [stdout] = help: consider adding `rand_chacha` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `rand_chacha` [INFO] [stdout] --> src/vrf.rs:382:11 [INFO] [stdout] | [INFO] [stdout] 382 | #[cfg(feature = "rand_chacha")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `aead`, `alloc`, `asm`, `cfg-if`, `default`, `failure`, `getrandom`, `nightly`, `preaudit_deprecated`, `serde`, `serde_bytes`, `serde_crate`, and `std` [INFO] [stdout] = help: consider adding `rand_chacha` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/cert.rs:65:1 [INFO] [stdout] | [INFO] [stdout] 65 | / /// TODO: Serde serialization/deserialization [INFO] [stdout] 66 | | [INFO] [stdout] | |_^ [INFO] [stdout] 67 | impl From for AdaptorCertPublic { [INFO] [stdout] | - the comment documents this implementation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/cert.rs:82:1 [INFO] [stdout] | [INFO] [stdout] 82 | / /// TODO: Serde serialization/deserialization [INFO] [stdout] 83 | | [INFO] [stdout] | |_^ [INFO] [stdout] 84 | impl AdaptorCertPublic { [INFO] [stdout] | - the comment documents this implementation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[u8; 32]` which implements the `Copy` trait [INFO] [stdout] --> src/scalars.rs:50:21 [INFO] [stdout] | [INFO] [stdout] 50 | let mut y = x.clone(); [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `x` [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 `[u8; 32]` which implements the `Copy` trait [INFO] [stdout] --> src/scalars.rs:57:21 [INFO] [stdout] | [INFO] [stdout] 57 | let mut y = x.clone(); [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `x` [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: doc list item without indentation [INFO] [stdout] --> src/keys.rs:784:9 [INFO] [stdout] | [INFO] [stdout] 784 | /// first a `SecretKey` and then the corresponding ristretto [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 784 | /// first a `SecretKey` and then the corresponding ristretto [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/keys.rs:785:9 [INFO] [stdout] | [INFO] [stdout] 785 | /// `PublicKey`. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 785 | /// `PublicKey`. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/sign.rs:461:13 [INFO] [stdout] | [INFO] [stdout] 461 | !keypair.verify(ctx.bytes(&good), &bad_sig).is_ok(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `keypair.verify(ctx.bytes(&good), &bad_sig).is_err()` [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: this boolean expression can be simplified [INFO] [stdout] --> src/sign.rs:465:13 [INFO] [stdout] | [INFO] [stdout] 465 | !keypair.verify(ctx.bytes(&bad), &good_sig).is_ok(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `keypair.verify(ctx.bytes(&bad), &good_sig).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/sign.rs:469:13 [INFO] [stdout] | [INFO] [stdout] 469 | !keypair.verify(signing_context(b"bad").bytes(&good), &good_sig).is_ok(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `keypair.verify(signing_context(b"bad").bytes(&good), &good_sig).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/sign.rs:439:9 [INFO] [stdout] | [INFO] [stdout] 439 | let good_sig: Signature; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 450 | good_sig = keypair.sign(ctx.bytes(&good)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `good_sig` here [INFO] [stdout] | [INFO] [stdout] 439 ~ [INFO] [stdout] 440 | let bad_sig: Signature; [INFO] [stdout] ... [INFO] [stdout] 449 | let keypair = Keypair::generate_with(&mut csprng); [INFO] [stdout] 450 ~ let good_sig: Signature = keypair.sign(ctx.bytes(&good)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/sign.rs:440:9 [INFO] [stdout] | [INFO] [stdout] 440 | let bad_sig: Signature; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 451 | bad_sig = keypair.sign(ctx.bytes(&bad)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `bad_sig` here [INFO] [stdout] | [INFO] [stdout] 440 ~ [INFO] [stdout] 441 | [INFO] [stdout] ... [INFO] [stdout] 450 | good_sig = keypair.sign(ctx.bytes(&good)); [INFO] [stdout] 451 ~ let bad_sig: Signature = keypair.sign(ctx.bytes(&bad)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/sign.rs:450:43 [INFO] [stdout] | [INFO] [stdout] 450 | good_sig = keypair.sign(ctx.bytes(&good)); [INFO] [stdout] | ^^^^^ help: change this to: `good` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/sign.rs:451:42 [INFO] [stdout] | [INFO] [stdout] 451 | bad_sig = keypair.sign(ctx.bytes(&bad)); [INFO] [stdout] | ^^^^ help: change this to: `bad` [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/sign.rs:457:38 [INFO] [stdout] | [INFO] [stdout] 457 | keypair.verify(ctx.bytes(&good), &good_sig).is_ok(), [INFO] [stdout] | ^^^^^ help: change this to: `good` [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/sign.rs:461:39 [INFO] [stdout] | [INFO] [stdout] 461 | !keypair.verify(ctx.bytes(&good), &bad_sig).is_ok(), [INFO] [stdout] | ^^^^^ help: change this to: `good` [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/sign.rs:465:39 [INFO] [stdout] | [INFO] [stdout] 465 | !keypair.verify(ctx.bytes(&bad), &good_sig).is_ok(), [INFO] [stdout] | ^^^^ help: change this to: `bad` [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/sign.rs:469:59 [INFO] [stdout] | [INFO] [stdout] 469 | !keypair.verify(signing_context(b"bad").bytes(&good), &good_sig).is_ok(), [INFO] [stdout] | ^^^^^ help: change this to: `good` [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 boolean expression can be simplified [INFO] [stdout] --> src/sign.rs:505:13 [INFO] [stdout] | [INFO] [stdout] 505 | !keypair.verify(ctx.xof(prehashed_good.clone()), &bad_sig).is_ok(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `keypair.verify(ctx.xof(prehashed_good.clone()), &bad_sig).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/sign.rs:509:13 [INFO] [stdout] | [INFO] [stdout] 509 | !keypair.verify(ctx.xof(prehashed_bad.clone()), &good_sig).is_ok(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `keypair.verify(ctx.xof(prehashed_bad.clone()), &good_sig).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/sign.rs:513:13 [INFO] [stdout] | [INFO] [stdout] 513 | !keypair.verify(signing_context(b"oops").xof(prehashed_good), &good_sig).is_ok(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `keypair.verify(signing_context(b"oops").xof(prehashed_good), &good_sig).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/sign.rs:477:9 [INFO] [stdout] | [INFO] [stdout] 477 | let good_sig: Signature; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 492 | good_sig = keypair.sign(ctx.xof(prehashed_good.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `good_sig` here [INFO] [stdout] | [INFO] [stdout] 477 ~ [INFO] [stdout] 478 | let bad_sig: Signature; [INFO] [stdout] ... [INFO] [stdout] 491 | let keypair = Keypair::generate_with(&mut csprng); [INFO] [stdout] 492 ~ let good_sig: Signature = keypair.sign(ctx.xof(prehashed_good.clone())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/sign.rs:478:9 [INFO] [stdout] | [INFO] [stdout] 478 | let bad_sig: Signature; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 493 | bad_sig = keypair.sign(ctx.xof(prehashed_bad.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `bad_sig` here [INFO] [stdout] | [INFO] [stdout] 478 ~ [INFO] [stdout] 479 | [INFO] [stdout] ... [INFO] [stdout] 492 | good_sig = keypair.sign(ctx.xof(prehashed_good.clone())); [INFO] [stdout] 493 ~ let bad_sig: Signature = keypair.sign(ctx.xof(prehashed_bad.clone())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/vrf.rs:1063:75 [INFO] [stdout] | [INFO] [stdout] 1063 | proof1batchable.shorten_vrf(&keypair1.public, ctx.bytes(msg), &out1).unwrap(), [INFO] [stdout] | ^^^^^ help: change this to: `out1` [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/vrf.rs:1068:41 [INFO] [stdout] | [INFO] [stdout] 1068 | .vrf_verify(ctx.bytes(msg), &out1, &proof1) [INFO] [stdout] | ^^^^^ help: change this to: `out1` [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/vrf.rs:1078:64 [INFO] [stdout] | [INFO] [stdout] 1078 | keypair1.public.vrf_verify(ctx.bytes(b"not meow"), &out1, &proof1).is_err(), [INFO] [stdout] | ^^^^^ help: change this to: `out1` [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/vrf.rs:1084:56 [INFO] [stdout] | [INFO] [stdout] 1084 | keypair2.public.vrf_verify(ctx.bytes(msg), &out1, &proof1).is_err(), [INFO] [stdout] | ^^^^^ help: change this to: `out1` [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/vrf.rs:1103:75 [INFO] [stdout] | [INFO] [stdout] 1103 | .shorten_vrf(&keypair1.public, Malleable(ctx.bytes(msg)), &out1) [INFO] [stdout] | ^^^^^ help: change this to: `out1` [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/vrf.rs:1109:52 [INFO] [stdout] | [INFO] [stdout] 1109 | .vrf_verify(Malleable(ctx.bytes(msg)), &out1, &proof1) [INFO] [stdout] | ^^^^^ help: change this to: `out1` [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/vrf.rs:1124:64 [INFO] [stdout] | [INFO] [stdout] 1124 | .vrf_verify(Malleable(ctx.bytes(b"not meow")), &out1, &proof1) [INFO] [stdout] | ^^^^^ help: change this to: `out1` [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/vrf.rs:1131:67 [INFO] [stdout] | [INFO] [stdout] 1131 | keypair2.public.vrf_verify(Malleable(ctx.bytes(msg)), &out1, &proof1).is_err(), [INFO] [stdout] | ^^^^^ help: change this to: `out1` [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/vrf.rs:1178:43 [INFO] [stdout] | [INFO] [stdout] 1178 | .vrfs_verify(ts(), &outs, &proof) [INFO] [stdout] | ^^^^^^ help: change this to: `proof` [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/vrf.rs:1186:51 [INFO] [stdout] | [INFO] [stdout] 1186 | k.public.vrfs_verify(ts(), &outs, &proof).is_err(), [INFO] [stdout] | ^^^^^^ help: change this to: `proof` [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/vrf.rs:1193:51 [INFO] [stdout] | [INFO] [stdout] 1193 | k.public.vrfs_verify(ts(), &outs, &proof).is_err(), [INFO] [stdout] | ^^^^^^ help: change this to: `proof` [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 `clone` on type `PublicKey` which implements the `Copy` trait [INFO] [stdout] --> src/vrf.rs:1211:28 [INFO] [stdout] | [INFO] [stdout] 1211 | .map(|keypair| keypair.public.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `keypair.public` [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 boolean expression can be simplified [INFO] [stdout] --> src/derive.rs:356:21 [INFO] [stdout] | [INFO] [stdout] 356 | !extended_public_key.key.verify(ctx.xof(h.clone()), &bad_sig).is_ok(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `extended_public_key.key.verify(ctx.xof(h.clone()), &bad_sig).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/derive.rs:360:21 [INFO] [stdout] | [INFO] [stdout] 360 | !extended_public_key.key.verify(ctx.xof(h_bad), &good_sig).is_ok(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `extended_public_key.key.verify(ctx.xof(h_bad), &good_sig).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PublicKey` which implements the `Copy` trait [INFO] [stdout] --> src/derive.rs:325:58 [INFO] [stdout] | [INFO] [stdout] 325 | let mut extended_public_key = ExtendedKey { key: key.public.clone(), chaincode }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `key.public` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/batch.rs:358:12 [INFO] [stdout] | [INFO] [stdout] 358 | if bytes.len() % 32 != 0 || bytes.len() < 64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!bytes.len().is_multiple_of(32)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `messages` [INFO] [stdout] --> src/batch.rs:434:18 [INFO] [stdout] | [INFO] [stdout] 434 | for i in 0..messages.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 434 - for i in 0..messages.len() { [INFO] [stdout] 434 + for (i, ) in messages.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/musig.rs:247:12 [INFO] [stdout] | [INFO] [stdout] 247 | if self.0.len() % 32 == 0 { Ok(()) } else { Err(SignatureError::PointDecompressionError) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `self.0.len().is_multiple_of(32)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/musig.rs:696:25 [INFO] [stdout] | [INFO] [stdout] 696 | let s: Scalar = self.Rs.iter() [INFO] [stdout] | _________________________^ [INFO] [stdout] 697 | | .filter_map( |(_pk,cor)| match cor { [INFO] [stdout] 698 | | CoR::Commit(_) => None, [INFO] [stdout] 699 | | CoR::Reveal(_) => panic!("Internal error, MuSig::uncosigned broken."), [INFO] [stdout] 700 | | CoR::Cosigned { s, .. } => Some(s), [INFO] [stdout] 701 | | CoR::Collect { .. } => panic!("Collect found in Cosign phase."), [INFO] [stdout] 702 | | } ).sum(); [INFO] [stdout] | |_______________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 696 ~ let s: Scalar = self.Rs.values().filter_map(|cor| match cor { [INFO] [stdout] 697 + CoR::Commit(_) => None, [INFO] [stdout] 698 + CoR::Reveal(_) => panic!("Internal error, MuSig::uncosigned broken."), [INFO] [stdout] 699 + CoR::Cosigned { s, .. } => Some(s), [INFO] [stdout] 700 + CoR::Collect { .. } => panic!("Collect found in Cosign phase."), [INFO] [stdout] 701 ~ }).sum(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PublicKey` which implements the `Copy` trait [INFO] [stdout] --> src/musig.rs:767:64 [INFO] [stdout] | [INFO] [stdout] 767 | let btm: BTreeMap = vec.iter().map( |x| (x.clone(),()) ).collect(); [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*x` [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: using `clone` on type `PublicKey` which implements the `Copy` trait [INFO] [stdout] --> src/musig.rs:784:49 [INFO] [stdout] | [INFO] [stdout] 784 | assert!( j.add_their_commitment(keypairs[i].public.clone(),r) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `keypairs[i].public` [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: using `clone` on type `PublicKey` which implements the `Copy` trait [INFO] [stdout] --> src/musig.rs:794:36 [INFO] [stdout] | [INFO] [stdout] 794 | j.add_their_reveal(keypairs[i].public.clone(),r.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `keypairs[i].public` [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: using `clone` on type `PublicKey` which implements the `Copy` trait [INFO] [stdout] --> src/musig.rs:806:41 [INFO] [stdout] | [INFO] [stdout] 806 | j.add_their_cosignature(keypairs[i].public.clone(),r).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `keypairs[i].public` [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: using `clone` on type `PublicKey` which implements the `Copy` trait [INFO] [stdout] --> src/musig.rs:815:19 [INFO] [stdout] | [INFO] [stdout] 815 | c.add(keypairs[i].public.clone(),reveal_msgs[i].clone(),cosign_msgs[i].clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `keypairs[i].public` [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: using `clone` on type `Cosignature` which implements the `Copy` trait [INFO] [stdout] --> src/musig.rs:815:69 [INFO] [stdout] | [INFO] [stdout] 815 | c.add(keypairs[i].public.clone(),reveal_msgs[i].clone(),cosign_msgs[i].clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `cosign_msgs[i]` [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: the loop variable `i` is only used to index `cosigns` [INFO] [stdout] --> src/musig.rs:820:18 [INFO] [stdout] | [INFO] [stdout] 820 | for i in 0..cosigns.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 820 - for i in 0..cosigns.len() { [INFO] [stdout] 820 + for in &cosigns { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.23s [INFO] running `Command { std: "docker" "inspect" "510bb03a3a7186fa2241507fc8a6599371ac2af523283af70c232951c1d50472", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "510bb03a3a7186fa2241507fc8a6599371ac2af523283af70c232951c1d50472", kill_on_drop: false }` [INFO] [stdout] 510bb03a3a7186fa2241507fc8a6599371ac2af523283af70c232951c1d50472