[INFO] cloning repository https://github.com/JStarL/bls-signatures-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JStarL/bls-signatures-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJStarL%2Fbls-signatures-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJStarL%2Fbls-signatures-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 76b6204e75cc6142b8323229bcc5222e6803e642 [INFO] linting JStarL/bls-signatures-rust against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJStarL%2Fbls-signatures-rust" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/JStarL/bls-signatures-rust [INFO] finished tweaking git repo https://github.com/JStarL/bls-signatures-rust [INFO] tweaked toml for git repo https://github.com/JStarL/bls-signatures-rust written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/JStarL/bls-signatures-rust 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 git repo https://github.com/JStarL/bls-signatures-rust 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] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded bitcoin_hashes v0.14.0 [INFO] [stderr] Downloaded bitcoin-io v0.1.2 [INFO] [stderr] Downloaded rand_xorshift v0.3.0 [INFO] [stderr] Downloaded unicode-ident v1.0.12 [INFO] [stderr] Downloaded hermit-abi v0.3.9 [INFO] [stderr] Downloaded num_cpus v1.16.0 [INFO] [stderr] Downloaded byte-slice-cast v1.2.2 [INFO] [stderr] Downloaded hex-conservative v0.2.1 [INFO] [stderr] Downloaded zeroize v1.8.1 [INFO] [stderr] Downloaded wyz v0.5.1 [INFO] [stderr] Downloaded blstrs v0.7.1 [INFO] [stderr] Downloaded group v0.13.0 [INFO] [stderr] Downloaded serde v1.0.209 [INFO] [stderr] Downloaded serde_derive v1.0.209 [INFO] [stderr] Downloaded secp256k1 v0.29.1 [INFO] [stderr] Downloaded cc v1.1.14 [INFO] [stderr] Downloaded ff v0.13.0 [INFO] [stderr] Downloaded funty v2.0.0 [INFO] [stderr] Downloaded tap v1.0.1 [INFO] [stderr] Downloaded pairing v0.23.0 [INFO] [stderr] Downloaded bitvec v1.0.1 [INFO] [stderr] Downloaded threadpool v1.8.1 [INFO] [stderr] Downloaded radium v0.7.0 [INFO] [stderr] Downloaded syn v2.0.76 [INFO] [stderr] Downloaded blst v0.3.13 [INFO] [stderr] Downloaded libc v0.2.158 [INFO] [stderr] Downloaded secp256k1-sys v0.10.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] fe80a2565247299154be35bbc0c4f9825057aa673928b117f3aca20debad8887 [INFO] running `Command { std: "docker" "start" "-a" "fe80a2565247299154be35bbc0c4f9825057aa673928b117f3aca20debad8887", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fe80a2565247299154be35bbc0c4f9825057aa673928b117f3aca20debad8887", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fe80a2565247299154be35bbc0c4f9825057aa673928b117f3aca20debad8887", kill_on_drop: false }` [INFO] [stdout] fe80a2565247299154be35bbc0c4f9825057aa673928b117f3aca20debad8887 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] eaff97842d48cbdc5e8ee7e280294fba6318b9f0a48aa94bc8d11533af50a343 [INFO] running `Command { std: "docker" "start" "-a" "eaff97842d48cbdc5e8ee7e280294fba6318b9f0a48aa94bc8d11533af50a343", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling libc v0.2.158 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling radium v0.7.0 [INFO] [stderr] Checking tap v1.0.1 [INFO] [stderr] Checking funty v2.0.0 [INFO] [stderr] Compiling cc v1.1.14 [INFO] [stderr] Checking wyz v0.5.1 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Compiling serde v1.0.209 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking bitcoin-io v0.1.2 [INFO] [stderr] Checking byte-slice-cast v1.2.2 [INFO] [stderr] Checking hex-conservative v0.2.1 [INFO] [stderr] Checking bitvec v1.0.1 [INFO] [stderr] Checking bitcoin_hashes v0.14.0 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking threadpool v1.8.1 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_xorshift v0.3.0 [INFO] [stderr] Compiling syn v2.0.76 [INFO] [stderr] Compiling secp256k1-sys v0.10.1 [INFO] [stderr] Compiling blst v0.3.13 [INFO] [stderr] Checking ff v0.13.0 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Compiling serde_derive v1.0.209 [INFO] [stderr] Checking zeroize v1.8.1 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking group v0.13.0 [INFO] [stderr] Checking secp256k1 v0.29.1 [INFO] [stderr] Checking pairing v0.23.0 [INFO] [stderr] Checking blstrs v0.7.1 [INFO] [stderr] Checking bls-proto-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:115:74 [INFO] [stdout] | [INFO] [stdout] 115 | fn ecdsa_sign_all(secp: &Secp256k1, message: &Message, secret_keys: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 115 - fn ecdsa_sign_all(secp: &Secp256k1, message: &Message, secret_keys: &Vec) -> Vec { [INFO] [stdout] 115 + fn ecdsa_sign_all(secp: &Secp256k1, message: &Message, secret_keys: &[SecretKey]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `secret_keys` [INFO] [stdout] --> src/main.rs:118:14 [INFO] [stdout] | [INFO] [stdout] 118 | for i in 0..BATCH_SIZE { [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 [INFO] [stdout] | [INFO] [stdout] 118 - for i in 0..BATCH_SIZE { [INFO] [stdout] 118 + for in secret_keys.iter().take(BATCH_SIZE) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:119:41 [INFO] [stdout] | [INFO] [stdout] 119 | signatures.push(secp.sign_ecdsa(&message, &secret_keys[i])); [INFO] [stdout] | ^^^^^^^^ help: change this to: `message` [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 boolean expression can be simplified [INFO] [stdout] --> src/main.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 128 | if !secp.verify_ecdsa(&message, &signatures[i], &public_keys[i]).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `secp.verify_ecdsa(&message, &signatures[i], &public_keys[i]).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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:125:75 [INFO] [stdout] | [INFO] [stdout] 125 | fn ecdsa_verify_all(secp: &Secp256k1, message: &Message, signatures: &Vec, public_keys: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 125 - fn ecdsa_verify_all(secp: &Secp256k1, message: &Message, signatures: &Vec, public_keys: &Vec) -> bool { [INFO] [stdout] 125 + fn ecdsa_verify_all(secp: &Secp256k1, message: &Message, signatures: &[Signature], public_keys: &Vec) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:125:105 [INFO] [stdout] | [INFO] [stdout] 125 | fn ecdsa_verify_all(secp: &Secp256k1, message: &Message, signatures: &Vec, public_keys: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 125 - fn ecdsa_verify_all(secp: &Secp256k1, message: &Message, signatures: &Vec, public_keys: &Vec) -> bool { [INFO] [stdout] 125 + fn ecdsa_verify_all(secp: &Secp256k1, message: &Message, signatures: &Vec, public_keys: &[PublicKey]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:128:31 [INFO] [stdout] | [INFO] [stdout] 128 | if !secp.verify_ecdsa(&message, &signatures[i], &public_keys[i]).is_ok() { [INFO] [stdout] | ^^^^^^^^ help: change this to: `message` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:239:42 [INFO] [stdout] | [INFO] [stdout] 239 | fn bls_sign_all(msg: &[u8], secret_keys: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 239 - fn bls_sign_all(msg: &[u8], secret_keys: &Vec) -> Vec { [INFO] [stdout] 239 + fn bls_sign_all(msg: &[u8], secret_keys: &[Scalar]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `secret_keys` [INFO] [stdout] --> src/main.rs:243:14 [INFO] [stdout] | [INFO] [stdout] 243 | for i in 0..BATCH_SIZE { [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] 243 - for i in 0..BATCH_SIZE { [INFO] [stdout] 243 + for in secret_keys.iter().take(BATCH_SIZE) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:271:37 [INFO] [stdout] | [INFO] [stdout] 271 | fn agrgegate_signatures(signatures: &Vec) -> G2Affine { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 271 - fn agrgegate_signatures(signatures: &Vec) -> G2Affine { [INFO] [stdout] 271 + fn agrgegate_signatures(signatures: &[G2Affine]) -> G2Affine { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:283:66 [INFO] [stdout] | [INFO] [stdout] 283 | fn verify_aggregate(agg_sig: &G2Affine, msg: &[u8], public_keys: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 283 - fn verify_aggregate(agg_sig: &G2Affine, msg: &[u8], public_keys: &Vec) -> bool { [INFO] [stdout] 283 + fn verify_aggregate(agg_sig: &G2Affine, msg: &[u8], public_keys: &[G1Affine]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `G2Affine` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:289:17 [INFO] [stdout] | [INFO] [stdout] 289 | let h = hashed_msg.clone().into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `hashed_msg` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:290:38 [INFO] [stdout] | [INFO] [stdout] 290 | Bls12::multi_miller_loop(&[ (&pk, &h) ]) [INFO] [stdout] | ^^^ help: change this to: `pk` [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 `G2Affine` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:296:51 [INFO] [stdout] | [INFO] [stdout] 296 | ml += Bls12::multi_miller_loop(&[ ( &g1_neg, &agg_sig.clone().into() ) ]); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try dereferencing it: `(*agg_sig)` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:115:74 [INFO] [stdout] | [INFO] [stdout] 115 | fn ecdsa_sign_all(secp: &Secp256k1, message: &Message, secret_keys: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 115 - fn ecdsa_sign_all(secp: &Secp256k1, message: &Message, secret_keys: &Vec) -> Vec { [INFO] [stdout] 115 + fn ecdsa_sign_all(secp: &Secp256k1, message: &Message, secret_keys: &[SecretKey]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `secret_keys` [INFO] [stdout] --> src/main.rs:118:14 [INFO] [stdout] | [INFO] [stdout] 118 | for i in 0..BATCH_SIZE { [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 [INFO] [stdout] | [INFO] [stdout] 118 - for i in 0..BATCH_SIZE { [INFO] [stdout] 118 + for in secret_keys.iter().take(BATCH_SIZE) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:119:41 [INFO] [stdout] | [INFO] [stdout] 119 | signatures.push(secp.sign_ecdsa(&message, &secret_keys[i])); [INFO] [stdout] | ^^^^^^^^ help: change this to: `message` [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 boolean expression can be simplified [INFO] [stdout] --> src/main.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 128 | if !secp.verify_ecdsa(&message, &signatures[i], &public_keys[i]).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `secp.verify_ecdsa(&message, &signatures[i], &public_keys[i]).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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:125:75 [INFO] [stdout] | [INFO] [stdout] 125 | fn ecdsa_verify_all(secp: &Secp256k1, message: &Message, signatures: &Vec, public_keys: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 125 - fn ecdsa_verify_all(secp: &Secp256k1, message: &Message, signatures: &Vec, public_keys: &Vec) -> bool { [INFO] [stdout] 125 + fn ecdsa_verify_all(secp: &Secp256k1, message: &Message, signatures: &[Signature], public_keys: &Vec) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:125:105 [INFO] [stdout] | [INFO] [stdout] 125 | fn ecdsa_verify_all(secp: &Secp256k1, message: &Message, signatures: &Vec, public_keys: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 125 - fn ecdsa_verify_all(secp: &Secp256k1, message: &Message, signatures: &Vec, public_keys: &Vec) -> bool { [INFO] [stdout] 125 + fn ecdsa_verify_all(secp: &Secp256k1, message: &Message, signatures: &Vec, public_keys: &[PublicKey]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:128:31 [INFO] [stdout] | [INFO] [stdout] 128 | if !secp.verify_ecdsa(&message, &signatures[i], &public_keys[i]).is_ok() { [INFO] [stdout] | ^^^^^^^^ help: change this to: `message` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:239:42 [INFO] [stdout] | [INFO] [stdout] 239 | fn bls_sign_all(msg: &[u8], secret_keys: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 239 - fn bls_sign_all(msg: &[u8], secret_keys: &Vec) -> Vec { [INFO] [stdout] 239 + fn bls_sign_all(msg: &[u8], secret_keys: &[Scalar]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `secret_keys` [INFO] [stdout] --> src/main.rs:243:14 [INFO] [stdout] | [INFO] [stdout] 243 | for i in 0..BATCH_SIZE { [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] 243 - for i in 0..BATCH_SIZE { [INFO] [stdout] 243 + for in secret_keys.iter().take(BATCH_SIZE) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:271:37 [INFO] [stdout] | [INFO] [stdout] 271 | fn agrgegate_signatures(signatures: &Vec) -> G2Affine { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 271 - fn agrgegate_signatures(signatures: &Vec) -> G2Affine { [INFO] [stdout] 271 + fn agrgegate_signatures(signatures: &[G2Affine]) -> G2Affine { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:283:66 [INFO] [stdout] | [INFO] [stdout] 283 | fn verify_aggregate(agg_sig: &G2Affine, msg: &[u8], public_keys: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 283 - fn verify_aggregate(agg_sig: &G2Affine, msg: &[u8], public_keys: &Vec) -> bool { [INFO] [stdout] 283 + fn verify_aggregate(agg_sig: &G2Affine, msg: &[u8], public_keys: &[G1Affine]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `G2Affine` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:289:17 [INFO] [stdout] | [INFO] [stdout] 289 | let h = hashed_msg.clone().into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `hashed_msg` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:290:38 [INFO] [stdout] | [INFO] [stdout] 290 | Bls12::multi_miller_loop(&[ (&pk, &h) ]) [INFO] [stdout] | ^^^ help: change this to: `pk` [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 `G2Affine` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:296:51 [INFO] [stdout] | [INFO] [stdout] 296 | ml += Bls12::multi_miller_loop(&[ ( &g1_neg, &agg_sig.clone().into() ) ]); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try dereferencing it: `(*agg_sig)` [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.90s [INFO] running `Command { std: "docker" "inspect" "eaff97842d48cbdc5e8ee7e280294fba6318b9f0a48aa94bc8d11533af50a343", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "eaff97842d48cbdc5e8ee7e280294fba6318b9f0a48aa94bc8d11533af50a343", kill_on_drop: false }` [INFO] [stdout] eaff97842d48cbdc5e8ee7e280294fba6318b9f0a48aa94bc8d11533af50a343