[INFO] cloning repository https://github.com/Janmajayamall/bfv
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Janmajayamall/bfv" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJanmajayamall%2Fbfv", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJanmajayamall%2Fbfv'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d28e38dd59f369337100c0b39e631d6121cd4fb6
[INFO] checking Janmajayamall/bfv against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJanmajayamall%2Fbfv" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Janmajayamall/bfv
[INFO] finished tweaking git repo https://github.com/Janmajayamall/bfv
[INFO] tweaked toml for git repo https://github.com/Janmajayamall/bfv written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Janmajayamall/bfv on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Janmajayamall/bfv 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/Janmajayamall/hexl-rs.git`
[INFO] [stderr]     Updating git submodule `https://github.com/Janmajayamall/hexl.git`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded seq-macro v0.3.3
[INFO] [stderr]   Downloaded os_str_bytes v6.5.1
[INFO] [stderr]   Downloaded pulp v0.11.11
[INFO] [stderr]   Downloaded concrete-ntt v0.1.0
[INFO] [stderr]   Downloaded bindgen v0.63.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 81138dfe4c8e6b8fab1ab930a6e185974636587a38555cf252291653d7ec1214
[INFO] running `Command { std: "docker" "start" "-a" "81138dfe4c8e6b8fab1ab930a6e185974636587a38555cf252291653d7ec1214", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "81138dfe4c8e6b8fab1ab930a6e185974636587a38555cf252291653d7ec1214", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "81138dfe4c8e6b8fab1ab930a6e185974636587a38555cf252291653d7ec1214", kill_on_drop: false }`
[INFO] [stdout] 81138dfe4c8e6b8fab1ab930a6e185974636587a38555cf252291653d7ec1214
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 23bdff33cb9e0ca00792a0c1b99d6caff044dea6023ab06103809c54d24abf4b
[INFO] running `Command { std: "docker" "start" "-a" "23bdff33cb9e0ca00792a0c1b99d6caff044dea6023ab06103809c54d24abf4b", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling libc v0.2.147
[INFO] [stderr]    Compiling proc-macro2 v1.0.63
[INFO] [stderr]    Compiling quote v1.0.28
[INFO] [stderr]    Compiling unicode-ident v1.0.9
[INFO] [stderr]    Compiling serde v1.0.164
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]     Checking either v1.8.1
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling matrixmultiply v0.3.7
[INFO] [stderr]     Checking spin v0.5.2
[INFO] [stderr]    Compiling libm v0.2.7
[INFO] [stderr]     Checking crossbeam-epoch v0.9.15
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling num-bigint v0.4.3
[INFO] [stderr]    Compiling serde_json v1.0.99
[INFO] [stderr]    Compiling num-bigint-dig v0.8.2
[INFO] [stderr]     Checking bytemuck v1.13.1
[INFO] [stderr]    Compiling rayon-core v1.11.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.3
[INFO] [stderr]     Checking pulp v0.11.11
[INFO] [stderr]     Checking crossbeam-channel v0.5.8
[INFO] [stderr]     Checking num-complex v0.4.3
[INFO] [stderr]     Checking half v1.8.2
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking num_cpus v1.15.0
[INFO] [stderr]     Checking ryu v1.0.13
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking plotters-backend v0.3.5
[INFO] [stderr]     Checking smallvec v1.10.0
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]    Compiling syn v2.0.22
[INFO] [stderr]     Checking aligned-vec v0.5.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking subtle v2.5.0
[INFO] [stderr]     Checking os_str_bytes v6.5.1
[INFO] [stderr]     Checking itoa v1.0.6
[INFO] [stderr]    Compiling bfv v0.1.0 (/opt/rustwide/workdir/bfv)
[INFO] [stderr]     Checking ciborium-io v0.2.1
[INFO] [stderr]     Checking crypto-bigint v0.4.9
[INFO] [stderr]     Checking plotters-svg v0.3.5
[INFO] [stderr]     Checking ciborium-ll v0.2.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking clap_lex v0.2.4
[INFO] [stderr]     Checking concrete-ntt v0.1.0
[INFO] [stderr]     Checking ndarray v0.15.6
[INFO] [stderr]    Compiling seq-macro v0.3.3
[INFO] [stderr]     Checking traits v0.1.0 (/opt/rustwide/workdir/traits)
[INFO] [stderr]     Checking textwrap v0.16.0
[INFO] [stderr]     Checking regex-syntax v0.7.2
[INFO] [stderr]     Checking walkdir v2.3.3
[INFO] [stderr]     Checking rayon v1.7.0
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking clap v3.2.25
[INFO] [stderr]     Checking plotters v0.3.5
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking oorandom v11.1.3
[INFO] [stderr]     Checking regex v1.8.4
[INFO] [stderr]    Compiling serde_derive v1.0.164
[INFO] [stderr]     Checking ciborium v0.2.1
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking criterion v0.4.0
[INFO] [stdout] warning: unused import: `BfvParameters`
[INFO] [stdout]  --> bfv/src/ciphertext.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{BfvParameters, Poly, PolyType};
[INFO] [stdout]   |             ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> bfv/src/ciphertext.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> bfv/src/ciphertext.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Encoding`, `Evaluator`, and `SecretKey`
[INFO] [stdout]   --> bfv/src/ciphertext.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |     use crate::{Encoding, Evaluator, SecretKey};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Itertools`
[INFO] [stdout]  --> bfv/src/evaluation_key.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use itertools::{izip, Itertools};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::relinearization_key::RelinearizationKey`
[INFO] [stdout]  --> bfv/src/evaluator.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::relinearization_key::RelinearizationKey;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GaloisKey`
[INFO] [stdout]  --> bfv/src/evaluator.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Encoding, GaloisKey, Plaintext, SecretKey};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BigUint`
[INFO] [stdout]  --> bfv/src/evaluator.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num_bigint::{BigUint, RandBigInt};
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rng`
[INFO] [stdout]  --> bfv/src/evaluator.rs:7:35
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rand::{thread_rng, CryptoRng, Rng, RngCore};
[INFO] [stdout]   |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Modulus`, `PolyContext`, and `Poly`
[INFO] [stdout]  --> bfv/src/galois_key.rs:2:55
[INFO] [stdout]   |
[INFO] [stdout] 2 |     BfvParameters, Ciphertext, HybridKeySwitchingKey, Modulus, Poly, PolyContext, PolyType,
[INFO] [stdout]   |                                                       ^^^^^^^  ^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::modulus::Modulus`
[INFO] [stdout]  --> bfv/src/key_switching_key.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::modulus::Modulus;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mod_inverse_biguint`
[INFO] [stdout]  --> bfv/src/key_switching_key.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{mod_inverse_biguint, mod_inverse_biguint_u64};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1`, `Array2`, `Array3`, `Axis`, and `azip`
[INFO] [stdout]  --> bfv/src/key_switching_key.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{azip, s, Array1, Array2, Array3, Axis, IntoNdProducer};
[INFO] [stdout]   |               ^^^^     ^^^^^^  ^^^^^^  ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToBigInt`
[INFO] [stdout]  --> bfv/src/key_switching_key.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | use num_bigint::{BigUint, ToBigInt};
[INFO] [stdout]   |                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FromPrimitive` and `One`
[INFO] [stdout]   --> bfv/src/key_switching_key.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_traits::{FromPrimitive, One, ToPrimitive};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::default`
[INFO] [stdout]   --> bfv/src/key_switching_key.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::default;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> bfv/src/key_switching_key.rs:387:28
[INFO] [stdout]     |
[INFO] [stdout] 387 |                 .for_each(|((modpi, nttpi, mut c0pi, c1pi, epi))| {
[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] 387 -                 .for_each(|((modpi, nttpi, mut c0pi, c1pi, epi))| {
[INFO] [stdout] 387 +                 .for_each(|(modpi, nttpi, mut c0pi, c1pi, epi) | {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Itertools`
[INFO] [stdout]  --> bfv/src/modulus.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::{izip, Itertools};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_bigint::U64Digits`
[INFO] [stdout]  --> bfv/src/modulus.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use num_bigint::U64Digits;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> bfv/src/modulus.rs:176:14
[INFO] [stdout]     |
[INFO] [stdout] 176 |         q *= (self.mu as u128);
[INFO] [stdout]     |              ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 176 -         q *= (self.mu as u128);
[INFO] [stdout] 176 +         q *= self.mu as u128 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> bfv/src/modulus.rs:177:15
[INFO] [stdout]     |
[INFO] [stdout] 177 |         q >>= (alpha + 2);
[INFO] [stdout]     |               ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 177 -         q >>= (alpha + 2);
[INFO] [stdout] 177 +         q >>= alpha + 2 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> bfv/src/modulus.rs:216:14
[INFO] [stdout]     |
[INFO] [stdout] 216 |         q *= (self.mu as u128);
[INFO] [stdout]     |              ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 216 -         q *= (self.mu as u128);
[INFO] [stdout] 216 +         q *= self.mu as u128 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> bfv/src/modulus.rs:217:15
[INFO] [stdout]     |
[INFO] [stdout] 217 |         q >>= (alpha + 2);
[INFO] [stdout]     |               ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 217 -         q >>= (alpha + 2);
[INFO] [stdout] 217 +         q >>= alpha + 2 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> bfv/src/parameters.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |         (bound_error * (1.0 + 2.0 * delta * bound_key))
[INFO] [stdout]     |         ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 121 -         (bound_error * (1.0 + 2.0 * delta * bound_key))
[INFO] [stdout] 121 +         bound_error * (1.0 + 2.0 * delta * bound_key) 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> bfv/src/parameters.rs:839:50
[INFO] [stdout]     |
[INFO] [stdout] 839 |         specialp_ctx.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout]     |                                                  ^     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 839 -         specialp_ctx.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout] 839 +         specialp_ctx.iter_moduli_ops().for_each(|modpi | {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> bfv/src/parameters.rs:845:54
[INFO] [stdout]     |
[INFO] [stdout] 845 |             specialp_ctx.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout]     |                                                      ^     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 845 -             specialp_ctx.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout] 845 +             specialp_ctx.iter_moduli_ops().for_each(|modpi | {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ciphertext`
[INFO] [stdout]  --> bfv/src/plaintext.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{BfvParameters, Ciphertext, PolyType};
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsPrimitive` and `Unsigned`
[INFO] [stdout]  --> bfv/src/plaintext.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use num_traits::{AsPrimitive, FromPrimitive, Unsigned, Zero};
[INFO] [stdout]   |                  ^^^^^^^^^^^                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> bfv/src/plaintext.rs:135:18
[INFO] [stdout]     |
[INFO] [stdout] 135 |         for i in (0..params.degree) {
[INFO] [stdout]     |                  ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 135 -         for i in (0..params.degree) {
[INFO] [stdout] 135 +         for i in 0..params.degree  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `convert_from_bytes` and `convert_to_bytes`
[INFO] [stdout]  --> bfv/src/poly/mod.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{convert_from_bytes, convert_to_bytes};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `izip`
[INFO] [stdout]  --> bfv/src/poly/mod.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use itertools::{izip, Itertools};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Itertools`
[INFO] [stdout]  --> bfv/src/poly/poly_context.rs:8:23
[INFO] [stdout]   |
[INFO] [stdout] 8 | use itertools::{izip, Itertools};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `azip`
[INFO] [stdout]  --> bfv/src/poly/poly_context.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | use ndarray::{azip, s, Array2, ArrayView2, Axis, IntoNdProducer};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Distribution` and `Uniform`
[INFO] [stdout]  --> bfv/src/secret_key.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::distributions::{Distribution, Uniform};
[INFO] [stdout]   |                           ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> bfv/src/utils.rs:181:27
[INFO] [stdout]     |
[INFO] [stdout] 181 |             curr_value |= ((b & ((1 << left_over_bits) - 1)) << curr_value_fill);
[INFO] [stdout]     |                           ^                                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 181 -             curr_value |= ((b & ((1 << left_over_bits) - 1)) << curr_value_fill);
[INFO] [stdout] 181 +             curr_value |= (b & ((1 << left_over_bits) - 1)) << curr_value_fill ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> bfv/src/utils.rs:202:27
[INFO] [stdout]     |
[INFO] [stdout] 202 |             curr_value |= ((bytes[byte_index] as u64) << curr_value_fill);
[INFO] [stdout]     |                           ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 202 -             curr_value |= ((bytes[byte_index] as u64) << curr_value_fill);
[INFO] [stdout] 202 +             curr_value |= (bytes[byte_index] as u64) << curr_value_fill ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> bfv/src/modulus.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 return 0;
[INFO] [stdout]     |                 -------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 154 |         return self.modulus - a;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> bfv/src/key_switching_key.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let mut rng = ChaCha8Rng::from_seed(seed);
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> bfv/src/key_switching_key.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let mut rng = ChaCha8Rng::from_seed(seed);
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/key_switching_key.rs:211:17
[INFO] [stdout]     |
[INFO] [stdout] 211 |             let mut parts_count = qj_coefficients.shape()[0];
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/key_switching_key.rs:213:17
[INFO] [stdout]     |
[INFO] [stdout] 213 |             let mut p_whole_coefficients = PolyContext::approx_switch_crt_basis(
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modqk`
[INFO] [stdout]    --> bfv/src/parameters.rs:408:21
[INFO] [stdout]     |
[INFO] [stdout] 408 |                 let modqk = &ciphertext_moduli_ops[k];
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_modqk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> bfv/src/plaintext.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut m = m.to_vec();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `input_size` is never read
[INFO] [stdout]    --> bfv/src/poly/poly_context.rs:271:30
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let mut input_size = 0;
[INFO] [stdout]     |                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output_size` is never read
[INFO] [stdout]    --> bfv/src/poly/poly_context.rs:272:31
[INFO] [stdout]     |
[INFO] [stdout] 272 |         let mut output_size = 0;
[INFO] [stdout]     |                               ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/secret_key.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let mut a = ctx.random_with_seed(seed);
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BVKeySwitchingKey` is never constructed
[INFO] [stdout]   --> bfv/src/key_switching_key.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct BVKeySwitchingKey {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `switch`, `generate_c1`, and `generate_c0` are never used
[INFO] [stdout]   --> bfv/src/key_switching_key.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl BVKeySwitchingKey {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn new<R: CryptoRng + CryptoRngCore>(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn switch(&self, poly: &Poly, ksk_ctx: &PolyContext<'_>) -> (Poly, Poly) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn generate_c1(
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn generate_c0<R: CryptoRng + CryptoRngCore>(
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `sub_mod` is never used
[INFO] [stdout]    --> bfv/src/modulus.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl Modulus {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn sub_mod(&self, mut a: u64, mut b: u64) -> u64 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rot_to_galois_element`
[INFO] [stdout]  --> bfv/src/main.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bfv::{rot_to_galois_element, *};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Itertools` and `izip`
[INFO] [stdout]  --> bfv/src/main.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use itertools::{izip, Itertools};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Array2`
[INFO] [stdout]  --> bfv/src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::Array2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigUint as BigUintDig` and `ModInverse`
[INFO] [stdout]  --> bfv/src/main.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use num_bigint_dig::{BigUint as BigUintDig, ModInverse};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FromPrimitive` and `ToPrimitive`
[INFO] [stdout]  --> bfv/src/main.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use num_traits::{FromPrimitive, ToPrimitive};
[INFO] [stdout]   |                  ^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng` and `distributions::Uniform`
[INFO] [stdout]  --> bfv/src/main.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand::{distributions::Uniform, thread_rng, Rng};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashMap` and `sync::Arc`
[INFO] [stdout]  --> bfv/src/main.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::{collections::HashMap, sync::Arc};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> bfv/src/main.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut q_poly = q_context.random(Representation::Coefficient, &mut rng);
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/main.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let mut m0 = params
[INFO] [stdout]     |         ----^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/main.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |     let mut m0 = params
[INFO] [stdout]     |         ----^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `switch_crt_basis` is never used
[INFO] [stdout]  --> bfv/src/main.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn switch_crt_basis() {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale_and_round` is never used
[INFO] [stdout]   --> bfv/src/main.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn scale_and_round() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ciphertext_mul` is never used
[INFO] [stdout]   --> bfv/src/main.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn ciphertext_mul() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ciphertext_add` is never used
[INFO] [stdout]    --> bfv/src/main.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn ciphertext_add() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::izip`
[INFO] [stdout]  --> bfv/examples/rotations.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use itertools::izip;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Plaintext`, `RelinearizationKey`, and `Representation`
[INFO] [stdout]  --> bfv/benches/bfv.rs:2:56
[INFO] [stdout]   |
[INFO] [stdout] 2 |     BfvParameters, Encoding, EvaluationKey, Evaluator, Plaintext, PolyType, RelinearizationKey,
[INFO] [stdout]   |                                                        ^^^^^^^^^            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     Representation, SecretKey,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> bfv/benches/bfv.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng` and `distributions::Uniform`
[INFO] [stdout]  --> bfv/benches/bfv.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rand::{distributions::Uniform, thread_rng, Rng};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashMap`, `hash::Hash`, and `sync::Arc`
[INFO] [stdout]  --> bfv/benches/bfv.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::{collections::HashMap, hash::Hash, sync::Arc};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rot_to_galois_element`
[INFO] [stdout]  --> bfv/src/main.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bfv::{rot_to_galois_element, *};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Itertools` and `izip`
[INFO] [stdout]  --> bfv/src/main.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use itertools::{izip, Itertools};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Array2`
[INFO] [stdout]  --> bfv/src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::Array2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigUint as BigUintDig` and `ModInverse`
[INFO] [stdout]  --> bfv/src/main.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use num_bigint_dig::{BigUint as BigUintDig, ModInverse};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FromPrimitive` and `ToPrimitive`
[INFO] [stdout]  --> bfv/src/main.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use num_traits::{FromPrimitive, ToPrimitive};
[INFO] [stdout]   |                  ^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng` and `distributions::Uniform`
[INFO] [stdout]  --> bfv/src/main.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand::{distributions::Uniform, thread_rng, Rng};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashMap` and `sync::Arc`
[INFO] [stdout]  --> bfv/src/main.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::{collections::HashMap, sync::Arc};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HybridKeySwitchingKey` and `SecretKey`
[INFO] [stdout]  --> bfv/benches/poly.rs:2:45
[INFO] [stdout]   |
[INFO] [stdout] 2 |     mod_inverse_biguint_u64, BfvParameters, HybridKeySwitchingKey, PolyContext, PolyType,
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     Representation, SecretKey,
[INFO] [stdout]   |                     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> bfv/src/main.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut q_poly = q_context.random(Representation::Coefficient, &mut rng);
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> bfv/benches/bfv.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |             let mut m0 = params
[INFO] [stdout]    |                 ----^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Itertools` and `izip`
[INFO] [stdout]  --> bfv/benches/poly.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use itertools::{izip, Itertools};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigUint as BigUintDig` and `ModInverse`
[INFO] [stdout]  --> bfv/benches/poly.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use num_bigint_dig::{BigUint as BigUintDig, ModInverse};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FromPrimitive`
[INFO] [stdout]  --> bfv/benches/poly.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | use num_traits::{FromPrimitive, ToPrimitive};
[INFO] [stdout]   |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fmt::format` and `sync::Arc`
[INFO] [stdout]   --> bfv/benches/poly.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::{fmt::format, sync::Arc};
[INFO] [stdout]    |           ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> bfv/benches/poly.rs:171:54
[INFO] [stdout]     |
[INFO] [stdout] 171 |             specialp_ctx.iter_moduli_ops().for_each(|(modpi)| {
[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] 171 -             specialp_ctx.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout] 171 +             specialp_ctx.iter_moduli_ops().for_each(|modpi | {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> bfv/benches/poly.rs:179:58
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 specialp_ctx.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout]     |                                                          ^     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 179 -                 specialp_ctx.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout] 179 +                 specialp_ctx.iter_moduli_ops().for_each(|modpi | {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> bfv/benches/bfv.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |             let mut m1 = params
[INFO] [stdout]    |                 ----^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/main.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let mut m0 = params
[INFO] [stdout]     |         ----^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/main.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |     let mut m0 = params
[INFO] [stdout]     |         ----^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ct2`
[INFO] [stdout]    --> bfv/examples/basic-ops.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let ct2 = evaluator.rotate(&ct0, 1, &ek);
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ct2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ct2`
[INFO] [stdout]    --> bfv/examples/basic-ops.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let ct2 = evaluator.rotate(&ct0, row_swap_index as isize, &ek);
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ct2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `switch_crt_basis` is never used
[INFO] [stdout]  --> bfv/src/main.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn switch_crt_basis() {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale_and_round` is never used
[INFO] [stdout]   --> bfv/src/main.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn scale_and_round() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ciphertext_mul` is never used
[INFO] [stdout]   --> bfv/src/main.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn ciphertext_mul() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ciphertext_add` is never used
[INFO] [stdout]    --> bfv/src/main.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn ciphertext_add() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> bfv/benches/ntt.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |             let mut v = modulus.random_vec(i, &mut rng);
[INFO] [stdout]    |                 ----^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BfvParameters`
[INFO] [stdout]  --> bfv/src/ciphertext.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{BfvParameters, Poly, PolyType};
[INFO] [stdout]   |             ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> bfv/src/ciphertext.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> bfv/src/ciphertext.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Encoding`, `Evaluator`, and `SecretKey`
[INFO] [stdout]   --> bfv/src/ciphertext.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |     use crate::{Encoding, Evaluator, SecretKey};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Itertools`
[INFO] [stdout]  --> bfv/src/evaluation_key.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use itertools::{izip, Itertools};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> bfv/src/evaluation_key.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::thread_rng`
[INFO] [stdout]   --> bfv/src/evaluation_key.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     use rand::thread_rng;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::relinearization_key::RelinearizationKey`
[INFO] [stdout]  --> bfv/src/evaluator.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::relinearization_key::RelinearizationKey;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GaloisKey`
[INFO] [stdout]  --> bfv/src/evaluator.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Encoding, GaloisKey, Plaintext, SecretKey};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BigUint`
[INFO] [stdout]  --> bfv/src/evaluator.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num_bigint::{BigUint, RandBigInt};
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rng`
[INFO] [stdout]  --> bfv/src/evaluator.rs:7:35
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rand::{thread_rng, CryptoRng, Rng, RngCore};
[INFO] [stdout]   |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]    --> bfv/src/evaluator.rs:428:9
[INFO] [stdout]     |
[INFO] [stdout] 428 |     use std::sync::Arc;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `relinearization_key::RelinearizationKey` and `utils::rot_to_galois_element`
[INFO] [stdout]    --> bfv/src/evaluator.rs:432:17
[INFO] [stdout]     |
[INFO] [stdout] 432 |     use crate::{relinearization_key::RelinearizationKey, utils::rot_to_galois_element, PolyCache};
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Modulus`, `PolyContext`, and `Poly`
[INFO] [stdout]  --> bfv/src/galois_key.rs:2:55
[INFO] [stdout]   |
[INFO] [stdout] 2 |     BfvParameters, Ciphertext, HybridKeySwitchingKey, Modulus, Poly, PolyContext, PolyType,
[INFO] [stdout]   |                                                       ^^^^^^^  ^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::modulus::Modulus`
[INFO] [stdout]  --> bfv/src/key_switching_key.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::modulus::Modulus;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mod_inverse_biguint`
[INFO] [stdout]  --> bfv/src/key_switching_key.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{mod_inverse_biguint, mod_inverse_biguint_u64};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1`, `Array2`, `Array3`, `Axis`, and `azip`
[INFO] [stdout]  --> bfv/src/key_switching_key.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{azip, s, Array1, Array2, Array3, Axis, IntoNdProducer};
[INFO] [stdout]   |               ^^^^     ^^^^^^  ^^^^^^  ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToBigInt`
[INFO] [stdout]  --> bfv/src/key_switching_key.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | use num_bigint::{BigUint, ToBigInt};
[INFO] [stdout]   |                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FromPrimitive` and `One`
[INFO] [stdout]   --> bfv/src/key_switching_key.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_traits::{FromPrimitive, One, ToPrimitive};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::default`
[INFO] [stdout]   --> bfv/src/key_switching_key.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::default;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> bfv/src/key_switching_key.rs:387:28
[INFO] [stdout]     |
[INFO] [stdout] 387 |                 .for_each(|((modpi, nttpi, mut c0pi, c1pi, epi))| {
[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] 387 -                 .for_each(|((modpi, nttpi, mut c0pi, c1pi, epi))| {
[INFO] [stdout] 387 +                 .for_each(|(modpi, nttpi, mut c0pi, c1pi, epi) | {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_bigint::BigUint`
[INFO] [stdout]    --> bfv/src/key_switching_key.rs:409:9
[INFO] [stdout]     |
[INFO] [stdout] 409 |     use num_bigint::BigUint;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Itertools`
[INFO] [stdout]  --> bfv/src/modulus.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::{izip, Itertools};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_bigint::U64Digits`
[INFO] [stdout]  --> bfv/src/modulus.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use num_bigint::U64Digits;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> bfv/src/modulus.rs:176:14
[INFO] [stdout]     |
[INFO] [stdout] 176 |         q *= (self.mu as u128);
[INFO] [stdout]     |              ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 176 -         q *= (self.mu as u128);
[INFO] [stdout] 176 +         q *= self.mu as u128 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> bfv/src/modulus.rs:177:15
[INFO] [stdout]     |
[INFO] [stdout] 177 |         q >>= (alpha + 2);
[INFO] [stdout]     |               ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 177 -         q >>= (alpha + 2);
[INFO] [stdout] 177 +         q >>= alpha + 2 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> bfv/src/modulus.rs:216:14
[INFO] [stdout]     |
[INFO] [stdout] 216 |         q *= (self.mu as u128);
[INFO] [stdout]     |              ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 216 -         q *= (self.mu as u128);
[INFO] [stdout] 216 +         q *= self.mu as u128 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> bfv/src/modulus.rs:217:15
[INFO] [stdout]     |
[INFO] [stdout] 217 |         q >>= (alpha + 2);
[INFO] [stdout]     |               ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 217 -         q >>= (alpha + 2);
[INFO] [stdout] 217 +         q >>= alpha + 2 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::Zero`
[INFO] [stdout]    --> bfv/src/modulus.rs:524:9
[INFO] [stdout]     |
[INFO] [stdout] 524 |     use num_traits::Zero;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> bfv/src/modulus.rs:737:27
[INFO] [stdout]     |
[INFO] [stdout] 737 |                     *r += (*a1 as u128 * *b1 as u128);
[INFO] [stdout]     |                           ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 737 -                     *r += (*a1 as u128 * *b1 as u128);
[INFO] [stdout] 737 +                     *r += *a1 as u128 * *b1 as u128 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> bfv/src/parameters.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |         (bound_error * (1.0 + 2.0 * delta * bound_key))
[INFO] [stdout]     |         ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 121 -         (bound_error * (1.0 + 2.0 * delta * bound_key))
[INFO] [stdout] 121 +         bound_error * (1.0 + 2.0 * delta * bound_key) 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `traits::Ntt`
[INFO] [stdout]   --> bfv/benches/poly.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use traits::Ntt;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> bfv/src/parameters.rs:839:50
[INFO] [stdout]     |
[INFO] [stdout] 839 |         specialp_ctx.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout]     |                                                  ^     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 839 -         specialp_ctx.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout] 839 +         specialp_ctx.iter_moduli_ops().for_each(|modpi | {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> bfv/src/parameters.rs:845:54
[INFO] [stdout]     |
[INFO] [stdout] 845 |             specialp_ctx.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout]     |                                                      ^     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 845 -             specialp_ctx.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout] 845 +             specialp_ctx.iter_moduli_ops().for_each(|modpi | {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ciphertext`
[INFO] [stdout]  --> bfv/src/plaintext.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{BfvParameters, Ciphertext, PolyType};
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsPrimitive` and `Unsigned`
[INFO] [stdout]  --> bfv/src/plaintext.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use num_traits::{AsPrimitive, FromPrimitive, Unsigned, Zero};
[INFO] [stdout]   |                  ^^^^^^^^^^^                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> bfv/src/plaintext.rs:135:18
[INFO] [stdout]     |
[INFO] [stdout] 135 |         for i in (0..params.degree) {
[INFO] [stdout]     |                  ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 135 -         for i in (0..params.degree) {
[INFO] [stdout] 135 +         for i in 0..params.degree  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `convert_from_bytes` and `convert_to_bytes`
[INFO] [stdout]  --> bfv/src/poly/mod.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{convert_from_bytes, convert_to_bytes};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `izip`
[INFO] [stdout]  --> bfv/src/poly/mod.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use itertools::{izip, Itertools};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `azip`
[INFO] [stdout]  --> bfv/src/poly/poly_context.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | use ndarray::{azip, s, Array2, ArrayView2, Axis, IntoNdProducer};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nb_theory::generate_primes_vec`
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1046:17
[INFO] [stdout]      |
[INFO] [stdout] 1046 |     use crate::{nb_theory::generate_primes_vec, BfvParameters, PolyType};
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_bigint_dig::UniformBigUint`
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1048:9
[INFO] [stdout]      |
[INFO] [stdout] 1048 |     use num_bigint_dig::UniformBigUint;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rngs::ThreadRng`
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1050:40
[INFO] [stdout]      |
[INFO] [stdout] 1050 |     use rand::{distributions::Uniform, rngs::ThreadRng, thread_rng, Rng};
[INFO] [stdout]      |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1099:20
[INFO] [stdout]      |
[INFO] [stdout] 1099 |                 if (wraps & 1 == 1) {
[INFO] [stdout]      |                    ^              ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1099 -                 if (wraps & 1 == 1) {
[INFO] [stdout] 1099 +                 if wraps & 1 == 1  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1100:46
[INFO] [stdout]      |
[INFO] [stdout] 1100 |                     p_biguint_subs[index] += (ctx.big_q() - v);
[INFO] [stdout]      |                                              ^               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1100 -                     p_biguint_subs[index] += (ctx.big_q() - v);
[INFO] [stdout] 1100 +                     p_biguint_subs[index] += ctx.big_q() - v ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1151:20
[INFO] [stdout]      |
[INFO] [stdout] 1151 |                 if (&qi >= &(&q >> 1)) {
[INFO] [stdout]      |                    ^                 ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1151 -                 if (&qi >= &(&q >> 1)) {
[INFO] [stdout] 1151 +                 if &qi >= &(&q >> 1)  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1360:54
[INFO] [stdout]      |
[INFO] [stdout] 1360 |         izip!(q_context.iter_moduli_ops()).for_each(|(modqi)| {
[INFO] [stdout]      |                                                      ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1360 -         izip!(q_context.iter_moduli_ops()).for_each(|(modqi)| {
[INFO] [stdout] 1360 +         izip!(q_context.iter_moduli_ops()).for_each(|modqi | {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1368:58
[INFO] [stdout]      |
[INFO] [stdout] 1368 |             izip!(q_context.iter_moduli_ops()).for_each(|(modqi)| {
[INFO] [stdout]      |                                                          ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1368 -             izip!(q_context.iter_moduli_ops()).for_each(|(modqi)| {
[INFO] [stdout] 1368 +             izip!(q_context.iter_moduli_ops()).for_each(|modqi | {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1435:47
[INFO] [stdout]      |
[INFO] [stdout] 1435 |         p_context.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout]      |                                               ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1435 -         p_context.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout] 1435 +         p_context.iter_moduli_ops().for_each(|modpi | {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1443:51
[INFO] [stdout]      |
[INFO] [stdout] 1443 |             p_context.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout]      |                                                   ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1443 -             p_context.iter_moduli_ops().for_each(|(modpi)| {
[INFO] [stdout] 1443 +             p_context.iter_moduli_ops().for_each(|modpi | {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> bfv/src/poly/mod.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::BfvParameters`
[INFO] [stdout]   --> bfv/src/poly/mod.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     use crate::BfvParameters;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::thread_rng`
[INFO] [stdout]   --> bfv/src/poly/mod.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     use rand::thread_rng;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Distribution` and `Uniform`
[INFO] [stdout]  --> bfv/src/secret_key.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::distributions::{Distribution, Uniform};
[INFO] [stdout]   |                           ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> bfv/src/utils.rs:181:27
[INFO] [stdout]     |
[INFO] [stdout] 181 |             curr_value |= ((b & ((1 << left_over_bits) - 1)) << curr_value_fill);
[INFO] [stdout]     |                           ^                                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 181 -             curr_value |= ((b & ((1 << left_over_bits) - 1)) << curr_value_fill);
[INFO] [stdout] 181 +             curr_value |= (b & ((1 << left_over_bits) - 1)) << curr_value_fill ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> bfv/src/utils.rs:202:27
[INFO] [stdout]     |
[INFO] [stdout] 202 |             curr_value |= ((bytes[byte_index] as u64) << curr_value_fill);
[INFO] [stdout]     |                           ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 202 -             curr_value |= ((bytes[byte_index] as u64) << curr_value_fill);
[INFO] [stdout] 202 +             curr_value |= (bytes[byte_index] as u64) << curr_value_fill ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> bfv/benches/modulus.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 |             let mut v2 = modulus.random_vec(i, &mut rng);
[INFO] [stdout]    |                 ----^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> bfv/src/modulus.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 return 0;
[INFO] [stdout]     |                 -------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 154 |         return self.modulus - a;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Distribution`
[INFO] [stdout]    --> bfv/src/secret_key.rs:223:25
[INFO] [stdout]     |
[INFO] [stdout] 223 |         distributions::{Distribution, Uniform},
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `traits::Ntt`
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1051:9
[INFO] [stdout]      |
[INFO] [stdout] 1051 |     use traits::Ntt;
[INFO] [stdout]      |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/evaluator.rs:513:13
[INFO] [stdout]     |
[INFO] [stdout] 513 |         let mut m0 = params
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/evaluator.rs:560:13
[INFO] [stdout]     |
[INFO] [stdout] 560 |         let mut m0 = params
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/evaluator.rs:634:13
[INFO] [stdout]     |
[INFO] [stdout] 634 |         let mut m0 = params
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/evaluator.rs:687:13
[INFO] [stdout]     |
[INFO] [stdout] 687 |         let mut m0 = params
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/evaluator.rs:710:13
[INFO] [stdout]     |
[INFO] [stdout] 710 |         let mut m0 = params
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> bfv/src/key_switching_key.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let mut rng = ChaCha8Rng::from_seed(seed);
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> bfv/src/key_switching_key.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let mut rng = ChaCha8Rng::from_seed(seed);
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/key_switching_key.rs:211:17
[INFO] [stdout]     |
[INFO] [stdout] 211 |             let mut parts_count = qj_coefficients.shape()[0];
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/key_switching_key.rs:213:17
[INFO] [stdout]     |
[INFO] [stdout] 213 |             let mut p_whole_coefficients = PolyContext::approx_switch_crt_basis(
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/key_switching_key.rs:433:13
[INFO] [stdout]     |
[INFO] [stdout] 433 |         let mut res = ksk_ctx.add(&cs.0, &ksk_ctx.mul(&cs.1, &sk_poly));
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/key_switching_key.rs:473:13
[INFO] [stdout]     |
[INFO] [stdout] 473 |         let mut res = ksk_ctx.add(&cs.0, &ksk_ctx.mul(&cs.1, &sk_poly));
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/modulus.rs:658:13
[INFO] [stdout]     |
[INFO] [stdout] 658 |         let mut rng = thread_rng();
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/modulus.rs:700:13
[INFO] [stdout]     |
[INFO] [stdout] 700 |         let mut vp_res2 = vp.clone();
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vp_res2`
[INFO] [stdout]    --> bfv/src/modulus.rs:700:13
[INFO] [stdout]     |
[INFO] [stdout] 700 |         let mut vp_res2 = vp.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vp_res2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/modulus.rs:725:17
[INFO] [stdout]     |
[INFO] [stdout] 725 |             let mut a = (0..count)
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/modulus.rs:764:17
[INFO] [stdout]     |
[INFO] [stdout] 764 |             let mut a = (0..count)
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> bfv/src/modulus.rs:767:17
[INFO] [stdout]     |
[INFO] [stdout] 767 |             let b = (0..count)
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modqk`
[INFO] [stdout]    --> bfv/src/parameters.rs:408:21
[INFO] [stdout]     |
[INFO] [stdout] 408 |                 let modqk = &ciphertext_moduli_ops[k];
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_modqk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> bfv/src/plaintext.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut m = m.to_vec();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `input_size` is never read
[INFO] [stdout]    --> bfv/src/poly/poly_context.rs:271:30
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let mut input_size = 0;
[INFO] [stdout]     |                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output_size` is never read
[INFO] [stdout]    --> bfv/src/poly/poly_context.rs:272:31
[INFO] [stdout]     |
[INFO] [stdout] 272 |         let mut output_size = 0;
[INFO] [stdout]     |                               ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1134:13
[INFO] [stdout]      |
[INFO] [stdout] 1134 |         let mut q_poly = top_context.random(Representation::Coefficient, &mut rng);
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1175:13
[INFO] [stdout]      |
[INFO] [stdout] 1175 |         let mut q_poly = q_context.random(Representation::Coefficient, &mut rng);
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1216:13
[INFO] [stdout]      |
[INFO] [stdout] 1216 |         let mut q_poly = q_context.random(Representation::Coefficient, &mut rng);
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1255:13
[INFO] [stdout]      |
[INFO] [stdout] 1255 |         let mut q_poly = q_context.random(Representation::Coefficient, &mut rng);
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1413:17
[INFO] [stdout]      |
[INFO] [stdout] 1413 |             let mut diff = r.to_bigint().unwrap() - e.to_bigint().unwrap();
[INFO] [stdout]      |                 ----^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1388:13
[INFO] [stdout]      |
[INFO] [stdout] 1388 |         let mut p_poly = p_context.new(p_coefficients, Representation::Coefficient);
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1460:13
[INFO] [stdout]      |
[INFO] [stdout] 1460 |         let mut q_res = qp_poly.clone();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `q_size`
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1427:13
[INFO] [stdout]      |
[INFO] [stdout] 1427 |         let q_size = q_context.moduli_count;
[INFO] [stdout]      |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_q_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p_size`
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1428:13
[INFO] [stdout]      |
[INFO] [stdout] 1428 |         let p_size = p_context.moduli_count;
[INFO] [stdout]      |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `qp_size`
[INFO] [stdout]     --> bfv/src/poly/poly_context.rs:1429:13
[INFO] [stdout]      |
[INFO] [stdout] 1429 |         let qp_size = qp_context.moduli_count;
[INFO] [stdout]      |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_qp_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bfv/src/secret_key.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let mut a = ctx.random_with_seed(seed);
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `seed` is never read
[INFO] [stdout]   --> bfv/src/key_switching_key.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct BVKeySwitchingKey {
[INFO] [stdout]    |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     seed: <ChaCha8Rng as SeedableRng>::Seed,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.79s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint-dig v0.8.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "23bdff33cb9e0ca00792a0c1b99d6caff044dea6023ab06103809c54d24abf4b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "23bdff33cb9e0ca00792a0c1b99d6caff044dea6023ab06103809c54d24abf4b", kill_on_drop: false }`
[INFO] [stdout] 23bdff33cb9e0ca00792a0c1b99d6caff044dea6023ab06103809c54d24abf4b
