[INFO] fetching crate confidential_identity_core 1.1.2... [INFO] linting confidential_identity_core-1.1.2 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate confidential_identity_core 1.1.2 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate confidential_identity_core 1.1.2 [INFO] finished tweaking crates.io crate confidential_identity_core 1.1.2 [INFO] tweaked toml for crates.io crate confidential_identity_core 1.1.2 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate confidential_identity_core 1.1.2 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Locking 142 packages to latest compatible versions [INFO] [stderr] Adding bulletproofs v4.0.0 (available: v5.0.0) [INFO] [stderr] Adding criterion v0.3.6 (available: v0.8.2) [INFO] [stderr] Adding generic-array v0.14.7 (available: v0.14.9) [INFO] [stderr] Adding getrandom v0.2.17 (available: v0.4.2) [INFO] [stderr] Adding rand v0.8.5 (available: v0.10.0) [INFO] [stderr] Adding rand_core v0.6.4 (available: v0.10.0) [INFO] [stderr] Adding sha3 v0.9.1 (available: v0.10.8) [INFO] [stderr] Adding sp-std v5.0.0 (available: v14.0.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded minicov v0.3.8 [INFO] [stderr] Downloaded digest v0.9.0 [INFO] [stderr] Downloaded keccak v0.1.6 [INFO] [stderr] Downloaded wasm-bindgen-test-shared v0.2.114 [INFO] [stderr] Downloaded wasm-bindgen-test-macro v0.3.64 [INFO] [stderr] Downloaded sp-std v5.0.0 [INFO] [stderr] Downloaded block-padding v0.2.1 [INFO] [stderr] Downloaded wasm-bindgen-test v0.3.64 [INFO] [stderr] Downloaded clear_on_drop v0.2.5 [INFO] [stderr] Downloaded merlin v3.0.0 [INFO] [stderr] Downloaded const_format_proc_macros v0.2.34 [INFO] [stderr] Downloaded blake2 v0.10.6 [INFO] [stderr] Downloaded derive_more v1.0.0 [INFO] [stderr] Downloaded parity-scale-codec v3.7.5 [INFO] [stderr] Downloaded libm v0.2.16 [INFO] [stderr] Downloaded scale-info v2.11.6 [INFO] [stderr] Downloaded impl-trait-for-tuples v0.2.3 [INFO] [stderr] Downloaded derive_more-impl v1.0.0 [INFO] [stderr] Downloaded packed_simd_2 v0.3.8 [INFO] [stderr] Downloaded libm v0.1.4 [INFO] [stderr] Downloaded const_format v0.2.35 [INFO] [stderr] Downloaded sha3 v0.9.1 [INFO] [stderr] Downloaded scale-info-derive v2.11.6 [INFO] [stderr] Downloaded parity-scale-codec-derive v3.7.5 [INFO] [stderr] Downloaded block-buffer v0.9.0 [INFO] [stderr] Downloaded subtle-ng v2.5.0 [INFO] [stderr] Downloaded byte-slice-cast v1.2.3 [INFO] [stderr] Downloaded curve25519-dalek-ng v4.1.1 [INFO] [stderr] Downloaded bulletproofs v4.0.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a603ce274971b7e77d4e73894dd9102b2bdda3e267dcc71b30b70d64ddeda90a [INFO] running `Command { std: "docker" "start" "-a" "a603ce274971b7e77d4e73894dd9102b2bdda3e267dcc71b30b70d64ddeda90a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a603ce274971b7e77d4e73894dd9102b2bdda3e267dcc71b30b70d64ddeda90a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a603ce274971b7e77d4e73894dd9102b2bdda3e267dcc71b30b70d64ddeda90a", kill_on_drop: false }` [INFO] [stdout] a603ce274971b7e77d4e73894dd9102b2bdda3e267dcc71b30b70d64ddeda90a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b807d98f787a0bb589ec16e31e42599bf09f7fa5d265340b3fb47df4b6ab42db [INFO] running `Command { std: "docker" "start" "-a" "b807d98f787a0bb589ec16e31e42599bf09f7fa5d265340b3fb47df4b6ab42db", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Checking cfg-if v1.0.4 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling wasm-bindgen-shared v0.2.114 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling winnow v1.0.0 [INFO] [stderr] Compiling libm v0.2.16 [INFO] [stderr] Compiling toml_datetime v1.0.1+spec-1.1.0 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Checking memchr v2.8.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Checking itoa v1.0.17 [INFO] [stderr] Compiling bumpalo v3.20.2 [INFO] [stderr] Checking unicode-ident v1.0.24 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling clear_on_drop v0.2.5 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Checking regex-syntax v0.8.10 [INFO] [stderr] Checking keccak v0.1.6 [INFO] [stderr] Checking once_cell v1.21.4 [INFO] [stderr] Checking unicode-width v0.1.14 [INFO] [stderr] Compiling const_format_proc_macros v0.2.34 [INFO] [stderr] Checking cast v0.3.0 [INFO] [stderr] Checking block-padding v0.2.1 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking plotters-backend v0.3.7 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking csv-core v0.1.13 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Checking plotters-svg v0.3.7 [INFO] [stderr] Checking byte-slice-cast v1.2.3 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking opaque-debug v0.3.1 [INFO] [stderr] Checking oorandom v11.1.5 [INFO] [stderr] Checking subtle-ng v2.5.0 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Compiling wasm-bindgen v0.2.114 [INFO] [stderr] Compiling parity-scale-codec v3.7.5 [INFO] [stderr] Checking half v1.8.3 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking ryu v1.0.23 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking walkdir v2.5.0 [INFO] [stderr] Checking rayon v1.11.0 [INFO] [stderr] Checking clap v2.34.0 [INFO] [stderr] Compiling toml_parser v1.0.10+spec-1.1.0 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking wasm-bindgen-test-shared v0.2.114 [INFO] [stderr] Checking nu-ansi-term v0.50.3 [INFO] [stderr] Checking sp-std v5.0.0 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Checking crypto-common v0.1.7 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking const_format v0.2.35 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking sha3 v0.9.1 [INFO] [stderr] Compiling toml_edit v0.25.5+spec-1.1.0 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Checking blake2 v0.10.6 [INFO] [stderr] Checking criterion-plot v0.4.5 [INFO] [stderr] Checking csv v1.4.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling proc-macro-crate v3.5.0 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.114 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zeroize_derive v1.4.3 [INFO] [stderr] Compiling derive_more-impl v1.0.0 [INFO] [stderr] Compiling parity-scale-codec-derive v3.7.5 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling impl-trait-for-tuples v0.2.3 [INFO] [stderr] Compiling scale-info-derive v2.11.6 [INFO] [stderr] Compiling wasm-bindgen-test-macro v0.3.64 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Checking zeroize v1.8.2 [INFO] [stderr] Checking merlin v3.0.0 [INFO] [stderr] Checking derive_more v1.0.0 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.114 [INFO] [stderr] Checking js-sys v0.3.91 [INFO] [stderr] Checking serde_cbor v0.11.2 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking curve25519-dalek-ng v4.1.1 [INFO] [stderr] Checking criterion v0.3.6 [INFO] [stderr] Checking bulletproofs v4.0.0 [INFO] [stderr] Checking scale-info v2.11.6 [INFO] [stderr] Checking confidential_identity_core v1.1.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/asset_proofs/macros.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | / /// [INFO] [stdout] 3 | | [INFO] [stdout] | |_^ [INFO] [stdout] 4 | /// Define borrow and non-borrow variants of `Add`. [INFO] [stdout] 5 | macro_rules! define_add_variants { [INFO] [stdout] | -------------------------------- the comment documents this macro definition [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! These macros are coppied from: [INFO] [stdout] 2 ~ //! [INFO] [stdout] | [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 3 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/asset_proofs/elgamal_encryption.rs:174:1 [INFO] [stdout] | [INFO] [stdout] 174 | / /// where g and h are 2 orthogonal generators. [INFO] [stdout] 175 | | [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 180 | pub struct ElgamalSecretKey { [INFO] [stdout] | --------------------------- the comment documents this struct [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 175 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:333:26 [INFO] [stdout] | [INFO] [stdout] 333 | f_values[(i * n + j)] = proof_f_elements[proof_f_idx]; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 333 - f_values[(i * n + j)] = proof_f_elements[proof_f_idx]; [INFO] [stdout] 333 + f_values[i * n + j] = proof_f_elements[proof_f_idx]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:334:26 [INFO] [stdout] | [INFO] [stdout] 334 | f_values[(i * n)] -= proof_f_elements[proof_f_idx]; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 334 - f_values[(i * n)] -= proof_f_elements[proof_f_idx]; [INFO] [stdout] 334 + f_values[i * n] -= proof_f_elements[proof_f_idx]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:899:26 [INFO] [stdout] | [INFO] [stdout] 899 | f_values[(i * n + j)] = proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 899 - f_values[(i * n + j)] = proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] 899 + f_values[i * n + j] = proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:899:58 [INFO] [stdout] | [INFO] [stdout] 899 | f_values[(i * n + j)] = proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 899 - f_values[(i * n + j)] = proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] 899 + f_values[(i * n + j)] = proof_f_elements[i * (n - 1) + (j - 1)]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:900:26 [INFO] [stdout] | [INFO] [stdout] 900 | f_values[(i * n)] -= proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 900 - f_values[(i * n)] -= proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] 900 + f_values[i * n] -= proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:900:55 [INFO] [stdout] | [INFO] [stdout] 900 | f_values[(i * n)] -= proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 900 - f_values[(i * n)] -= proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] 900 + f_values[(i * n)] -= proof_f_elements[i * (n - 1) + (j - 1)]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_vec` [INFO] [stdout] --> src/cdd_claim/pedersen_commitments.rs:96:48 [INFO] [stdout] | [INFO] [stdout] 96 | ristretto_base_bytes.extend_from_slice(&PEDERSEN_COMMITMENT_LABEL.to_vec()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `PEDERSEN_COMMITMENT_LABEL.as_ref()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/asset_proofs/elgamal_encryption.rs:118:6 [INFO] [stdout] | [INFO] [stdout] 118 | impl<'a, 'b> Add<&'b CipherText> for &'a CipherText { [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] 118 - impl<'a, 'b> Add<&'b CipherText> for &'a CipherText { [INFO] [stdout] 118 + impl<'b> Add<&'b CipherText> for &CipherText { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> src/asset_proofs/elgamal_encryption.rs:130:6 [INFO] [stdout] | [INFO] [stdout] 130 | impl<'b> AddAssign<&'b CipherText> for CipherText { [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] 130 - impl<'b> AddAssign<&'b CipherText> for CipherText { [INFO] [stdout] 130 + impl AddAssign<&CipherText> for CipherText { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/asset_proofs/elgamal_encryption.rs:137:6 [INFO] [stdout] | [INFO] [stdout] 137 | impl<'a, 'b> Sub<&'b CipherText> for &'a CipherText { [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] 137 - impl<'a, 'b> Sub<&'b CipherText> for &'a CipherText { [INFO] [stdout] 137 + impl<'b> Sub<&'b CipherText> for &CipherText { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> src/asset_proofs/elgamal_encryption.rs:149:6 [INFO] [stdout] | [INFO] [stdout] 149 | impl<'b> SubAssign<&'b CipherText> for CipherText { [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] 149 - impl<'b> SubAssign<&'b CipherText> for CipherText { [INFO] [stdout] 149 + impl SubAssign<&CipherText> for CipherText { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> src/asset_proofs/elgamal_encryption.rs:273:21 [INFO] [stdout] | [INFO] [stdout] 273 | for v in 0..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] 273 - for v in 0..u32::max_value() { [INFO] [stdout] 273 + for v in 0..u32::MAX { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/asset_proofs/const_time_elgamal_encryption.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | /// a twisted Elgamal cipher text. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 54 | /// a twisted Elgamal cipher text. [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:351:25 [INFO] [stdout] | [INFO] [stdout] 351 | for j in 0..m as usize { [INFO] [stdout] | ^^^^^^^^^^ help: try: `m` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:352:37 [INFO] [stdout] | [INFO] [stdout] 352 | p_i *= f_values[j * n as usize + i_rep[j]]; [INFO] [stdout] | ^^^^^^^^^^ help: try: `n` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:370:36 [INFO] [stdout] | [INFO] [stdout] 370 | for i in initial_size..size as usize { [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `size` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:373:29 [INFO] [stdout] | [INFO] [stdout] 373 | for j in 0..m as usize { [INFO] [stdout] | ^^^^^^^^^^ help: try: `m` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_vec` [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:101:48 [INFO] [stdout] | [INFO] [stdout] 101 | ristretto_base_bytes.extend_from_slice(&OOON_PROOF_LABEL.to_vec()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `OOON_PROOF_LABEL.as_ref()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:173:21 [INFO] [stdout] | [INFO] [stdout] 173 | for i in 0..self.rows as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.rows` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:174:25 [INFO] [stdout] | [INFO] [stdout] 174 | for j in 0..self.columns as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.columns` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:175:36 [INFO] [stdout] | [INFO] [stdout] 175 | let k: usize = i * self.columns as usize + j; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.columns` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:183:6 [INFO] [stdout] | [INFO] [stdout] 183 | impl<'a, 'b> Add<&'b Matrix> for &'a Matrix { [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] 183 - impl<'a, 'b> Add<&'b Matrix> for &'a Matrix { [INFO] [stdout] 183 + impl<'b> Add<&'b Matrix> for &Matrix { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:187:21 [INFO] [stdout] | [INFO] [stdout] 187 | for i in 0..self.rows as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.rows` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:188:26 [INFO] [stdout] | [INFO] [stdout] 188 | let kb = i * self.columns as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.columns` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:189:25 [INFO] [stdout] | [INFO] [stdout] 189 | for j in 0..self.columns as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.columns` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:199:6 [INFO] [stdout] | [INFO] [stdout] 199 | impl<'a, 'b> Sub<&'b Matrix> for &'a Matrix { [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] 199 - impl<'a, 'b> Sub<&'b Matrix> for &'a Matrix { [INFO] [stdout] 199 + impl<'b> Sub<&'b Matrix> for &Matrix { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:203:21 [INFO] [stdout] | [INFO] [stdout] 203 | for i in 0..self.rows as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.rows` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:204:26 [INFO] [stdout] | [INFO] [stdout] 204 | let kb = i * self.columns as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.columns` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:205:25 [INFO] [stdout] | [INFO] [stdout] 205 | for j in 0..self.columns as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.columns` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:772:19 [INFO] [stdout] | [INFO] [stdout] 772 | let exp = self.exp as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `self.exp` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:874:41 [INFO] [stdout] | [INFO] [stdout] 874 | let size = final_response.n.pow(final_response.m as u32) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `final_response.m` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking wasm-bindgen-futures v0.4.64 [INFO] [stderr] Checking wasm-bindgen-test v0.3.64 [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> benches/membership_verification.rs:26:37 [INFO] [stdout] | [INFO] [stdout] 26 | let elements: Vec = (0..SET_SIZE as u32).map(Scalar::from).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `SET_SIZE` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> benches/membership_verification.rs:53:37 [INFO] [stdout] | [INFO] [stdout] 53 | let elements: Vec = (0..SET_SIZE as u32).map(Scalar::from).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `SET_SIZE` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/asset_proofs/macros.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | / /// [INFO] [stdout] 3 | | [INFO] [stdout] | |_^ [INFO] [stdout] 4 | /// Define borrow and non-borrow variants of `Add`. [INFO] [stdout] 5 | macro_rules! define_add_variants { [INFO] [stdout] | -------------------------------- the comment documents this macro definition [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! These macros are coppied from: [INFO] [stdout] 2 ~ //! [INFO] [stdout] | [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 3 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/asset_proofs/elgamal_encryption.rs:174:1 [INFO] [stdout] | [INFO] [stdout] 174 | / /// where g and h are 2 orthogonal generators. [INFO] [stdout] 175 | | [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 180 | pub struct ElgamalSecretKey { [INFO] [stdout] | --------------------------- the comment documents this struct [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 175 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:333:26 [INFO] [stdout] | [INFO] [stdout] 333 | f_values[(i * n + j)] = proof_f_elements[proof_f_idx]; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 333 - f_values[(i * n + j)] = proof_f_elements[proof_f_idx]; [INFO] [stdout] 333 + f_values[i * n + j] = proof_f_elements[proof_f_idx]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:334:26 [INFO] [stdout] | [INFO] [stdout] 334 | f_values[(i * n)] -= proof_f_elements[proof_f_idx]; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 334 - f_values[(i * n)] -= proof_f_elements[proof_f_idx]; [INFO] [stdout] 334 + f_values[i * n] -= proof_f_elements[proof_f_idx]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:899:26 [INFO] [stdout] | [INFO] [stdout] 899 | f_values[(i * n + j)] = proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 899 - f_values[(i * n + j)] = proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] 899 + f_values[i * n + j] = proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:899:58 [INFO] [stdout] | [INFO] [stdout] 899 | f_values[(i * n + j)] = proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 899 - f_values[(i * n + j)] = proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] 899 + f_values[(i * n + j)] = proof_f_elements[i * (n - 1) + (j - 1)]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:900:26 [INFO] [stdout] | [INFO] [stdout] 900 | f_values[(i * n)] -= proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 900 - f_values[(i * n)] -= proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] 900 + f_values[i * n] -= proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:900:55 [INFO] [stdout] | [INFO] [stdout] 900 | f_values[(i * n)] -= proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 900 - f_values[(i * n)] -= proof_f_elements[(i * (n - 1) + (j - 1))]; [INFO] [stdout] 900 + f_values[(i * n)] -= proof_f_elements[i * (n - 1) + (j - 1)]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_vec` [INFO] [stdout] --> src/cdd_claim/pedersen_commitments.rs:96:48 [INFO] [stdout] | [INFO] [stdout] 96 | ristretto_base_bytes.extend_from_slice(&PEDERSEN_COMMITMENT_LABEL.to_vec()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `PEDERSEN_COMMITMENT_LABEL.as_ref()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/asset_proofs/elgamal_encryption.rs:118:6 [INFO] [stdout] | [INFO] [stdout] 118 | impl<'a, 'b> Add<&'b CipherText> for &'a CipherText { [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] 118 - impl<'a, 'b> Add<&'b CipherText> for &'a CipherText { [INFO] [stdout] 118 + impl<'b> Add<&'b CipherText> for &CipherText { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> src/asset_proofs/elgamal_encryption.rs:130:6 [INFO] [stdout] | [INFO] [stdout] 130 | impl<'b> AddAssign<&'b CipherText> for CipherText { [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] 130 - impl<'b> AddAssign<&'b CipherText> for CipherText { [INFO] [stdout] 130 + impl AddAssign<&CipherText> for CipherText { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/asset_proofs/elgamal_encryption.rs:137:6 [INFO] [stdout] | [INFO] [stdout] 137 | impl<'a, 'b> Sub<&'b CipherText> for &'a CipherText { [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] 137 - impl<'a, 'b> Sub<&'b CipherText> for &'a CipherText { [INFO] [stdout] 137 + impl<'b> Sub<&'b CipherText> for &CipherText { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> src/asset_proofs/elgamal_encryption.rs:149:6 [INFO] [stdout] | [INFO] [stdout] 149 | impl<'b> SubAssign<&'b CipherText> for CipherText { [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] 149 - impl<'b> SubAssign<&'b CipherText> for CipherText { [INFO] [stdout] 149 + impl SubAssign<&CipherText> for CipherText { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> src/asset_proofs/elgamal_encryption.rs:273:21 [INFO] [stdout] | [INFO] [stdout] 273 | for v in 0..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] 273 - for v in 0..u32::max_value() { [INFO] [stdout] 273 + for v in 0..u32::MAX { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of a fallible conversion when an infallible one could be used [INFO] [stdout] --> src/asset_proofs/elgamal_encryption.rs:390:24 [INFO] [stdout] | [INFO] [stdout] 390 | let asset_id = AssetId::try_from(20u32).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: converting `u32` to `AssetId` cannot fail [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fallible_conversions [INFO] [stdout] = note: `#[warn(clippy::unnecessary_fallible_conversions)]` on by default [INFO] [stdout] help: use [INFO] [stdout] | [INFO] [stdout] 390 - let asset_id = AssetId::try_from(20u32).unwrap(); [INFO] [stdout] 390 + let asset_id = AssetId::from(20u32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/asset_proofs/const_time_elgamal_encryption.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | /// a twisted Elgamal cipher text. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 54 | /// a twisted Elgamal cipher text. [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/asset_proofs/encryption_proofs.rs:241:51 [INFO] [stdout] | [INFO] [stdout] 241 | fn create_wellformedness_proof_objects_helper<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 245 | pc_gens: &'a PedersenGens, [INFO] [stdout] | ^^ [INFO] [stdout] 246 | ) -> ( [INFO] [stdout] 247 | WellformednessProverAwaitingChallenge, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 248 | WellformednessVerifier, [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] 241 ~ fn create_wellformedness_proof_objects_helper( [INFO] [stdout] 242 | witness: CommitmentWitness, [INFO] [stdout] 243 | pub_key: ElgamalPublicKey, [INFO] [stdout] 244 | cipher: CipherText, [INFO] [stdout] 245 ~ pc_gens: &PedersenGens, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:351:25 [INFO] [stdout] | [INFO] [stdout] 351 | for j in 0..m as usize { [INFO] [stdout] | ^^^^^^^^^^ help: try: `m` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:352:37 [INFO] [stdout] | [INFO] [stdout] 352 | p_i *= f_values[j * n as usize + i_rep[j]]; [INFO] [stdout] | ^^^^^^^^^^ help: try: `n` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:370:36 [INFO] [stdout] | [INFO] [stdout] 370 | for i in initial_size..size as usize { [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `size` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:373:29 [INFO] [stdout] | [INFO] [stdout] 373 | for j in 0..m as usize { [INFO] [stdout] | ^^^^^^^^^^ help: try: `m` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u32` is unnecessary [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:422:46 [INFO] [stdout] | [INFO] [stdout] 422 | let even_elements: Vec = (0..64 as u32).map(|m| Scalar::from(2 * m)).collect(); [INFO] [stdout] | ^^^^^^^^^ help: try: `64_u32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u32` is unnecessary [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:423:45 [INFO] [stdout] | [INFO] [stdout] 423 | let odd_elements: Vec = (0..64 as u32).map(|m| Scalar::from(2 * m + 1)).collect(); [INFO] [stdout] | ^^^^^^^^^ help: try: `64_u32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u32` is unnecessary [INFO] [stdout] --> src/asset_proofs/membership_proof.rs:588:46 [INFO] [stdout] | [INFO] [stdout] 588 | let even_elements: Vec = (0..64 as u32).map(|m| Scalar::from(2 * m)).collect(); [INFO] [stdout] | ^^^^^^^^^ help: try: `64_u32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_vec` [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:101:48 [INFO] [stdout] | [INFO] [stdout] 101 | ristretto_base_bytes.extend_from_slice(&OOON_PROOF_LABEL.to_vec()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `OOON_PROOF_LABEL.as_ref()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:173:21 [INFO] [stdout] | [INFO] [stdout] 173 | for i in 0..self.rows as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.rows` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:174:25 [INFO] [stdout] | [INFO] [stdout] 174 | for j in 0..self.columns as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.columns` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:175:36 [INFO] [stdout] | [INFO] [stdout] 175 | let k: usize = i * self.columns as usize + j; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.columns` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:183:6 [INFO] [stdout] | [INFO] [stdout] 183 | impl<'a, 'b> Add<&'b Matrix> for &'a Matrix { [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] 183 - impl<'a, 'b> Add<&'b Matrix> for &'a Matrix { [INFO] [stdout] 183 + impl<'b> Add<&'b Matrix> for &Matrix { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:187:21 [INFO] [stdout] | [INFO] [stdout] 187 | for i in 0..self.rows as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.rows` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:188:26 [INFO] [stdout] | [INFO] [stdout] 188 | let kb = i * self.columns as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.columns` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:189:25 [INFO] [stdout] | [INFO] [stdout] 189 | for j in 0..self.columns as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.columns` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:199:6 [INFO] [stdout] | [INFO] [stdout] 199 | impl<'a, 'b> Sub<&'b Matrix> for &'a Matrix { [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] 199 - impl<'a, 'b> Sub<&'b Matrix> for &'a Matrix { [INFO] [stdout] 199 + impl<'b> Sub<&'b Matrix> for &Matrix { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:203:21 [INFO] [stdout] | [INFO] [stdout] 203 | for i in 0..self.rows as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.rows` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:204:26 [INFO] [stdout] | [INFO] [stdout] 204 | let kb = i * self.columns as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.columns` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:205:25 [INFO] [stdout] | [INFO] [stdout] 205 | for j in 0..self.columns as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.columns` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:772:19 [INFO] [stdout] | [INFO] [stdout] 772 | let exp = self.exp as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `self.exp` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> src/asset_proofs/one_out_of_many_proof.rs:874:41 [INFO] [stdout] | [INFO] [stdout] 874 | let size = final_response.n.pow(final_response.m as u32) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `final_response.m` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/asset_proofs/range_proof.rs:183:17 [INFO] [stdout] | [INFO] [stdout] 183 | assert!(!verify_within_range(&bad_proof, &mut rng).is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `verify_within_range(&bad_proof, &mut rng).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> src/asset_proofs/range_proof.rs:180:49 [INFO] [stdout] | [INFO] [stdout] 180 | let large_secret_value: u64 = u64::from(u32::max_value()) + 3; [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] 180 - let large_secret_value: u64 = u64::from(u32::max_value()) + 3; [INFO] [stdout] 180 + let large_secret_value: u64 = u64::from(u32::MAX) + 3; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/asset_proofs/const_time_elgamal_encryption.rs:186:22 [INFO] [stdout] | [INFO] [stdout] 186 | let values = vec![0u32, 1u32, 255u32, u32::MAX]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[0u32, 1u32, 255u32, u32::MAX]` [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] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/asset_proofs/encryption_proofs.rs:247:9 [INFO] [stdout] | [INFO] [stdout] 245 | pc_gens: &'a PedersenGens, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 246 | ) -> ( [INFO] [stdout] 247 | WellformednessProverAwaitingChallenge, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] 248 | WellformednessVerifier, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 247 ~ WellformednessProverAwaitingChallenge<'a>, [INFO] [stdout] 248 ~ WellformednessVerifier<'a>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 33.37s [INFO] running `Command { std: "docker" "inspect" "b807d98f787a0bb589ec16e31e42599bf09f7fa5d265340b3fb47df4b6ab42db", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b807d98f787a0bb589ec16e31e42599bf09f7fa5d265340b3fb47df4b6ab42db", kill_on_drop: false }` [INFO] [stdout] b807d98f787a0bb589ec16e31e42599bf09f7fa5d265340b3fb47df4b6ab42db