[INFO] cloning repository https://github.com/EntySquare/snark-lv [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/EntySquare/snark-lv" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEntySquare%2Fsnark-lv", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEntySquare%2Fsnark-lv'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5b8c0fd7094c366f46806b5b6fe7c4ec4f189957 [INFO] linting EntySquare/snark-lv against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEntySquare%2Fsnark-lv" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-6-tc1/source/rust-toolchain [INFO] started tweaking git repo https://github.com/EntySquare/snark-lv [INFO] removed 0 missing tests [INFO] finished tweaking git repo https://github.com/EntySquare/snark-lv [INFO] tweaked toml for git repo https://github.com/EntySquare/snark-lv written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/EntySquare/snark-lv 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/EntySquare/snark-lv 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 crossbeam v0.7.3 [INFO] [stderr] Downloaded cpufeatures v0.1.5 [INFO] [stderr] Downloaded ocl-core-vector v0.1.0 [INFO] [stderr] Downloaded rust-gpu-tools v0.2.2 [INFO] [stderr] Downloaded qutex v0.2.3 [INFO] [stderr] Downloaded sha2 v0.9.5 [INFO] [stderr] Downloaded ff-cl-gen v0.2.0 [INFO] [stderr] Downloaded cast v0.2.7 [INFO] [stderr] Downloaded dirs v2.0.2 [INFO] [stderr] Downloaded plotters-backend v0.3.2 [INFO] [stderr] Downloaded hex-literal v0.3.3 [INFO] [stderr] Downloaded zeroize_derive v1.1.0 [INFO] [stderr] Downloaded zeroize v1.4.1 [INFO] [stderr] Downloaded plotters-svg v0.3.1 [INFO] [stderr] Downloaded half v1.7.1 [INFO] [stderr] Downloaded blstrs v0.2.2 [INFO] [stderr] Downloaded blake2s_simd v0.5.11 [INFO] [stderr] Downloaded cl-sys v0.4.2 [INFO] [stderr] Downloaded cc v1.0.69 [INFO] [stderr] Downloaded itertools v0.10.1 [INFO] [stderr] Downloaded fil-ocl v0.19.6 [INFO] [stderr] Downloaded criterion v0.3.4 [INFO] [stderr] Downloaded backtrace v0.3.60 [INFO] [stderr] Downloaded js-sys v0.3.51 [INFO] [stderr] Downloaded crossbeam-deque v0.8.0 [INFO] [stderr] Downloaded addr2line v0.15.2 [INFO] [stderr] Downloaded object v0.25.3 [INFO] [stderr] Downloaded rustc-demangle v0.1.20 [INFO] [stderr] Downloaded synstructure v0.12.5 [INFO] [stderr] Downloaded semver v1.0.3 [INFO] [stderr] Downloaded blake2b_simd v0.5.11 [INFO] [stderr] Downloaded fff_derive v0.2.2 [INFO] [stderr] Downloaded rand_xorshift v0.2.0 [INFO] [stderr] Downloaded blst v0.3.3 [INFO] [stderr] Downloaded groupy v0.3.1 [INFO] [stderr] Downloaded fil-ocl-core v0.11.4 [INFO] [stderr] Downloaded hkdf v0.10.0 [INFO] [stderr] Downloaded libc v0.2.98 [INFO] [stderr] Downloaded fff v0.2.3 [INFO] [stderr] Downloaded enum_primitive v0.1.1 [INFO] [stderr] Downloaded web-sys v0.3.51 [INFO] [stderr] Downloaded gimli v0.24.0 [INFO] [stderr] Downloaded paired v0.21.0 [INFO] [stderr] Downloaded plotters v0.3.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] f6b391889e519e24822e8c588d8264c00044066a417c9e2080ab5b64e263f737 [INFO] running `Command { std: "docker" "start" "-a" "f6b391889e519e24822e8c588d8264c00044066a417c9e2080ab5b64e263f737", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f6b391889e519e24822e8c588d8264c00044066a417c9e2080ab5b64e263f737", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f6b391889e519e24822e8c588d8264c00044066a417c9e2080ab5b64e263f737", kill_on_drop: false }` [INFO] [stdout] f6b391889e519e24822e8c588d8264c00044066a417c9e2080ab5b64e263f737 [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] dc8021c95972562cd9be50aacf5aa0dda90ee75386f7c919f5a93223b3ef39c6 [INFO] running `Command { std: "docker" "start" "-a" "dc8021c95972562cd9be50aacf5aa0dda90ee75386f7c919f5a93223b3ef39c6", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.98 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling proc-macro2 v1.0.27 [INFO] [stderr] Compiling syn v1.0.73 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling memchr v2.4.0 [INFO] [stderr] Compiling semver v1.0.3 [INFO] [stderr] Compiling serde v1.0.126 [INFO] [stderr] Compiling num-bigint v0.2.6 [INFO] [stderr] Compiling cc v1.0.69 [INFO] [stderr] Checking subtle v2.4.1 [INFO] [stderr] Checking crossbeam-deque v0.8.0 [INFO] [stderr] Checking arrayref v0.3.6 [INFO] [stderr] Checking constant_time_eq v0.1.5 [INFO] [stderr] Checking arrayvec v0.5.2 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking plotters-backend v0.3.2 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Checking unicode-width v0.1.8 [INFO] [stderr] Checking crypto-mac v0.10.1 [INFO] [stderr] Compiling serde_derive v1.0.126 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking blake2b_simd v0.5.11 [INFO] [stderr] Checking itertools v0.9.0 [INFO] [stderr] Checking half v1.7.1 [INFO] [stderr] Checking hmac v0.10.1 [INFO] [stderr] Compiling rustc_version v0.4.0 [INFO] [stderr] Checking clap v2.33.3 [INFO] [stderr] Checking hkdf v0.10.0 [INFO] [stderr] Checking blake2s_simd v0.5.11 [INFO] [stderr] Checking itertools v0.10.1 [INFO] [stderr] Compiling cast v0.2.7 [INFO] [stderr] Checking plotters-svg v0.3.1 [INFO] [stderr] Checking oorandom v11.1.3 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Checking cpufeatures v0.1.5 [INFO] [stderr] Checking sha2 v0.9.5 [INFO] [stderr] Compiling hex-literal v0.3.3 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Checking csv-core v0.1.10 [INFO] [stderr] Checking criterion-plot v0.4.3 [INFO] [stderr] Compiling fff v0.2.3 [INFO] [stderr] Checking getrandom v0.1.16 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking time v0.1.44 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking memmap v0.7.0 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking rayon-core v1.9.1 [INFO] [stderr] Checking regex v1.5.4 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking rand_xorshift v0.2.0 [INFO] [stderr] Checking plotters v0.3.1 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking rayon v1.5.1 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Checking env_logger v0.8.4 [INFO] [stderr] Checking serde_json v1.0.64 [INFO] [stderr] Checking bstr v0.2.16 [INFO] [stderr] Checking serde_cbor v0.11.1 [INFO] [stderr] Checking csv v1.1.6 [INFO] [stderr] Compiling fff_derive v0.2.2 [INFO] [stderr] Compiling thiserror-impl v1.0.26 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking thiserror v1.0.26 [INFO] [stderr] Checking groupy v0.3.1 [INFO] [stderr] Checking paired v0.21.0 [INFO] [stderr] Checking criterion v0.3.4 [INFO] [stderr] Checking bellperson v0.13.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unexpected `cfg` condition name: `features` [INFO] [stdout] --> src/domain.rs:438:32 [INFO] [stdout] | [INFO] [stdout] 438 | #[cfg(any(feature = "pairing", features = "blst"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] help: there is a config with a similar name and value [INFO] [stdout] | [INFO] [stdout] 438 - #[cfg(any(feature = "pairing", features = "blst"))] [INFO] [stdout] 438 + #[cfg(any(feature = "pairing", feature = "blst"))] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/gadgets/test/mod.rs:18:16 [INFO] [stdout] | [INFO] [stdout] 18 | Constraint(usize), [INFO] [stdout] | ---------- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `NamedObject` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 18 - Constraint(usize), [INFO] [stdout] 18 + Constraint(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/util_cs/metric_cs.rs:12:16 [INFO] [stdout] | [INFO] [stdout] 12 | Constraint(usize), [INFO] [stdout] | ---------- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `NamedObject` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 12 - Constraint(usize), [INFO] [stdout] 12 + Constraint(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/util_cs/metric_cs.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | Var(Variable), [INFO] [stdout] | --- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `NamedObject` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 13 - Var(Variable), [INFO] [stdout] 13 + Var(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/util_cs/test_cs.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | Constraint(usize), [INFO] [stdout] | ---------- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `NamedObject` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 13 - Constraint(usize), [INFO] [stdout] 13 + Constraint(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/domain.rs:122:39 [INFO] [stdout] | [INFO] [stdout] 122 | let mut u = g.pow(&[(i * chunk) as u64]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `[(i * chunk) as u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/domain.rs:156:31 [INFO] [stdout] | [INFO] [stdout] 156 | let mut tmp = tau.pow(&[self.coeffs.len() as u64]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `[self.coeffs.len() as u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/domain.rs:213:44 [INFO] [stdout] | [INFO] [stdout] 213 | a.group_sub_assign(&b); [INFO] [stdout] | ^^ help: change this to: `b` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/domain.rs:356:29 [INFO] [stdout] | [INFO] [stdout] 356 | let w_m = omega.pow(&[u64::from(n / (2 * m))]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `[u64::from(n / (2 * m))]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/domain.rs:390:31 [INFO] [stdout] | [INFO] [stdout] 390 | let new_omega = omega.pow(&[num_cpus as u64]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `[num_cpus as u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/domain.rs:398:41 [INFO] [stdout] | [INFO] [stdout] 398 | let omega_j = omega.pow(&[j as u64]); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `[j as u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/domain.rs:399:44 [INFO] [stdout] | [INFO] [stdout] 399 | let omega_step = omega.pow(&[(j as u64) << log_new_n]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `[(j as u64) << log_new_n]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `idx` is used as a loop counter [INFO] [stdout] --> src/domain.rs:427:17 [INFO] [stdout] | [INFO] [stdout] 427 | for a in a { [INFO] [stdout] | ^^^^^^^^^^ help: consider using: `for (idx, a) in (idx * chunk..).zip(a.iter_mut())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/gadgets/test/mod.rs:27:18 [INFO] [stdout] | [INFO] [stdout] 27 | constraints: Vec<( [INFO] [stdout] | __________________^ [INFO] [stdout] 28 | | LinearCombination, [INFO] [stdout] 29 | | LinearCombination, [INFO] [stdout] 30 | | LinearCombination, [INFO] [stdout] 31 | | String, [INFO] [stdout] 32 | | )>, [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedVariable` which implements the `Copy` trait [INFO] [stdout] --> src/gadgets/test/mod.rs:78:28 [INFO] [stdout] | [INFO] [stdout] 78 | to_remove.push(var.clone()) [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*var` [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/gadgets/test/mod.rs:127:24 [INFO] [stdout] | [INFO] [stdout] 127 | tmp.mul_assign(&coeff); [INFO] [stdout] | ^^^^^^ help: change this to: `coeff` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/gadgets/test/mod.rs:145:56 [INFO] [stdout] | [INFO] [stdout] 145 | .map(|i| E::Fr::from_str("2").unwrap().pow(&[u64::from(i)])) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `[u64::from(i)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/gadgets/test/mod.rs:151:46 [INFO] [stdout] | [INFO] [stdout] 151 | for (var, coeff) in proc_lc::(&lc) { [INFO] [stdout] | ^^^ help: change this to: `lc` [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: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/test/mod.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 186 | for &(ref a, ref b, ref c, ref name) in &self.constraints { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] = note: `#[warn(clippy::needless_borrowed_reference)]` on by default [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 186 - for &(ref a, ref b, ref c, ref name) in &self.constraints { [INFO] [stdout] 186 + for (a, b, c, name) in &self.constraints { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/gadgets/test/mod.rs:187:13 [INFO] [stdout] | [INFO] [stdout] 187 | write!(&mut s, "\n").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 187 - write!(&mut s, "\n").unwrap(); [INFO] [stdout] 187 + writeln!(&mut s).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/gadgets/test/mod.rs:197:9 [INFO] [stdout] | [INFO] [stdout] 197 | write!(&mut s, "\n").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 197 - write!(&mut s, "\n").unwrap(); [INFO] [stdout] 197 + writeln!(&mut s).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/test/mod.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | for &(ref a, ref b, ref c, ref path) in &self.constraints { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 228 - for &(ref a, ref b, ref c, ref path) in &self.constraints { [INFO] [stdout] 228 + for (a, b, c, path) in &self.constraints { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/gadgets/test/mod.rs:236:29 [INFO] [stdout] | [INFO] [stdout] 236 | return Some(&*path); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 236 - return Some(&*path); [INFO] [stdout] 236 + return Some(path); [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 236 | return Some(&**path); [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/test/mod.rs:253:18 [INFO] [stdout] | [INFO] [stdout] 253 | Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 253 - Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] 253 + Some(NamedObject::Var(v)) => match v.get_unchecked() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/test/mod.rs:291:18 [INFO] [stdout] | [INFO] [stdout] 291 | Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 291 - Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] 291 + Some(NamedObject::Var(v)) => match v.get_unchecked() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/gadgets/test/mod.rs:320:31 [INFO] [stdout] | [INFO] [stdout] 320 | for ns in ns.iter().chain(Some(&this).into_iter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:510: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] 320 - for ns in ns.iter().chain(Some(&this).into_iter()) { [INFO] [stdout] 320 + for ns in ns.iter().chain(Some(&this)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/gadgets/blake2s.rs:82:1 [INFO] [stdout] | [INFO] [stdout] 82 | / fn mixing_g, M>( [INFO] [stdout] 83 | | mut cs: M, [INFO] [stdout] 84 | | v: &mut [UInt32], [INFO] [stdout] 85 | | a: usize, [INFO] [stdout] ... | [INFO] [stdout] 92 | | where [INFO] [stdout] 93 | | M: ConstraintSystem>, [INFO] [stdout] | |__________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> src/gadgets/blake2s.rs:207:31 [INFO] [stdout] | [INFO] [stdout] 207 | &UInt32::constant(u32::max_value()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 207 - &UInt32::constant(u32::max_value()), [INFO] [stdout] 207 + &UInt32::constant(u32::MAX), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/blake2s.rs:348:13 [INFO] [stdout] | [INFO] [stdout] 348 | assert!(input.len() % 8 == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace with: `input.len().is_multiple_of(8)` [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: match expression looks like `matches!` macro [INFO] [stdout] --> src/gadgets/boolean.rs:363:9 [INFO] [stdout] | [INFO] [stdout] 363 | / match *self { [INFO] [stdout] 364 | | Boolean::Constant(_) => true, [INFO] [stdout] 365 | | _ => false, [INFO] [stdout] 366 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 363 - match *self { [INFO] [stdout] 364 - Boolean::Constant(_) => true, [INFO] [stdout] 365 - _ => false, [INFO] [stdout] 366 - } [INFO] [stdout] 363 + matches!(*self, Boolean::Constant(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/boolean.rs:494:14 [INFO] [stdout] | [INFO] [stdout] 494 | (&Boolean::Not(ref a), &Boolean::Not(ref b)) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 494 - (&Boolean::Not(ref a), &Boolean::Not(ref b)) => { [INFO] [stdout] 494 + (Boolean::Not(a), &Boolean::Not(ref b)) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/boolean.rs:494:36 [INFO] [stdout] | [INFO] [stdout] 494 | (&Boolean::Not(ref a), &Boolean::Not(ref b)) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 494 - (&Boolean::Not(ref a), &Boolean::Not(ref b)) => { [INFO] [stdout] 494 + (&Boolean::Not(ref a), Boolean::Not(b)) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/boolean.rs:498:14 [INFO] [stdout] | [INFO] [stdout] 498 | (&Boolean::Is(ref a), &Boolean::Is(ref b)) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 498 - (&Boolean::Is(ref a), &Boolean::Is(ref b)) => { [INFO] [stdout] 498 + (Boolean::Is(a), &Boolean::Is(ref b)) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/boolean.rs:498:35 [INFO] [stdout] | [INFO] [stdout] 498 | (&Boolean::Is(ref a), &Boolean::Is(ref b)) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 498 - (&Boolean::Is(ref a), &Boolean::Is(ref b)) => { [INFO] [stdout] 498 + (&Boolean::Is(ref a), Boolean::Is(b)) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/gadgets/boolean.rs:543:51 [INFO] [stdout] | [INFO] [stdout] 543 | return Boolean::and(cs, &a.not(), &c); [INFO] [stdout] | ^^ help: change this to: `c` [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/gadgets/boolean.rs:550:41 [INFO] [stdout] | [INFO] [stdout] 550 | return Boolean::and(cs, &a, &b); [INFO] [stdout] | ^^ help: change this to: `a` [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/gadgets/boolean.rs:550:45 [INFO] [stdout] | [INFO] [stdout] 550 | return Boolean::and(cs, &a, &b); [INFO] [stdout] | ^^ help: change this to: `b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/gadgets/boolean.rs:559:44 [INFO] [stdout] | [INFO] [stdout] 559 | return Ok(Boolean::and(cs, &a, &b.not())?.not()); [INFO] [stdout] | ^^ help: change this to: `a` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/gadgets/multieq.rs:53:55 [INFO] [stdout] | [INFO] [stdout] 53 | let coeff = E::Fr::from_str("2").unwrap().pow(&[self.bits_used as u64]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `[self.bits_used as u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/gadgets/multipack.rs:83:50 [INFO] [stdout] | [INFO] [stdout] 83 | num = num.add_bool_with_coeff(CS::one(), &bit, coeff); [INFO] [stdout] | ^^^^ help: change this to: `bit` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/gadgets/multipack.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | / num.get_value() [INFO] [stdout] 90 | | .ok_or_else(|| SynthesisError::AssignmentMissing) [INFO] [stdout] | |_____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 90 - .ok_or_else(|| SynthesisError::AssignmentMissing) [INFO] [stdout] 90 + .ok_or(SynthesisError::AssignmentMissing) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/num.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | a_bit.map(|e| assert!(!e)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] = note: `#[warn(clippy::option_map_unit_fn)]` on by default [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 124 - a_bit.map(|e| assert!(!e)); [INFO] [stdout] 124 + if let Some(e) = a_bit { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/gadgets/num.rs:158:21 [INFO] [stdout] | [INFO] [stdout] 158 | &last_run.as_ref().expect("char always starts with a one"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `last_run.as_ref().expect("char always starts with a one")` [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: method `add` can be confused for the standard trait method `std::ops::Add::add` [INFO] [stdout] --> src/gadgets/num.rs:412:5 [INFO] [stdout] | [INFO] [stdout] 412 | / pub fn add(self, other: &Self) -> Self { [INFO] [stdout] 413 | | let lc = self.lc + &other.lc; [INFO] [stdout] 414 | | let value = match (self.value, other.value) { [INFO] [stdout] 415 | | (Some(v1), Some(v2)) => { [INFO] [stdout] ... | [INFO] [stdout] 424 | | Num { value, lc } [INFO] [stdout] 425 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::ops::Add` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/gadgets/sha256.rs:40:46 [INFO] [stdout] | [INFO] [stdout] 40 | sha256_compression_function(&mut cs, &input, &get_sha256_iv())? [INFO] [stdout] | ^^^^^^ help: change this to: `input` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/sha256.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | assert!(input.len() % 8 == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace with: `input.len().is_multiple_of(8)` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/sha256.rs:59:11 [INFO] [stdout] | [INFO] [stdout] 59 | while (padded.len() + 64) % 512 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!(padded.len() + 64).is_multiple_of(512)` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/sha256.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | assert!(padded.len() % 512 == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `padded.len().is_multiple_of(512)` [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: redundant closure [INFO] [stdout] --> src/gadgets/sha256.rs:94:14 [INFO] [stdout] | [INFO] [stdout] 94 | .map(|e| UInt32::from_bits_be(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UInt32::from_bits_be` [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: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/uint32.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | value.as_mut().map(|v| *v <<= 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 88 - value.as_mut().map(|v| *v <<= 1); [INFO] [stdout] 88 + if let Some(v) = value.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/uint32.rs:92:21 [INFO] [stdout] | [INFO] [stdout] 92 | value.as_mut().map(|v| *v |= 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 92 - value.as_mut().map(|v| *v |= 1); [INFO] [stdout] 92 + if let Some(v) = value.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/uint32.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | value.as_mut().map(|v| *v <<= 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 121 - value.as_mut().map(|v| *v <<= 1); [INFO] [stdout] 121 + if let Some(v) = value.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/uint32.rs:126:25 [INFO] [stdout] | [INFO] [stdout] 126 | value.as_mut().map(|v| *v |= 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 126 - value.as_mut().map(|v| *v |= 1); [INFO] [stdout] 126 + if let Some(v) = value.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/uint32.rs:131:25 [INFO] [stdout] | [INFO] [stdout] 131 | value.as_mut().map(|v| *v |= 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 131 - value.as_mut().map(|v| *v |= 1); [INFO] [stdout] 131 + if let Some(v) = value.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/uint32.rs:138:25 [INFO] [stdout] | [INFO] [stdout] 138 | value.as_mut().map(|v| *v |= 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 138 - value.as_mut().map(|v| *v |= 1); [INFO] [stdout] 138 + if let Some(v) = value.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `modular_value` after checking its variant with `is_some` [INFO] [stdout] --> src/gadgets/uint32.rs:342:40 [INFO] [stdout] | [INFO] [stdout] 338 | if all_constants && modular_value.is_some() { [INFO] [stdout] | ----------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 342 | return Ok(UInt32::constant(modular_value.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 a legacy numeric method [INFO] [stdout] --> src/gadgets/uint32.rs:298:66 [INFO] [stdout] | [INFO] [stdout] 298 | let mut max_value = (operands.len() as u64) * (u64::from(u32::max_value())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 298 - let mut max_value = (operands.len() as u64) * (u64::from(u32::max_value())); [INFO] [stdout] 298 + let mut max_value = (operands.len() as u64) * (u64::from(u32::MAX)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/uint32.rs:314:21 [INFO] [stdout] | [INFO] [stdout] 314 | result_value.as_mut().map(|v| *v += u64::from(val)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 314 - result_value.as_mut().map(|v| *v += u64::from(val)); [INFO] [stdout] 314 + if let Some(v) = result_value.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gpu/nogpu.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | return Err(GPUError::GPUDisabled); [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] 19 - return Err(GPUError::GPUDisabled); [INFO] [stdout] 19 + Err(GPUError::GPUDisabled) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gpu/nogpu.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | return Err(GPUError::GPUDisabled); [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] 23 - return Err(GPUError::GPUDisabled); [INFO] [stdout] 23 + Err(GPUError::GPUDisabled) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gpu/nogpu.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | return Err(GPUError::GPUDisabled); [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] 36 - return Err(GPUError::GPUDisabled); [INFO] [stdout] 36 + Err(GPUError::GPUDisabled) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gpu/nogpu.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | return Err(GPUError::GPUDisabled); [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] 50 - return Err(GPUError::GPUDisabled); [INFO] [stdout] 50 + Err(GPUError::GPUDisabled) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/groth16/generator.rs:180:1 [INFO] [stdout] | [INFO] [stdout] 180 | / pub fn generate_parameters( [INFO] [stdout] 181 | | circuit: C, [INFO] [stdout] 182 | | g1: E::G1, [INFO] [stdout] 183 | | g2: E::G2, [INFO] [stdout] ... | [INFO] [stdout] 191 | | E: Engine, [INFO] [stdout] 192 | | C: Circuit, [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/groth16/generator.rs:245:61 [INFO] [stdout] | [INFO] [stdout] 245 | let mut current_tau_power = tau.pow(&[(i * chunk) as u64]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `[(i * chunk) as u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (14/7) [INFO] [stdout] --> src/groth16/generator.rs:296:5 [INFO] [stdout] | [INFO] [stdout] 296 | / fn eval( [INFO] [stdout] 297 | | // wNAF window tables [INFO] [stdout] 298 | | g1_wnaf: &Wnaf>, [INFO] [stdout] 299 | | g2_wnaf: &Wnaf>, [INFO] [stdout] ... | [INFO] [stdout] 323 | | worker: &Worker, [INFO] [stdout] 324 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/groth16/generator.rs:389:39 [INFO] [stdout] | [INFO] [stdout] 389 | at.mul_assign(&beta); [INFO] [stdout] | ^^^^^ help: change this to: `beta` [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/groth16/generator.rs:390:39 [INFO] [stdout] | [INFO] [stdout] 390 | bt.mul_assign(&alpha); [INFO] [stdout] | ^^^^^^ help: change this to: `alpha` [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: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/groth16/mapped_params.rs:51:6 [INFO] [stdout] | [INFO] [stdout] 51 | impl<'a, E: Engine> ParameterSource for &'a MappedParameters { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 51 - impl<'a, E: Engine> ParameterSource for &'a MappedParameters { [INFO] [stdout] 51 + impl ParameterSource for &MappedParameters { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/groth16/params.rs:116:35 [INFO] [stdout] | [INFO] [stdout] 116 | let len = read_length(¶ms, &mut *offset)?; [INFO] [stdout] | ^^^^^^^ help: change this to: `params` [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/groth16/params.rs:238:35 [INFO] [stdout] | [INFO] [stdout] 238 | let len = read_length(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:240:39 [INFO] [stdout] | [INFO] [stdout] 240 | (*param).push(read_g1(&mmap, &mut *offset)?); [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:250:35 [INFO] [stdout] | [INFO] [stdout] 250 | let len = read_length(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:252:39 [INFO] [stdout] | [INFO] [stdout] 252 | (*param).push(read_g2(&mmap, &mut *offset)?); [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:259:47 [INFO] [stdout] | [INFO] [stdout] 259 | let vk = VerifyingKey::::read_mmap(&mmap, &mut offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:267:17 [INFO] [stdout] | [INFO] [stdout] 267 | get_g1s(&mmap, &mut offset, &mut h)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:268:17 [INFO] [stdout] | [INFO] [stdout] 268 | get_g1s(&mmap, &mut offset, &mut l)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:269:17 [INFO] [stdout] | [INFO] [stdout] 269 | get_g1s(&mmap, &mut offset, &mut a)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:270:17 [INFO] [stdout] | [INFO] [stdout] 270 | get_g1s(&mmap, &mut offset, &mut b_g1)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:271:17 [INFO] [stdout] | [INFO] [stdout] 271 | get_g2s(&mmap, &mut offset, &mut b_g2)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/groth16/params.rs:406:6 [INFO] [stdout] | [INFO] [stdout] 406 | impl<'a, E: Engine> ParameterSource for &'a Parameters { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 406 - impl<'a, E: Engine> ParameterSource for &'a Parameters { [INFO] [stdout] 406 + impl ParameterSource for &Parameters { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/groth16/prover.rs:391:45 [INFO] [stdout] | [INFO] [stdout] 391 | let _input_assignment = std::mem::replace(&mut prover.input_assignment, Vec::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut prover.input_assignment)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: `#[warn(clippy::mem_replace_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/groth16/prover.rs:392:43 [INFO] [stdout] | [INFO] [stdout] 392 | let _aux_assignment = std::mem::replace(&mut prover.aux_assignment, Vec::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut prover.aux_assignment)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/groth16/prover.rs:445:47 [INFO] [stdout] | [INFO] [stdout] 445 | EvaluationDomain::from_coeffs(std::mem::replace(&mut prover.a, Vec::new()))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut prover.a)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/groth16/prover.rs:447:47 [INFO] [stdout] | [INFO] [stdout] 447 | EvaluationDomain::from_coeffs(std::mem::replace(&mut prover.b, Vec::new()))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut prover.b)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/groth16/prover.rs:449:47 [INFO] [stdout] | [INFO] [stdout] 449 | EvaluationDomain::from_coeffs(std::mem::replace(&mut prover.c, Vec::new()))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut prover.c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `std::mem::drop` with a value that does not implement `Drop`. Dropping such a type only extends its contained lifetimes [INFO] [stdout] --> src/groth16/prover.rs:472:5 [INFO] [stdout] | [INFO] [stdout] 472 | drop(fft_kern); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: argument has type `std::option::Option>` [INFO] [stdout] --> src/groth16/prover.rs:472:10 [INFO] [stdout] | [INFO] [stdout] 472 | drop(fft_kern); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_non_drop [INFO] [stdout] = note: `#[warn(clippy::drop_non_drop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/groth16/prover.rs:526:14 [INFO] [stdout] | [INFO] [stdout] 526 | .zip(assignments.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 526 - .zip(assignments.into_iter()) [INFO] [stdout] 526 + .zip(assignments) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `std::mem::drop` with a value that does not implement `Drop`. Dropping such a type only extends its contained lifetimes [INFO] [stdout] --> src/groth16/prover.rs:623:5 [INFO] [stdout] | [INFO] [stdout] 623 | drop(multiexp_kern); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: argument has type `std::option::Option>` [INFO] [stdout] --> src/groth16/prover.rs:623:10 [INFO] [stdout] | [INFO] [stdout] 623 | drop(multiexp_kern); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_non_drop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/groth16/prover.rs:635:14 [INFO] [stdout] | [INFO] [stdout] 635 | .zip(l_s.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 635 - .zip(l_s.into_iter()) [INFO] [stdout] 635 + .zip(l_s) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/groth16/prover.rs:636:14 [INFO] [stdout] | [INFO] [stdout] 636 | .zip(inputs.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 636 - .zip(inputs.into_iter()) [INFO] [stdout] 636 + .zip(inputs) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/groth16/prover.rs:637:14 [INFO] [stdout] | [INFO] [stdout] 637 | .zip(r_s.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 637 - .zip(r_s.into_iter()) [INFO] [stdout] 637 + .zip(r_s) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/groth16/prover.rs:638:14 [INFO] [stdout] | [INFO] [stdout] 638 | .zip(s_s.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 638 - .zip(s_s.into_iter()) [INFO] [stdout] 638 + .zip(s_s) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/groth16/verifier.rs:31:21 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn verify_proof<'a, E: Engine>( [INFO] [stdout] | ^^ [INFO] [stdout] 32 | pvk: &'a PreparedVerifyingKey, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 31 ~ pub fn verify_proof( [INFO] [stdout] 32 ~ pvk: &PreparedVerifyingKey, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/groth16/verifier.rs:101:28 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn verify_proofs_batch<'a, E: Engine, R: rand::RngCore>( [INFO] [stdout] | ^^ [INFO] [stdout] 102 | pvk: &'a PreparedVerifyingKey, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 101 ~ pub fn verify_proofs_batch( [INFO] [stdout] 102 ~ pvk: &PreparedVerifyingKey, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/groth16/verifier.rs:212:25 [INFO] [stdout] | [INFO] [stdout] 212 | &rand_z_repr, [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `rand_z_repr` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/groth16/verifier.rs:257:47 [INFO] [stdout] | [INFO] [stdout] 257 | *y = pvk.alpha_g1_beta_g2.pow(&accum_y_neg.into_repr()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `accum_y_neg.into_repr()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/groth16/verifying_key.rs:174:32 [INFO] [stdout] | [INFO] [stdout] 174 | let alpha_g1 = read_g1(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/verifying_key.rs:175:31 [INFO] [stdout] | [INFO] [stdout] 175 | let beta_g1 = read_g1(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/verifying_key.rs:176:31 [INFO] [stdout] | [INFO] [stdout] 176 | let beta_g2 = read_g2(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/verifying_key.rs:177:32 [INFO] [stdout] | [INFO] [stdout] 177 | let gamma_g2 = read_g2(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/verifying_key.rs:178:32 [INFO] [stdout] | [INFO] [stdout] 178 | let delta_g1 = read_g1(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/verifying_key.rs:179:32 [INFO] [stdout] | [INFO] [stdout] 179 | let delta_g2 = read_g2(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/verifying_key.rs:188:35 [INFO] [stdout] | [INFO] [stdout] 188 | let g1_repr = read_g1(&mmap, &mut *offset); [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/groth16/multiscalar.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | if nbits % precomp_table.window_size() != 0 || BITS_PER_LIMB % precomp_table.window_size() != 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!nbits.is_multiple_of(precomp_table.window_size())` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/groth16/multiscalar.rs:148:52 [INFO] [stdout] | [INFO] [stdout] 148 | if nbits % precomp_table.window_size() != 0 || BITS_PER_LIMB % precomp_table.window_size() != 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!BITS_PER_LIMB.is_multiple_of(precomp_table.window_size())` [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: manually reimplementing `div_ceil` [INFO] [stdout] --> src/groth16/multiscalar.rs:156:23 [INFO] [stdout] | [INFO] [stdout] 156 | let num_windows = (nbits + precomp_table.window_size() - 1) / precomp_table.window_size(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nbits.div_ceil(precomp_table.window_size())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/groth16/multiscalar.rs:219:21 [INFO] [stdout] | [INFO] [stdout] 219 | let num_parts = (num_points + chunk_size - 1) / chunk_size; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `num_points.div_ceil(chunk_size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/groth16/multiscalar.rs:249:13 [INFO] [stdout] | [INFO] [stdout] 249 | || E::G1::zero(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `E::G1::zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/groth16/multiscalar.rs:246:25 [INFO] [stdout] | [INFO] [stdout] 246 | multiscalar(&scalars, &subset, nbits) [INFO] [stdout] | ^^^^^^^^ help: change this to: `scalars` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/groth16/multiscalar.rs:237:35 [INFO] [stdout] | [INFO] [stdout] 237 | ScalarList::Slice(ref s) => &s[start_idx..end_idx], [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 237 - ScalarList::Slice(ref s) => &s[start_idx..end_idx], [INFO] [stdout] 237 + ScalarList::Slice(s) => &s[start_idx..end_idx], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Worker` [INFO] [stdout] --> src/multicore.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / pub fn new() -> Worker { [INFO] [stdout] 37 | | Worker {} [INFO] [stdout] 38 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 35 + impl Default for Worker { [INFO] [stdout] 36 + fn default() -> Self { [INFO] [stdout] 37 + Self::new() [INFO] [stdout] 38 + } [INFO] [stdout] 39 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually take no `self` [INFO] [stdout] --> src/multiexp.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | fn new(self) -> Self::Source; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/multiexp.rs:102:6 [INFO] [stdout] | [INFO] [stdout] 102 | impl<'a> QueryDensity for &'a FullDensity { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 102 - impl<'a> QueryDensity for &'a FullDensity { [INFO] [stdout] 102 + impl QueryDensity for &FullDensity { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `DensityTracker` [INFO] [stdout] --> src/multiexp.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | / pub fn new() -> DensityTracker { [INFO] [stdout] 134 | | DensityTracker { [INFO] [stdout] 135 | | bv: BitVec::new(), [INFO] [stdout] 136 | | total_density: 0, [INFO] [stdout] 137 | | } [INFO] [stdout] 138 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 132 + impl Default for DensityTracker { [INFO] [stdout] 133 + fn default() -> Self { [INFO] [stdout] 134 + Self::new() [INFO] [stdout] 135 + } [INFO] [stdout] 136 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/multiexp.rs:291:7 [INFO] [stdout] | [INFO] [stdout] 291 | ) -> (Arc>, Arc::Fr as PrimeField>::Repr>>, usize, usize) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedVariable` which implements the `Copy` trait [INFO] [stdout] --> src/util_cs/metric_cs.rs:69:28 [INFO] [stdout] | [INFO] [stdout] 69 | to_remove.push(var.clone()) [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*var` [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: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/util_cs/metric_cs.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | for &(ref _a, ref _b, ref _c, ref name) in &self.constraints { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 103 - for &(ref _a, ref _b, ref _c, ref name) in &self.constraints { [INFO] [stdout] 103 + for (_a, _b, _c, name) in &self.constraints { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/util_cs/metric_cs.rs:124:56 [INFO] [stdout] | [INFO] [stdout] 124 | .map(|i| E::Fr::from_str("2").unwrap().pow(&[u64::from(i)])) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `[u64::from(i)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/util_cs/metric_cs.rs:130:46 [INFO] [stdout] | [INFO] [stdout] 130 | for (var, coeff) in proc_lc::(&lc) { [INFO] [stdout] | ^^^ help: change this to: `lc` [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: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/util_cs/metric_cs.rs:165:13 [INFO] [stdout] | [INFO] [stdout] 165 | for &(ref a, ref b, ref c, ref name) in &self.constraints { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 165 - for &(ref a, ref b, ref c, ref name) in &self.constraints { [INFO] [stdout] 165 + for (a, b, c, name) in &self.constraints { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedVariable` which implements the `Copy` trait [INFO] [stdout] --> src/util_cs/test_cs.rs:74:28 [INFO] [stdout] | [INFO] [stdout] 74 | to_remove.push(var.clone()) [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*var` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/util_cs/test_cs.rs:122:24 [INFO] [stdout] | [INFO] [stdout] 122 | tmp.mul_assign(&coeff); [INFO] [stdout] | ^^^^^^ help: change this to: `coeff` [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/util_cs/test_cs.rs:142:24 [INFO] [stdout] | [INFO] [stdout] 142 | tmp.mul_assign(&coeff); [INFO] [stdout] | ^^^^^^ help: change this to: `coeff` [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: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/util_cs/test_cs.rs:182:13 [INFO] [stdout] | [INFO] [stdout] 182 | for &(ref _a, ref _b, ref _c, ref name) in &self.constraints { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 182 - for &(ref _a, ref _b, ref _c, ref name) in &self.constraints { [INFO] [stdout] 182 + for (_a, _b, _c, name) in &self.constraints { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/util_cs/test_cs.rs:221:13 [INFO] [stdout] | [INFO] [stdout] 221 | for &(ref a, ref b, ref c, ref path) in &self.constraints { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 221 - for &(ref a, ref b, ref c, ref path) in &self.constraints { [INFO] [stdout] 221 + for (a, b, c, path) in &self.constraints { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/util_cs/test_cs.rs:229:29 [INFO] [stdout] | [INFO] [stdout] 229 | return Some(&*path); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 229 - return Some(&*path); [INFO] [stdout] 229 + return Some(path); [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 229 | return Some(&**path); [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/util_cs/test_cs.rs:253:18 [INFO] [stdout] | [INFO] [stdout] 253 | Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 253 - Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] 253 + Some(NamedObject::Var(v)) => match v.get_unchecked() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/util_cs/test_cs.rs:294:18 [INFO] [stdout] | [INFO] [stdout] 294 | Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 294 - Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] 294 + Some(NamedObject::Var(v)) => match v.get_unchecked() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'cs [INFO] [stdout] --> src/lib.rs:522:6 [INFO] [stdout] | [INFO] [stdout] 522 | impl<'cs, E: ScalarEngine, CS: ConstraintSystem> ConstraintSystem for &'cs mut CS { [INFO] [stdout] | ^^^ ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 522 - impl<'cs, E: ScalarEngine, CS: ConstraintSystem> ConstraintSystem for &'cs mut CS { [INFO] [stdout] 522 + impl> ConstraintSystem for &mut CS { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/gadgets/sha256.rs:169:21 [INFO] [stdout] | [INFO] [stdout] 169 | let temp1 = vec![ [INFO] [stdout] | _____________________^ [INFO] [stdout] 170 | | h.clone(), [INFO] [stdout] 171 | | s1, [INFO] [stdout] 172 | | ch, [INFO] [stdout] 173 | | UInt32::constant(ROUND_CONSTANTS[i]), [INFO] [stdout] 174 | | w[i].clone(), [INFO] [stdout] 175 | | ]; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 169 ~ let temp1 = [h.clone(), [INFO] [stdout] 170 + s1, [INFO] [stdout] 171 + ch, [INFO] [stdout] 172 + UInt32::constant(ROUND_CONSTANTS[i]), [INFO] [stdout] 173 ~ w[i].clone()]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/gadgets/sha256.rs:187:21 [INFO] [stdout] | [INFO] [stdout] 187 | let temp2 = vec![s0, maj]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: you can use an array directly: `[s0, maj]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `constants` [INFO] [stdout] --> tests/mimc.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | for i in 0..MIMC_ROUNDS { [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] 41 - for i in 0..MIMC_ROUNDS { [INFO] [stdout] 41 + for in constants.iter().take(MIMC_ROUNDS) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `bad_proofs` [INFO] [stdout] --> tests/mimc.rs:285:18 [INFO] [stdout] | [INFO] [stdout] 285 | for i in 0..proofs.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] 285 - for i in 0..proofs.len() { [INFO] [stdout] 285 + for in bad_proofs.iter_mut().take(proofs.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `features` [INFO] [stdout] --> src/domain.rs:438:32 [INFO] [stdout] | [INFO] [stdout] 438 | #[cfg(any(feature = "pairing", features = "blst"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] help: there is a config with a similar name and value [INFO] [stdout] | [INFO] [stdout] 438 - #[cfg(any(feature = "pairing", features = "blst"))] [INFO] [stdout] 438 + #[cfg(any(feature = "pairing", feature = "blst"))] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/gadgets/test/mod.rs:18:16 [INFO] [stdout] | [INFO] [stdout] 18 | Constraint(usize), [INFO] [stdout] | ---------- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `NamedObject` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 18 - Constraint(usize), [INFO] [stdout] 18 + Constraint(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/util_cs/metric_cs.rs:12:16 [INFO] [stdout] | [INFO] [stdout] 12 | Constraint(usize), [INFO] [stdout] | ---------- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `NamedObject` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 12 - Constraint(usize), [INFO] [stdout] 12 + Constraint(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/util_cs/metric_cs.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | Var(Variable), [INFO] [stdout] | --- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `NamedObject` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 13 - Var(Variable), [INFO] [stdout] 13 + Var(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/util_cs/test_cs.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | Constraint(usize), [INFO] [stdout] | ---------- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `NamedObject` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 13 - Constraint(usize), [INFO] [stdout] 13 + Constraint(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/domain.rs:122:39 [INFO] [stdout] | [INFO] [stdout] 122 | let mut u = g.pow(&[(i * chunk) as u64]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `[(i * chunk) as u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/domain.rs:156:31 [INFO] [stdout] | [INFO] [stdout] 156 | let mut tmp = tau.pow(&[self.coeffs.len() as u64]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `[self.coeffs.len() as u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/domain.rs:213:44 [INFO] [stdout] | [INFO] [stdout] 213 | a.group_sub_assign(&b); [INFO] [stdout] | ^^ help: change this to: `b` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/domain.rs:356:29 [INFO] [stdout] | [INFO] [stdout] 356 | let w_m = omega.pow(&[u64::from(n / (2 * m))]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `[u64::from(n / (2 * m))]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/domain.rs:390:31 [INFO] [stdout] | [INFO] [stdout] 390 | let new_omega = omega.pow(&[num_cpus as u64]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `[num_cpus as u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/domain.rs:398:41 [INFO] [stdout] | [INFO] [stdout] 398 | let omega_j = omega.pow(&[j as u64]); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `[j as u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/domain.rs:399:44 [INFO] [stdout] | [INFO] [stdout] 399 | let omega_step = omega.pow(&[(j as u64) << log_new_n]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `[(j as u64) << log_new_n]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `idx` is used as a loop counter [INFO] [stdout] --> src/domain.rs:427:17 [INFO] [stdout] | [INFO] [stdout] 427 | for a in a { [INFO] [stdout] | ^^^^^^^^^^ help: consider using: `for (idx, a) in (idx * chunk..).zip(a.iter_mut())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/gadgets/test/mod.rs:27:18 [INFO] [stdout] | [INFO] [stdout] 27 | constraints: Vec<( [INFO] [stdout] | __________________^ [INFO] [stdout] 28 | | LinearCombination, [INFO] [stdout] 29 | | LinearCombination, [INFO] [stdout] 30 | | LinearCombination, [INFO] [stdout] 31 | | String, [INFO] [stdout] 32 | | )>, [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedVariable` which implements the `Copy` trait [INFO] [stdout] --> src/gadgets/test/mod.rs:78:28 [INFO] [stdout] | [INFO] [stdout] 78 | to_remove.push(var.clone()) [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*var` [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/gadgets/test/mod.rs:127:24 [INFO] [stdout] | [INFO] [stdout] 127 | tmp.mul_assign(&coeff); [INFO] [stdout] | ^^^^^^ help: change this to: `coeff` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/gadgets/test/mod.rs:145:56 [INFO] [stdout] | [INFO] [stdout] 145 | .map(|i| E::Fr::from_str("2").unwrap().pow(&[u64::from(i)])) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `[u64::from(i)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/gadgets/test/mod.rs:151:46 [INFO] [stdout] | [INFO] [stdout] 151 | for (var, coeff) in proc_lc::(&lc) { [INFO] [stdout] | ^^^ help: change this to: `lc` [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: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/test/mod.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 186 | for &(ref a, ref b, ref c, ref name) in &self.constraints { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] = note: `#[warn(clippy::needless_borrowed_reference)]` on by default [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 186 - for &(ref a, ref b, ref c, ref name) in &self.constraints { [INFO] [stdout] 186 + for (a, b, c, name) in &self.constraints { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/gadgets/test/mod.rs:187:13 [INFO] [stdout] | [INFO] [stdout] 187 | write!(&mut s, "\n").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 187 - write!(&mut s, "\n").unwrap(); [INFO] [stdout] 187 + writeln!(&mut s).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/gadgets/test/mod.rs:197:9 [INFO] [stdout] | [INFO] [stdout] 197 | write!(&mut s, "\n").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 197 - write!(&mut s, "\n").unwrap(); [INFO] [stdout] 197 + writeln!(&mut s).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/test/mod.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | for &(ref a, ref b, ref c, ref path) in &self.constraints { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 228 - for &(ref a, ref b, ref c, ref path) in &self.constraints { [INFO] [stdout] 228 + for (a, b, c, path) in &self.constraints { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/gadgets/test/mod.rs:236:29 [INFO] [stdout] | [INFO] [stdout] 236 | return Some(&*path); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 236 - return Some(&*path); [INFO] [stdout] 236 + return Some(path); [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 236 | return Some(&**path); [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/test/mod.rs:253:18 [INFO] [stdout] | [INFO] [stdout] 253 | Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 253 - Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] 253 + Some(NamedObject::Var(v)) => match v.get_unchecked() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/test/mod.rs:291:18 [INFO] [stdout] | [INFO] [stdout] 291 | Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 291 - Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] 291 + Some(NamedObject::Var(v)) => match v.get_unchecked() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/gadgets/test/mod.rs:320:31 [INFO] [stdout] | [INFO] [stdout] 320 | for ns in ns.iter().chain(Some(&this).into_iter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:510: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] 320 - for ns in ns.iter().chain(Some(&this).into_iter()) { [INFO] [stdout] 320 + for ns in ns.iter().chain(Some(&this)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/gadgets/blake2s.rs:82:1 [INFO] [stdout] | [INFO] [stdout] 82 | / fn mixing_g, M>( [INFO] [stdout] 83 | | mut cs: M, [INFO] [stdout] 84 | | v: &mut [UInt32], [INFO] [stdout] 85 | | a: usize, [INFO] [stdout] ... | [INFO] [stdout] 92 | | where [INFO] [stdout] 93 | | M: ConstraintSystem>, [INFO] [stdout] | |__________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> src/gadgets/blake2s.rs:207:31 [INFO] [stdout] | [INFO] [stdout] 207 | &UInt32::constant(u32::max_value()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 207 - &UInt32::constant(u32::max_value()), [INFO] [stdout] 207 + &UInt32::constant(u32::MAX), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/blake2s.rs:348:13 [INFO] [stdout] | [INFO] [stdout] 348 | assert!(input.len() % 8 == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace with: `input.len().is_multiple_of(8)` [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/gadgets/blake2s.rs:469:40 [INFO] [stdout] | [INFO] [stdout] 469 | .map(|_| Boolean::constant(rng.next_u32() % 2 != 0)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!rng.next_u32().is_multiple_of(2)` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/blake2s.rs:489:40 [INFO] [stdout] | [INFO] [stdout] 489 | .map(|_| Boolean::constant(rng.next_u32() % 2 != 0)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!rng.next_u32().is_multiple_of(2)` [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: the loop variable `i` is only used to index `expecteds` [INFO] [stdout] --> src/gadgets/blake2s.rs:641:18 [INFO] [stdout] | [INFO] [stdout] 641 | for i in 0..2 { [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] 641 - for i in 0..2 { [INFO] [stdout] 641 + for in &expecteds { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/gadgets/boolean.rs:363:9 [INFO] [stdout] | [INFO] [stdout] 363 | / match *self { [INFO] [stdout] 364 | | Boolean::Constant(_) => true, [INFO] [stdout] 365 | | _ => false, [INFO] [stdout] 366 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 363 - match *self { [INFO] [stdout] 364 - Boolean::Constant(_) => true, [INFO] [stdout] 365 - _ => false, [INFO] [stdout] 366 - } [INFO] [stdout] 363 + matches!(*self, Boolean::Constant(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/boolean.rs:494:14 [INFO] [stdout] | [INFO] [stdout] 494 | (&Boolean::Not(ref a), &Boolean::Not(ref b)) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 494 - (&Boolean::Not(ref a), &Boolean::Not(ref b)) => { [INFO] [stdout] 494 + (Boolean::Not(a), &Boolean::Not(ref b)) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/boolean.rs:494:36 [INFO] [stdout] | [INFO] [stdout] 494 | (&Boolean::Not(ref a), &Boolean::Not(ref b)) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 494 - (&Boolean::Not(ref a), &Boolean::Not(ref b)) => { [INFO] [stdout] 494 + (&Boolean::Not(ref a), Boolean::Not(b)) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/boolean.rs:498:14 [INFO] [stdout] | [INFO] [stdout] 498 | (&Boolean::Is(ref a), &Boolean::Is(ref b)) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 498 - (&Boolean::Is(ref a), &Boolean::Is(ref b)) => { [INFO] [stdout] 498 + (Boolean::Is(a), &Boolean::Is(ref b)) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/boolean.rs:498:35 [INFO] [stdout] | [INFO] [stdout] 498 | (&Boolean::Is(ref a), &Boolean::Is(ref b)) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 498 - (&Boolean::Is(ref a), &Boolean::Is(ref b)) => { [INFO] [stdout] 498 + (&Boolean::Is(ref a), Boolean::Is(b)) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/gadgets/boolean.rs:543:51 [INFO] [stdout] | [INFO] [stdout] 543 | return Boolean::and(cs, &a.not(), &c); [INFO] [stdout] | ^^ help: change this to: `c` [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/gadgets/boolean.rs:550:41 [INFO] [stdout] | [INFO] [stdout] 550 | return Boolean::and(cs, &a, &b); [INFO] [stdout] | ^^ help: change this to: `a` [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/gadgets/boolean.rs:550:45 [INFO] [stdout] | [INFO] [stdout] 550 | return Boolean::and(cs, &a, &b); [INFO] [stdout] | ^^ help: change this to: `b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/gadgets/boolean.rs:559:44 [INFO] [stdout] | [INFO] [stdout] 559 | return Ok(Boolean::and(cs, &a, &b.not())?.not()); [INFO] [stdout] | ^^ help: change this to: `a` [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: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1526:9 [INFO] [stdout] | [INFO] [stdout] 1526 | assert_eq!(bits[63 - 0].get_value().unwrap(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1526 - assert_eq!(bits[63 - 0].get_value().unwrap(), true); [INFO] [stdout] 1526 + assert!(bits[63 - 0].get_value().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/gadgets/boolean.rs:1526:25 [INFO] [stdout] | [INFO] [stdout] 1526 | assert_eq!(bits[63 - 0].get_value().unwrap(), true); [INFO] [stdout] | ^^^^^^ help: consider reducing it to: `63` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1527:9 [INFO] [stdout] | [INFO] [stdout] 1527 | assert_eq!(bits[63 - 1].get_value().unwrap(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1527 - assert_eq!(bits[63 - 1].get_value().unwrap(), true); [INFO] [stdout] 1527 + assert!(bits[63 - 1].get_value().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1528:9 [INFO] [stdout] | [INFO] [stdout] 1528 | assert_eq!(bits[63 - 2].get_value().unwrap(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1528 - assert_eq!(bits[63 - 2].get_value().unwrap(), true); [INFO] [stdout] 1528 + assert!(bits[63 - 2].get_value().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1529:9 [INFO] [stdout] | [INFO] [stdout] 1529 | assert_eq!(bits[63 - 3].get_value().unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1529 - assert_eq!(bits[63 - 3].get_value().unwrap(), false); [INFO] [stdout] 1529 + assert!(!bits[63 - 3].get_value().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1530:9 [INFO] [stdout] | [INFO] [stdout] 1530 | assert_eq!(bits[63 - 4].get_value().unwrap(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1530 - assert_eq!(bits[63 - 4].get_value().unwrap(), true); [INFO] [stdout] 1530 + assert!(bits[63 - 4].get_value().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1531:9 [INFO] [stdout] | [INFO] [stdout] 1531 | assert_eq!(bits[63 - 5].get_value().unwrap(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1531 - assert_eq!(bits[63 - 5].get_value().unwrap(), true); [INFO] [stdout] 1531 + assert!(bits[63 - 5].get_value().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1532:9 [INFO] [stdout] | [INFO] [stdout] 1532 | assert_eq!(bits[63 - 20].get_value().unwrap(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1532 - assert_eq!(bits[63 - 20].get_value().unwrap(), true); [INFO] [stdout] 1532 + assert!(bits[63 - 20].get_value().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1533:9 [INFO] [stdout] | [INFO] [stdout] 1533 | assert_eq!(bits[63 - 21].get_value().unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1533 - assert_eq!(bits[63 - 21].get_value().unwrap(), false); [INFO] [stdout] 1533 + assert!(!bits[63 - 21].get_value().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1534:9 [INFO] [stdout] | [INFO] [stdout] 1534 | assert_eq!(bits[63 - 22].get_value().unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1534 - assert_eq!(bits[63 - 22].get_value().unwrap(), false); [INFO] [stdout] 1534 + assert!(!bits[63 - 22].get_value().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1552:9 [INFO] [stdout] | [INFO] [stdout] 1552 | assert_eq!(bits[254 - 0].value.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1552 - assert_eq!(bits[254 - 0].value.unwrap(), false); [INFO] [stdout] 1552 + assert!(!bits[254 - 0].value.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/gadgets/boolean.rs:1552:25 [INFO] [stdout] | [INFO] [stdout] 1552 | assert_eq!(bits[254 - 0].value.unwrap(), false); [INFO] [stdout] | ^^^^^^^ help: consider reducing it to: `254` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1553:9 [INFO] [stdout] | [INFO] [stdout] 1553 | assert_eq!(bits[254 - 1].value.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1553 - assert_eq!(bits[254 - 1].value.unwrap(), false); [INFO] [stdout] 1553 + assert!(!bits[254 - 1].value.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1554:9 [INFO] [stdout] | [INFO] [stdout] 1554 | assert_eq!(bits[254 - 2].value.unwrap(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1554 - assert_eq!(bits[254 - 2].value.unwrap(), true); [INFO] [stdout] 1554 + assert!(bits[254 - 2].value.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1555:9 [INFO] [stdout] | [INFO] [stdout] 1555 | assert_eq!(bits[254 - 3].value.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1555 - assert_eq!(bits[254 - 3].value.unwrap(), false); [INFO] [stdout] 1555 + assert!(!bits[254 - 3].value.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1556:9 [INFO] [stdout] | [INFO] [stdout] 1556 | assert_eq!(bits[254 - 4].value.unwrap(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1556 - assert_eq!(bits[254 - 4].value.unwrap(), true); [INFO] [stdout] 1556 + assert!(bits[254 - 4].value.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1557:9 [INFO] [stdout] | [INFO] [stdout] 1557 | assert_eq!(bits[254 - 5].value.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1557 - assert_eq!(bits[254 - 5].value.unwrap(), false); [INFO] [stdout] 1557 + assert!(!bits[254 - 5].value.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1558:9 [INFO] [stdout] | [INFO] [stdout] 1558 | assert_eq!(bits[254 - 20].value.unwrap(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1558 - assert_eq!(bits[254 - 20].value.unwrap(), true); [INFO] [stdout] 1558 + assert!(bits[254 - 20].value.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1559:9 [INFO] [stdout] | [INFO] [stdout] 1559 | assert_eq!(bits[254 - 23].value.unwrap(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1559 - assert_eq!(bits[254 - 23].value.unwrap(), true); [INFO] [stdout] 1559 + assert!(bits[254 - 23].value.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/gadgets/boolean.rs:1775:13 [INFO] [stdout] | [INFO] [stdout] 1775 | assert_eq!(allocated_value.get_value().unwrap(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1775 - assert_eq!(allocated_value.get_value().unwrap(), true); [INFO] [stdout] 1775 + assert!(allocated_value.get_value().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/lookup.rs:208:25 [INFO] [stdout] | [INFO] [stdout] 208 | let a_val = rng.next_u32() % 2 != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!rng.next_u32().is_multiple_of(2)` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/lookup.rs:211:25 [INFO] [stdout] | [INFO] [stdout] 211 | let b_val = rng.next_u32() % 2 != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!rng.next_u32().is_multiple_of(2)` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/lookup.rs:214:25 [INFO] [stdout] | [INFO] [stdout] 214 | let c_val = rng.next_u32() % 2 != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!rng.next_u32().is_multiple_of(2)` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/lookup.rs:253:25 [INFO] [stdout] | [INFO] [stdout] 253 | let a_val = rng.next_u32() % 2 != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!rng.next_u32().is_multiple_of(2)` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/lookup.rs:256:25 [INFO] [stdout] | [INFO] [stdout] 256 | let b_val = rng.next_u32() % 2 != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!rng.next_u32().is_multiple_of(2)` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/lookup.rs:259:25 [INFO] [stdout] | [INFO] [stdout] 259 | let c_val = rng.next_u32() % 2 != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!rng.next_u32().is_multiple_of(2)` [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: the loop variable `b` is used to index `constants` [INFO] [stdout] --> src/gadgets/lookup.rs:305:18 [INFO] [stdout] | [INFO] [stdout] 305 | for b in 0..(1 << window_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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 305 - for b in 0..(1 << window_size) { [INFO] [stdout] 305 + for (b, ) in constants.iter().enumerate().take((1 << window_size)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `assignment` [INFO] [stdout] --> src/gadgets/lookup.rs:308:22 [INFO] [stdout] | [INFO] [stdout] 308 | for j in 0..(1 << window_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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 308 - for j in 0..(1 << window_size) { [INFO] [stdout] 308 + for (j, ) in assignment.iter().enumerate().take((1 << window_size)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/gadgets/multieq.rs:53:55 [INFO] [stdout] | [INFO] [stdout] 53 | let coeff = E::Fr::from_str("2").unwrap().pow(&[self.bits_used as u64]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `[self.bits_used as u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/gadgets/multipack.rs:83:50 [INFO] [stdout] | [INFO] [stdout] 83 | num = num.add_bool_with_coeff(CS::one(), &bit, coeff); [INFO] [stdout] | ^^^^ help: change this to: `bit` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/gadgets/multipack.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | / num.get_value() [INFO] [stdout] 90 | | .ok_or_else(|| SynthesisError::AssignmentMissing) [INFO] [stdout] | |_____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 90 - .ok_or_else(|| SynthesisError::AssignmentMissing) [INFO] [stdout] 90 + .ok_or(SynthesisError::AssignmentMissing) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/multipack.rs:122:53 [INFO] [stdout] | [INFO] [stdout] 122 | let bits: Vec = (0..num_bits).map(|_| rng.next_u32() % 2 != 0).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!rng.next_u32().is_multiple_of(2)` [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: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/num.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | a_bit.map(|e| assert!(!e)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] = note: `#[warn(clippy::option_map_unit_fn)]` on by default [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 124 - a_bit.map(|e| assert!(!e)); [INFO] [stdout] 124 + if let Some(e) = a_bit { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/gadgets/num.rs:158:21 [INFO] [stdout] | [INFO] [stdout] 158 | &last_run.as_ref().expect("char always starts with a one"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `last_run.as_ref().expect("char always starts with a one")` [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: method `add` can be confused for the standard trait method `std::ops::Add::add` [INFO] [stdout] --> src/gadgets/num.rs:412:5 [INFO] [stdout] | [INFO] [stdout] 412 | / pub fn add(self, other: &Self) -> Self { [INFO] [stdout] 413 | | let lc = self.lc + &other.lc; [INFO] [stdout] 414 | | let value = match (self.value, other.value) { [INFO] [stdout] 415 | | (Some(v1), Some(v2)) => { [INFO] [stdout] ... | [INFO] [stdout] 424 | | Num { value, lc } [INFO] [stdout] 425 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::ops::Add` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/num.rs:593:24 [INFO] [stdout] | [INFO] [stdout] 593 | if let &Boolean::Is(ref a) = a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 593 - if let &Boolean::Is(ref a) = a { [INFO] [stdout] 593 + if let Boolean::Is(a) = a { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `expected_sums` [INFO] [stdout] --> src/gadgets/num.rs:633:18 [INFO] [stdout] | [INFO] [stdout] 633 | for i in 0..n { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 633 - for i in 0..n { [INFO] [stdout] 633 + for (i, ) in expected_sums.iter_mut().enumerate().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/gadgets/sha256.rs:40:46 [INFO] [stdout] | [INFO] [stdout] 40 | sha256_compression_function(&mut cs, &input, &get_sha256_iv())? [INFO] [stdout] | ^^^^^^ help: change this to: `input` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/sha256.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | assert!(input.len() % 8 == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace with: `input.len().is_multiple_of(8)` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/sha256.rs:59:11 [INFO] [stdout] | [INFO] [stdout] 59 | while (padded.len() + 64) % 512 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!(padded.len() + 64).is_multiple_of(512)` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/sha256.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | assert!(padded.len() % 512 == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `padded.len().is_multiple_of(512)` [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: redundant closure [INFO] [stdout] --> src/gadgets/sha256.rs:94:14 [INFO] [stdout] | [INFO] [stdout] 94 | .map(|e| UInt32::from_bits_be(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UInt32::from_bits_be` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/sha256.rs:320:30 [INFO] [stdout] | [INFO] [stdout] 320 | Some(rng.next_u32() % 2 != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!rng.next_u32().is_multiple_of(2)` [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: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/uint32.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | value.as_mut().map(|v| *v <<= 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 88 - value.as_mut().map(|v| *v <<= 1); [INFO] [stdout] 88 + if let Some(v) = value.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/uint32.rs:92:21 [INFO] [stdout] | [INFO] [stdout] 92 | value.as_mut().map(|v| *v |= 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 92 - value.as_mut().map(|v| *v |= 1); [INFO] [stdout] 92 + if let Some(v) = value.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/uint32.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | value.as_mut().map(|v| *v <<= 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 121 - value.as_mut().map(|v| *v <<= 1); [INFO] [stdout] 121 + if let Some(v) = value.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/uint32.rs:126:25 [INFO] [stdout] | [INFO] [stdout] 126 | value.as_mut().map(|v| *v |= 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 126 - value.as_mut().map(|v| *v |= 1); [INFO] [stdout] 126 + if let Some(v) = value.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/uint32.rs:131:25 [INFO] [stdout] | [INFO] [stdout] 131 | value.as_mut().map(|v| *v |= 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 131 - value.as_mut().map(|v| *v |= 1); [INFO] [stdout] 131 + if let Some(v) = value.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/uint32.rs:138:25 [INFO] [stdout] | [INFO] [stdout] 138 | value.as_mut().map(|v| *v |= 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 138 - value.as_mut().map(|v| *v |= 1); [INFO] [stdout] 138 + if let Some(v) = value.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `modular_value` after checking its variant with `is_some` [INFO] [stdout] --> src/gadgets/uint32.rs:342:40 [INFO] [stdout] | [INFO] [stdout] 338 | if all_constants && modular_value.is_some() { [INFO] [stdout] | ----------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 342 | return Ok(UInt32::constant(modular_value.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 a legacy numeric method [INFO] [stdout] --> src/gadgets/uint32.rs:298:66 [INFO] [stdout] | [INFO] [stdout] 298 | let mut max_value = (operands.len() as u64) * (u64::from(u32::max_value())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 298 - let mut max_value = (operands.len() as u64) * (u64::from(u32::max_value())); [INFO] [stdout] 298 + let mut max_value = (operands.len() as u64) * (u64::from(u32::MAX)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/gadgets/uint32.rs:314:21 [INFO] [stdout] | [INFO] [stdout] 314 | result_value.as_mut().map(|v| *v += u64::from(val)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 314 - result_value.as_mut().map(|v| *v += u64::from(val)); [INFO] [stdout] 314 + if let Some(v) = result_value.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/uint32.rs:406:44 [INFO] [stdout] | [INFO] [stdout] 406 | .map(|_| Boolean::constant(rng.next_u32() % 2 != 0)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!rng.next_u32().is_multiple_of(2)` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gadgets/uint32.rs:441:44 [INFO] [stdout] | [INFO] [stdout] 441 | .map(|_| Boolean::constant(rng.next_u32() % 2 != 0)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!rng.next_u32().is_multiple_of(2)` [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: this boolean expression can be simplified [INFO] [stdout] --> src/gadgets/uint32.rs:500:33 [INFO] [stdout] | [INFO] [stdout] 500 | assert!(!b.get_value().unwrap() == (expected & 1 == 1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.get_value().unwrap() != (expected & 1 == 1)` [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/gadgets/uint32.rs:593:33 [INFO] [stdout] | [INFO] [stdout] 593 | assert!(!b.get_value().unwrap() == (expected & 1 == 1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.get_value().unwrap() != (expected & 1 == 1)` [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: you don't need to add `&` to all patterns [INFO] [stdout] --> src/gadgets/uint32.rs:695:17 [INFO] [stdout] | [INFO] [stdout] 695 | / match b { [INFO] [stdout] 696 | | &Boolean::Is(ref b) => { [INFO] [stdout] 697 | | assert!(b.get_value().unwrap() == (expected & 1 == 1)); [INFO] [stdout] ... | [INFO] [stdout] 705 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] = note: `#[warn(clippy::match_ref_pats)]` on by default [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 695 ~ match *b { [INFO] [stdout] 696 ~ Boolean::Is(ref b) => { [INFO] [stdout] 697 | assert!(b.get_value().unwrap() == (expected & 1 == 1)); [INFO] [stdout] 698 | } [INFO] [stdout] 699 ~ Boolean::Not(ref b) => { [INFO] [stdout] 700 | assert!(!b.get_value().unwrap() == (expected & 1 == 1)); [INFO] [stdout] 701 | } [INFO] [stdout] 702 ~ Boolean::Constant(b) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/uint32.rs:696:21 [INFO] [stdout] | [INFO] [stdout] 696 | &Boolean::Is(ref b) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 696 - &Boolean::Is(ref b) => { [INFO] [stdout] 696 + Boolean::Is(b) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/uint32.rs:699:21 [INFO] [stdout] | [INFO] [stdout] 699 | &Boolean::Not(ref b) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 699 - &Boolean::Not(ref b) => { [INFO] [stdout] 699 + Boolean::Not(b) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/gadgets/uint32.rs:700:33 [INFO] [stdout] | [INFO] [stdout] 700 | assert!(!b.get_value().unwrap() == (expected & 1 == 1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.get_value().unwrap() != (expected & 1 == 1)` [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: you don't need to add `&` to all patterns [INFO] [stdout] --> src/gadgets/uint32.rs:739:17 [INFO] [stdout] | [INFO] [stdout] 739 | / match b { [INFO] [stdout] 740 | | &Boolean::Is(ref b) => { [INFO] [stdout] 741 | | assert!(b.get_value().unwrap() == (expected & 1 == 1)); [INFO] [stdout] ... | [INFO] [stdout] 749 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 739 ~ match *b { [INFO] [stdout] 740 ~ Boolean::Is(ref b) => { [INFO] [stdout] 741 | assert!(b.get_value().unwrap() == (expected & 1 == 1)); [INFO] [stdout] 742 | } [INFO] [stdout] 743 ~ Boolean::Not(ref b) => { [INFO] [stdout] 744 | assert!(!b.get_value().unwrap() == (expected & 1 == 1)); [INFO] [stdout] 745 | } [INFO] [stdout] 746 ~ Boolean::Constant(b) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/uint32.rs:740:21 [INFO] [stdout] | [INFO] [stdout] 740 | &Boolean::Is(ref b) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 740 - &Boolean::Is(ref b) => { [INFO] [stdout] 740 + Boolean::Is(b) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/gadgets/uint32.rs:743:21 [INFO] [stdout] | [INFO] [stdout] 743 | &Boolean::Not(ref b) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 743 - &Boolean::Not(ref b) => { [INFO] [stdout] 743 + Boolean::Not(b) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/gadgets/uint32.rs:744:33 [INFO] [stdout] | [INFO] [stdout] 744 | assert!(!b.get_value().unwrap() == (expected & 1 == 1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.get_value().unwrap() != (expected & 1 == 1)` [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 `return` statement [INFO] [stdout] --> src/gpu/nogpu.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | return Err(GPUError::GPUDisabled); [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] 19 - return Err(GPUError::GPUDisabled); [INFO] [stdout] 19 + Err(GPUError::GPUDisabled) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gpu/nogpu.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | return Err(GPUError::GPUDisabled); [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] 23 - return Err(GPUError::GPUDisabled); [INFO] [stdout] 23 + Err(GPUError::GPUDisabled) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gpu/nogpu.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | return Err(GPUError::GPUDisabled); [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] 36 - return Err(GPUError::GPUDisabled); [INFO] [stdout] 36 + Err(GPUError::GPUDisabled) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gpu/nogpu.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | return Err(GPUError::GPUDisabled); [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] 50 - return Err(GPUError::GPUDisabled); [INFO] [stdout] 50 + Err(GPUError::GPUDisabled) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/groth16/tests/dummy_engine.rs:71:27 [INFO] [stdout] | [INFO] [stdout] 71 | Some(self.pow(&[(MODULUS_R.0 as u64) - 2])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `[(MODULUS_R.0 as u64) - 2]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/groth16/tests/dummy_engine.rs:204:9 [INFO] [stdout] | [INFO] [stdout] 204 | self.0[0] % 2 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace with: `self.0[0].is_multiple_of(2)` [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: called `unwrap` on `self.a` after checking its variant with `is_some` [INFO] [stdout] --> src/groth16/tests/mod.rs:74:24 [INFO] [stdout] | [INFO] [stdout] 73 | if self.a.is_some() && self.b.is_some() { [INFO] [stdout] | ---------------- the check is happening here [INFO] [stdout] 74 | if self.a.unwrap() ^ self.b.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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.b` after checking its variant with `is_some` [INFO] [stdout] --> src/groth16/tests/mod.rs:74:42 [INFO] [stdout] | [INFO] [stdout] 73 | if self.a.is_some() && self.b.is_some() { [INFO] [stdout] | ---------------- the check is happening here [INFO] [stdout] 74 | if self.a.unwrap() ^ self.b.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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/groth16/tests/mod.rs:134:45 [INFO] [stdout] | [INFO] [stdout] 134 | assert_eq!(Fr::one(), root_of_unity.pow(&[1 << 10])); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `[1 << 10]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/groth16/tests/mod.rs:137:39 [INFO] [stdout] | [INFO] [stdout] 137 | root_of_unity = root_of_unity.pow(&[1 << 7]); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `[1 << 7]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/groth16/tests/mod.rs:138:45 [INFO] [stdout] | [INFO] [stdout] 138 | assert_eq!(Fr::one(), root_of_unity.pow(&[1 << 3])); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `[1 << 3]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/groth16/tests/mod.rs:144:39 [INFO] [stdout] | [INFO] [stdout] 144 | points.push(root_of_unity.pow(&[i])); [INFO] [stdout] | ^^^^ help: change this to: `[i]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/groth16/tests/mod.rs:149:32 [INFO] [stdout] | [INFO] [stdout] 149 | let mut t_at_tau = tau.pow(&[8]); [INFO] [stdout] | ^^^^ help: change this to: `[8]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping `fake_proof.c` and `fake_proof.a` manually [INFO] [stdout] --> src/groth16/tests/mod.rs:510:13 [INFO] [stdout] | [INFO] [stdout] 510 | / let c = fake_proof.c; [INFO] [stdout] 511 | | fake_proof.c = fake_proof.a; [INFO] [stdout] 512 | | fake_proof.a = c; [INFO] [stdout] | |_____________________________^ help: try: `std::mem::swap(&mut fake_proof.c, &mut fake_proof.a);` [INFO] [stdout] | [INFO] [stdout] = note: or maybe you should use `std::mem::replace`? [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] = note: `#[warn(clippy::manual_swap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping `fake_proof[0].c` and `fake_proof[0].a` manually [INFO] [stdout] --> src/groth16/tests/mod.rs:622:13 [INFO] [stdout] | [INFO] [stdout] 622 | / let c = fake_proof[0].c; [INFO] [stdout] 623 | | fake_proof[0].c = fake_proof[0].a; [INFO] [stdout] 624 | | fake_proof[0].a = c; [INFO] [stdout] | |________________________________^ help: try: `std::mem::swap(&mut fake_proof[0].c, &mut fake_proof[0].a);` [INFO] [stdout] | [INFO] [stdout] = note: or maybe you should use `std::mem::replace`? [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/groth16/generator.rs:180:1 [INFO] [stdout] | [INFO] [stdout] 180 | / pub fn generate_parameters( [INFO] [stdout] 181 | | circuit: C, [INFO] [stdout] 182 | | g1: E::G1, [INFO] [stdout] 183 | | g2: E::G2, [INFO] [stdout] ... | [INFO] [stdout] 191 | | E: Engine, [INFO] [stdout] 192 | | C: Circuit, [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/groth16/generator.rs:245:61 [INFO] [stdout] | [INFO] [stdout] 245 | let mut current_tau_power = tau.pow(&[(i * chunk) as u64]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `[(i * chunk) as u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (14/7) [INFO] [stdout] --> src/groth16/generator.rs:296:5 [INFO] [stdout] | [INFO] [stdout] 296 | / fn eval( [INFO] [stdout] 297 | | // wNAF window tables [INFO] [stdout] 298 | | g1_wnaf: &Wnaf>, [INFO] [stdout] 299 | | g2_wnaf: &Wnaf>, [INFO] [stdout] ... | [INFO] [stdout] 323 | | worker: &Worker, [INFO] [stdout] 324 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/groth16/generator.rs:389:39 [INFO] [stdout] | [INFO] [stdout] 389 | at.mul_assign(&beta); [INFO] [stdout] | ^^^^^ help: change this to: `beta` [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/groth16/generator.rs:390:39 [INFO] [stdout] | [INFO] [stdout] 390 | bt.mul_assign(&alpha); [INFO] [stdout] | ^^^^^^ help: change this to: `alpha` [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: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/groth16/mapped_params.rs:51:6 [INFO] [stdout] | [INFO] [stdout] 51 | impl<'a, E: Engine> ParameterSource for &'a MappedParameters { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 51 - impl<'a, E: Engine> ParameterSource for &'a MappedParameters { [INFO] [stdout] 51 + impl ParameterSource for &MappedParameters { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/groth16/params.rs:116:35 [INFO] [stdout] | [INFO] [stdout] 116 | let len = read_length(¶ms, &mut *offset)?; [INFO] [stdout] | ^^^^^^^ help: change this to: `params` [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/groth16/params.rs:238:35 [INFO] [stdout] | [INFO] [stdout] 238 | let len = read_length(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:240:39 [INFO] [stdout] | [INFO] [stdout] 240 | (*param).push(read_g1(&mmap, &mut *offset)?); [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:250:35 [INFO] [stdout] | [INFO] [stdout] 250 | let len = read_length(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:252:39 [INFO] [stdout] | [INFO] [stdout] 252 | (*param).push(read_g2(&mmap, &mut *offset)?); [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:259:47 [INFO] [stdout] | [INFO] [stdout] 259 | let vk = VerifyingKey::::read_mmap(&mmap, &mut offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:267:17 [INFO] [stdout] | [INFO] [stdout] 267 | get_g1s(&mmap, &mut offset, &mut h)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:268:17 [INFO] [stdout] | [INFO] [stdout] 268 | get_g1s(&mmap, &mut offset, &mut l)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:269:17 [INFO] [stdout] | [INFO] [stdout] 269 | get_g1s(&mmap, &mut offset, &mut a)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:270:17 [INFO] [stdout] | [INFO] [stdout] 270 | get_g1s(&mmap, &mut offset, &mut b_g1)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/params.rs:271:17 [INFO] [stdout] | [INFO] [stdout] 271 | get_g2s(&mmap, &mut offset, &mut b_g2)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/groth16/params.rs:406:6 [INFO] [stdout] | [INFO] [stdout] 406 | impl<'a, E: Engine> ParameterSource for &'a Parameters { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 406 - impl<'a, E: Engine> ParameterSource for &'a Parameters { [INFO] [stdout] 406 + impl ParameterSource for &Parameters { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/groth16/prover.rs:391:45 [INFO] [stdout] | [INFO] [stdout] 391 | let _input_assignment = std::mem::replace(&mut prover.input_assignment, Vec::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut prover.input_assignment)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: `#[warn(clippy::mem_replace_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/groth16/prover.rs:392:43 [INFO] [stdout] | [INFO] [stdout] 392 | let _aux_assignment = std::mem::replace(&mut prover.aux_assignment, Vec::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut prover.aux_assignment)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/groth16/prover.rs:445:47 [INFO] [stdout] | [INFO] [stdout] 445 | EvaluationDomain::from_coeffs(std::mem::replace(&mut prover.a, Vec::new()))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut prover.a)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/groth16/prover.rs:447:47 [INFO] [stdout] | [INFO] [stdout] 447 | EvaluationDomain::from_coeffs(std::mem::replace(&mut prover.b, Vec::new()))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut prover.b)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/groth16/prover.rs:449:47 [INFO] [stdout] | [INFO] [stdout] 449 | EvaluationDomain::from_coeffs(std::mem::replace(&mut prover.c, Vec::new()))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut prover.c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `std::mem::drop` with a value that does not implement `Drop`. Dropping such a type only extends its contained lifetimes [INFO] [stdout] --> src/groth16/prover.rs:472:5 [INFO] [stdout] | [INFO] [stdout] 472 | drop(fft_kern); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: argument has type `std::option::Option>` [INFO] [stdout] --> src/groth16/prover.rs:472:10 [INFO] [stdout] | [INFO] [stdout] 472 | drop(fft_kern); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_non_drop [INFO] [stdout] = note: `#[warn(clippy::drop_non_drop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/groth16/prover.rs:526:14 [INFO] [stdout] | [INFO] [stdout] 526 | .zip(assignments.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 526 - .zip(assignments.into_iter()) [INFO] [stdout] 526 + .zip(assignments) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `std::mem::drop` with a value that does not implement `Drop`. Dropping such a type only extends its contained lifetimes [INFO] [stdout] --> src/groth16/prover.rs:623:5 [INFO] [stdout] | [INFO] [stdout] 623 | drop(multiexp_kern); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: argument has type `std::option::Option>` [INFO] [stdout] --> src/groth16/prover.rs:623:10 [INFO] [stdout] | [INFO] [stdout] 623 | drop(multiexp_kern); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_non_drop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/groth16/prover.rs:635:14 [INFO] [stdout] | [INFO] [stdout] 635 | .zip(l_s.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 635 - .zip(l_s.into_iter()) [INFO] [stdout] 635 + .zip(l_s) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/groth16/prover.rs:636:14 [INFO] [stdout] | [INFO] [stdout] 636 | .zip(inputs.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 636 - .zip(inputs.into_iter()) [INFO] [stdout] 636 + .zip(inputs) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/groth16/prover.rs:637:14 [INFO] [stdout] | [INFO] [stdout] 637 | .zip(r_s.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 637 - .zip(r_s.into_iter()) [INFO] [stdout] 637 + .zip(r_s) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/groth16/prover.rs:638:14 [INFO] [stdout] | [INFO] [stdout] 638 | .zip(s_s.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 638 - .zip(s_s.into_iter()) [INFO] [stdout] 638 + .zip(s_s) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Fr` which implements the `Copy` trait [INFO] [stdout] --> src/groth16/prover.rs:743:75 [INFO] [stdout] | [INFO] [stdout] 743 | ... .alloc(|| format!("alloc:{},{}", i, k), || Ok(el.clone())) [INFO] [stdout] | ^^^^^^^^^^ help: try removing the `clone` call: `el` [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 `Fr` which implements the `Copy` trait [INFO] [stdout] --> src/groth16/prover.rs:753:87 [INFO] [stdout] | [INFO] [stdout] 753 | ... .alloc_input(|| format!("alloc_input:{},{}", i, k), || Ok(el.clone())) [INFO] [stdout] | ^^^^^^^^^^ help: try removing the `clone` call: `el` [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 following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/groth16/verifier.rs:31:21 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn verify_proof<'a, E: Engine>( [INFO] [stdout] | ^^ [INFO] [stdout] 32 | pvk: &'a PreparedVerifyingKey, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 31 ~ pub fn verify_proof( [INFO] [stdout] 32 ~ pvk: &PreparedVerifyingKey, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/groth16/verifier.rs:101:28 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn verify_proofs_batch<'a, E: Engine, R: rand::RngCore>( [INFO] [stdout] | ^^ [INFO] [stdout] 102 | pvk: &'a PreparedVerifyingKey, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 101 ~ pub fn verify_proofs_batch( [INFO] [stdout] 102 ~ pvk: &PreparedVerifyingKey, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/groth16/verifier.rs:212:25 [INFO] [stdout] | [INFO] [stdout] 212 | &rand_z_repr, [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `rand_z_repr` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/groth16/verifier.rs:257:47 [INFO] [stdout] | [INFO] [stdout] 257 | *y = pvk.alpha_g1_beta_g2.pow(&accum_y_neg.into_repr()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `accum_y_neg.into_repr()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/groth16/verifying_key.rs:174:32 [INFO] [stdout] | [INFO] [stdout] 174 | let alpha_g1 = read_g1(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/verifying_key.rs:175:31 [INFO] [stdout] | [INFO] [stdout] 175 | let beta_g1 = read_g1(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/verifying_key.rs:176:31 [INFO] [stdout] | [INFO] [stdout] 176 | let beta_g2 = read_g2(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/verifying_key.rs:177:32 [INFO] [stdout] | [INFO] [stdout] 177 | let gamma_g2 = read_g2(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/verifying_key.rs:178:32 [INFO] [stdout] | [INFO] [stdout] 178 | let delta_g1 = read_g1(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/verifying_key.rs:179:32 [INFO] [stdout] | [INFO] [stdout] 179 | let delta_g2 = read_g2(&mmap, &mut *offset)?; [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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/groth16/verifying_key.rs:188:35 [INFO] [stdout] | [INFO] [stdout] 188 | let g1_repr = read_g1(&mmap, &mut *offset); [INFO] [stdout] | ^^^^^ help: change this to: `mmap` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/groth16/multiscalar.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | if nbits % precomp_table.window_size() != 0 || BITS_PER_LIMB % precomp_table.window_size() != 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!nbits.is_multiple_of(precomp_table.window_size())` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/groth16/multiscalar.rs:148:52 [INFO] [stdout] | [INFO] [stdout] 148 | if nbits % precomp_table.window_size() != 0 || BITS_PER_LIMB % precomp_table.window_size() != 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!BITS_PER_LIMB.is_multiple_of(precomp_table.window_size())` [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: manually reimplementing `div_ceil` [INFO] [stdout] --> src/groth16/multiscalar.rs:156:23 [INFO] [stdout] | [INFO] [stdout] 156 | let num_windows = (nbits + precomp_table.window_size() - 1) / precomp_table.window_size(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nbits.div_ceil(precomp_table.window_size())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/groth16/multiscalar.rs:219:21 [INFO] [stdout] | [INFO] [stdout] 219 | let num_parts = (num_points + chunk_size - 1) / chunk_size; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `num_points.div_ceil(chunk_size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/groth16/multiscalar.rs:249:13 [INFO] [stdout] | [INFO] [stdout] 249 | || E::G1::zero(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `E::G1::zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/groth16/multiscalar.rs:246:25 [INFO] [stdout] | [INFO] [stdout] 246 | multiscalar(&scalars, &subset, nbits) [INFO] [stdout] | ^^^^^^^^ help: change this to: `scalars` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/groth16/multiscalar.rs:237:35 [INFO] [stdout] | [INFO] [stdout] 237 | ScalarList::Slice(ref s) => &s[start_idx..end_idx], [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 237 - ScalarList::Slice(ref s) => &s[start_idx..end_idx], [INFO] [stdout] 237 + ScalarList::Slice(s) => &s[start_idx..end_idx], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Worker` [INFO] [stdout] --> src/multicore.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / pub fn new() -> Worker { [INFO] [stdout] 37 | | Worker {} [INFO] [stdout] 38 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 35 + impl Default for Worker { [INFO] [stdout] 36 + fn default() -> Self { [INFO] [stdout] 37 + Self::new() [INFO] [stdout] 38 + } [INFO] [stdout] 39 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually take no `self` [INFO] [stdout] --> src/multiexp.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | fn new(self) -> Self::Source; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/multiexp.rs:102:6 [INFO] [stdout] | [INFO] [stdout] 102 | impl<'a> QueryDensity for &'a FullDensity { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 102 - impl<'a> QueryDensity for &'a FullDensity { [INFO] [stdout] 102 + impl QueryDensity for &FullDensity { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `DensityTracker` [INFO] [stdout] --> src/multiexp.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | / pub fn new() -> DensityTracker { [INFO] [stdout] 134 | | DensityTracker { [INFO] [stdout] 135 | | bv: BitVec::new(), [INFO] [stdout] 136 | | total_density: 0, [INFO] [stdout] 137 | | } [INFO] [stdout] 138 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 132 + impl Default for DensityTracker { [INFO] [stdout] 133 + fn default() -> Self { [INFO] [stdout] 134 + Self::new() [INFO] [stdout] 135 + } [INFO] [stdout] 136 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/multiexp.rs:291:7 [INFO] [stdout] | [INFO] [stdout] 291 | ) -> (Arc>, Arc::Fr as PrimeField>::Repr>>, usize, usize) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/multiexp.rs:667:32 [INFO] [stdout] | [INFO] [stdout] 667 | let mut dt = unset(&mut rng); [INFO] [stdout] | ^^^^^^^^ help: change this to: `rng` [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 `OrderedVariable` which implements the `Copy` trait [INFO] [stdout] --> src/util_cs/metric_cs.rs:69:28 [INFO] [stdout] | [INFO] [stdout] 69 | to_remove.push(var.clone()) [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*var` [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: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/util_cs/metric_cs.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | for &(ref _a, ref _b, ref _c, ref name) in &self.constraints { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 103 - for &(ref _a, ref _b, ref _c, ref name) in &self.constraints { [INFO] [stdout] 103 + for (_a, _b, _c, name) in &self.constraints { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/util_cs/metric_cs.rs:124:56 [INFO] [stdout] | [INFO] [stdout] 124 | .map(|i| E::Fr::from_str("2").unwrap().pow(&[u64::from(i)])) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `[u64::from(i)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/util_cs/metric_cs.rs:130:46 [INFO] [stdout] | [INFO] [stdout] 130 | for (var, coeff) in proc_lc::(&lc) { [INFO] [stdout] | ^^^ help: change this to: `lc` [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: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/util_cs/metric_cs.rs:165:13 [INFO] [stdout] | [INFO] [stdout] 165 | for &(ref a, ref b, ref c, ref name) in &self.constraints { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 165 - for &(ref a, ref b, ref c, ref name) in &self.constraints { [INFO] [stdout] 165 + for (a, b, c, name) in &self.constraints { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedVariable` which implements the `Copy` trait [INFO] [stdout] --> src/util_cs/test_cs.rs:74:28 [INFO] [stdout] | [INFO] [stdout] 74 | to_remove.push(var.clone()) [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*var` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/util_cs/test_cs.rs:122:24 [INFO] [stdout] | [INFO] [stdout] 122 | tmp.mul_assign(&coeff); [INFO] [stdout] | ^^^^^^ help: change this to: `coeff` [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/util_cs/test_cs.rs:142:24 [INFO] [stdout] | [INFO] [stdout] 142 | tmp.mul_assign(&coeff); [INFO] [stdout] | ^^^^^^ help: change this to: `coeff` [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: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/util_cs/test_cs.rs:182:13 [INFO] [stdout] | [INFO] [stdout] 182 | for &(ref _a, ref _b, ref _c, ref name) in &self.constraints { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 182 - for &(ref _a, ref _b, ref _c, ref name) in &self.constraints { [INFO] [stdout] 182 + for (_a, _b, _c, name) in &self.constraints { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/util_cs/test_cs.rs:221:13 [INFO] [stdout] | [INFO] [stdout] 221 | for &(ref a, ref b, ref c, ref path) in &self.constraints { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 221 - for &(ref a, ref b, ref c, ref path) in &self.constraints { [INFO] [stdout] 221 + for (a, b, c, path) in &self.constraints { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/util_cs/test_cs.rs:229:29 [INFO] [stdout] | [INFO] [stdout] 229 | return Some(&*path); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 229 - return Some(&*path); [INFO] [stdout] 229 + return Some(path); [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 229 | return Some(&**path); [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/util_cs/test_cs.rs:253:18 [INFO] [stdout] | [INFO] [stdout] 253 | Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 253 - Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] 253 + Some(NamedObject::Var(v)) => match v.get_unchecked() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/util_cs/test_cs.rs:294:18 [INFO] [stdout] | [INFO] [stdout] 294 | Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 294 - Some(&NamedObject::Var(ref v)) => match v.get_unchecked() { [INFO] [stdout] 294 + Some(NamedObject::Var(v)) => match v.get_unchecked() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'cs [INFO] [stdout] --> src/lib.rs:522:6 [INFO] [stdout] | [INFO] [stdout] 522 | impl<'cs, E: ScalarEngine, CS: ConstraintSystem> ConstraintSystem for &'cs mut CS { [INFO] [stdout] | ^^^ ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 522 - impl<'cs, E: ScalarEngine, CS: ConstraintSystem> ConstraintSystem for &'cs mut CS { [INFO] [stdout] 522 + impl> ConstraintSystem for &mut CS { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `expected_sums` [INFO] [stdout] --> src/lib.rs:589:18 [INFO] [stdout] | [INFO] [stdout] 589 | for i in 0..n { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 589 - for i in 0..n { [INFO] [stdout] 589 + for (i, ) in expected_sums.iter_mut().enumerate().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/gadgets/sha256.rs:169:21 [INFO] [stdout] | [INFO] [stdout] 169 | let temp1 = vec![ [INFO] [stdout] | _____________________^ [INFO] [stdout] 170 | | h.clone(), [INFO] [stdout] 171 | | s1, [INFO] [stdout] 172 | | ch, [INFO] [stdout] 173 | | UInt32::constant(ROUND_CONSTANTS[i]), [INFO] [stdout] 174 | | w[i].clone(), [INFO] [stdout] 175 | | ]; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 169 ~ let temp1 = [h.clone(), [INFO] [stdout] 170 + s1, [INFO] [stdout] 171 + ch, [INFO] [stdout] 172 + UInt32::constant(ROUND_CONSTANTS[i]), [INFO] [stdout] 173 ~ w[i].clone()]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/gadgets/sha256.rs:187:21 [INFO] [stdout] | [INFO] [stdout] 187 | let temp2 = vec![s0, maj]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: you can use an array directly: `[s0, maj]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.28s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.3.4 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "dc8021c95972562cd9be50aacf5aa0dda90ee75386f7c919f5a93223b3ef39c6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dc8021c95972562cd9be50aacf5aa0dda90ee75386f7c919f5a93223b3ef39c6", kill_on_drop: false }` [INFO] [stdout] dc8021c95972562cd9be50aacf5aa0dda90ee75386f7c919f5a93223b3ef39c6