[INFO] updating cached repository provotum/crypto-rs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/provotum/crypto-rs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/provotum/crypto-rs" "work/ex/clippy-test-run/sources/stable/gh/provotum/crypto-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/provotum/crypto-rs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/provotum/crypto-rs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/provotum/crypto-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/provotum/crypto-rs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 3f284c3e6f3e3412a44d3cea11cd6487862c0d9f [INFO] sha for GitHub repo provotum/crypto-rs: 3f284c3e6f3e3412a44d3cea11cd6487862c0d9f [INFO] validating manifest of provotum/crypto-rs on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of provotum/crypto-rs on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing provotum/crypto-rs [INFO] finished frobbing provotum/crypto-rs [INFO] frobbed toml for provotum/crypto-rs written to work/ex/clippy-test-run/sources/stable/gh/provotum/crypto-rs/Cargo.toml [INFO] started frobbing provotum/crypto-rs [INFO] finished frobbing provotum/crypto-rs [INFO] frobbed toml for provotum/crypto-rs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/provotum/crypto-rs/Cargo.toml [INFO] crate provotum/crypto-rs has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting provotum/crypto-rs against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/provotum/crypto-rs:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] e7126b694e747c252f279b7a86245b7f1328ec5515aadd416bc1d600eb942313 [INFO] running `"docker" "start" "-a" "e7126b694e747c252f279b7a86245b7f1328ec5515aadd416bc1d600eb942313"` [INFO] [stderr] Compiling num-bigint v0.2.0 [INFO] [stderr] Compiling num-complex v0.2.0 [INFO] [stderr] Compiling num-rational v0.2.1 [INFO] [stderr] Checking serde_json v1.0.31 [INFO] [stderr] Compiling syn v0.15.6 [INFO] [stderr] Checking num v0.2.0 [INFO] [stderr] Compiling serde_derive v1.0.79 [INFO] [stderr] Checking crypto-rs v0.1.2 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/arithmetic/mod_inverse.rs:32:20 [INFO] [stderr] | [INFO] [stderr] 32 | let (g, x, y) = extended_gcd(b.clone() % a.clone(), a.clone()); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/el_gamal/membership_proof.rs:56:21 [INFO] [stderr] | [INFO] [stderr] 56 | let mut z: ModInt; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/el_gamal/membership_proof.rs:72:21 [INFO] [stderr] | [INFO] [stderr] 72 | let s = ModInt::gen_modint(public_key.q.clone()); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/el_gamal/membership_proof.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | let c = ModInt::gen_modint(public_key.q.clone()); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/el_gamal/membership_proof.rs:150:17 [INFO] [stderr] | [INFO] [stderr] 150 | let y = g.clone().pow(s.clone()).mul(cipher_text.big_g.clone().pow(neg_c.clone())); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/el_gamal/membership_proof.rs:151:17 [INFO] [stderr] | [INFO] [stderr] 151 | let z = h.clone().pow(s.clone()).mul(cipher_text.big_h.clone().div(g_pow).pow(neg_c.clone())); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/arithmetic/mod_inverse.rs:32:20 [INFO] [stderr] | [INFO] [stderr] 32 | let (g, x, y) = extended_gcd(b.clone() % a.clone(), a.clone()); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/el_gamal/membership_proof.rs:56:21 [INFO] [stderr] | [INFO] [stderr] 56 | let mut z: ModInt; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/el_gamal/membership_proof.rs:72:21 [INFO] [stderr] | [INFO] [stderr] 72 | let s = ModInt::gen_modint(public_key.q.clone()); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/el_gamal/membership_proof.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | let c = ModInt::gen_modint(public_key.q.clone()); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/el_gamal/membership_proof.rs:150:17 [INFO] [stderr] | [INFO] [stderr] 150 | let y = g.clone().pow(s.clone()).mul(cipher_text.big_g.clone().pow(neg_c.clone())); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/el_gamal/membership_proof.rs:151:17 [INFO] [stderr] | [INFO] [stderr] 151 | let z = h.clone().pow(s.clone()).mul(cipher_text.big_h.clone().div(g_pow).pow(neg_c.clone())); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/arithmetic/mod_int.rs:141:13 [INFO] [stderr] | [INFO] [stderr] 141 | return normalized_val.eq(&other.value); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `normalized_val.eq(&other.value)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/arithmetic/mod_int.rs:143:13 [INFO] [stderr] | [INFO] [stderr] 143 | return self.value.eq(&other.value); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.value.eq(&other.value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/arithmetic/mod_inverse.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/arithmetic/mod_inverse.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | return Some(modulus); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(modulus)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/arithmetic/mod_inverse.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | return (b, BigInt::zero(), BigInt::one()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(b, BigInt::zero(), BigInt::one())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/arithmetic/mod_inverse.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | return (g, y - (b / a) * x.clone(), x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(g, y - (b / a) * x.clone(), x.clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/el_gamal/membership_proof.rs:160:9 [INFO] [stderr] | [INFO] [stderr] 160 | return c_choices.eq(&new_c); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `c_choices.eq(&new_c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/arithmetic/mod_int.rs:141:13 [INFO] [stderr] | [INFO] [stderr] 141 | return normalized_val.eq(&other.value); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `normalized_val.eq(&other.value)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/arithmetic/mod_int.rs:143:13 [INFO] [stderr] | [INFO] [stderr] 143 | return self.value.eq(&other.value); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.value.eq(&other.value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/arithmetic/mod_inverse.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/arithmetic/mod_inverse.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | return Some(modulus); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(modulus)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/arithmetic/mod_inverse.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | return (b, BigInt::zero(), BigInt::one()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(b, BigInt::zero(), BigInt::one())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/arithmetic/mod_inverse.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | return (g, y - (b / a) * x.clone(), x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(g, y - (b / a) * x.clone(), x.clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/el_gamal/membership_proof.rs:160:9 [INFO] [stderr] | [INFO] [stderr] 160 | return c_choices.eq(&new_c); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `c_choices.eq(&new_c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] error: you are deriving `Hash` but have implemented `PartialEq` explicitly [INFO] [stderr] --> src/arithmetic/mod_int.rs:26:10 [INFO] [stderr] | [INFO] [stderr] 26 | #[derive(Hash)] [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::derive_hash_xor_eq)] on by default [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/arithmetic/mod_int.rs:130:1 [INFO] [stderr] | [INFO] [stderr] 130| / impl PartialEq for ModInt { [INFO] [stderr] 131| | fn eq(&self, other: &ModInt) -> bool { [INFO] [stderr] 132| | // we have to normalize, i.e. reduce the values [INFO] [stderr] 133| | // whenever we have the same modulus. [INFO] [stderr] ... | [INFO] [stderr] 149| | } [INFO] [stderr] 150| | } [INFO] [stderr] | |_^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: re-implementing `PartialEq::ne` is unnecessary [INFO] [stderr] --> src/arithmetic/mod_int.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | / fn ne(&self, other: &ModInt) -> bool { [INFO] [stderr] 148 | | !self.eq(other) [INFO] [stderr] 149 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::partialeq_ne_impl)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_ne_impl [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `voting_options` [INFO] [stderr] --> src/cai/uciv.rs:207:18 [INFO] [stderr] | [INFO] [stderr] 207 | for i in 0..self.s1_options.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 207 | for (i, ) in voting_options.iter().enumerate().take(self.s1_options.len()) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/el_gamal/encryption.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | file.write(public_key_str.as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/el_gamal/encryption.rs:100:9 [INFO] [stderr] | [INFO] [stderr] 100 | file.write(private_key_str.as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/el_gamal/membership_proof.rs:58:40 [INFO] [stderr] | [INFO] [stderr] 58 | let domain_val: ModInt = (*domains.get(i).unwrap()).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `domains[i]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/el_gamal/membership_proof.rs:141:30 [INFO] [stderr] | [INFO] [stderr] 141 | let domain_val = domain.get(i).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `domain[i]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/el_gamal/membership_proof.rs:144:31 [INFO] [stderr] | [INFO] [stderr] 144 | let s: ModInt = (*self.s_responses.get(i).unwrap()).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.s_responses[i]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/el_gamal/membership_proof.rs:145:31 [INFO] [stderr] | [INFO] [stderr] 145 | let c: ModInt = (*self.c_responses.get(i).unwrap()).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.c_responses[i]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `crypto-rs`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: you are deriving `Hash` but have implemented `PartialEq` explicitly [INFO] [stderr] --> src/arithmetic/mod_int.rs:26:10 [INFO] [stderr] | [INFO] [stderr] 26 | #[derive(Hash)] [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::derive_hash_xor_eq)] on by default [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/arithmetic/mod_int.rs:130:1 [INFO] [stderr] | [INFO] [stderr] 130| / impl PartialEq for ModInt { [INFO] [stderr] 131| | fn eq(&self, other: &ModInt) -> bool { [INFO] [stderr] 132| | // we have to normalize, i.e. reduce the values [INFO] [stderr] 133| | // whenever we have the same modulus. [INFO] [stderr] ... | [INFO] [stderr] 149| | } [INFO] [stderr] 150| | } [INFO] [stderr] | |_^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: re-implementing `PartialEq::ne` is unnecessary [INFO] [stderr] --> src/arithmetic/mod_int.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | / fn ne(&self, other: &ModInt) -> bool { [INFO] [stderr] 148 | | !self.eq(other) [INFO] [stderr] 149 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::partialeq_ne_impl)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_ne_impl [INFO] [stderr] [INFO] [stderr] warning: unused arithmetic operation that must be used [INFO] [stderr] --> src/arithmetic/mod_int.rs:610:9 [INFO] [stderr] | [INFO] [stderr] 610 | one / zero; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/arithmetic/mod_int.rs:610:9 [INFO] [stderr] | [INFO] [stderr] 610 | one / zero; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::no_effect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] warning: unused arithmetic operation that must be used [INFO] [stderr] --> src/arithmetic/mod_int.rs:625:9 [INFO] [stderr] | [INFO] [stderr] 625 | one / zero; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/arithmetic/mod_int.rs:625:9 [INFO] [stderr] | [INFO] [stderr] 625 | one / zero; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `voting_options` [INFO] [stderr] --> src/cai/uciv.rs:207:18 [INFO] [stderr] | [INFO] [stderr] 207 | for i in 0..self.s1_options.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 207 | for (i, ) in voting_options.iter().enumerate().take(self.s1_options.len()) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/el_gamal/encryption.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | file.write(public_key_str.as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/el_gamal/encryption.rs:100:9 [INFO] [stderr] | [INFO] [stderr] 100 | file.write(private_key_str.as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/el_gamal/membership_proof.rs:58:40 [INFO] [stderr] | [INFO] [stderr] 58 | let domain_val: ModInt = (*domains.get(i).unwrap()).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `domains[i]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/el_gamal/membership_proof.rs:141:30 [INFO] [stderr] | [INFO] [stderr] 141 | let domain_val = domain.get(i).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `domain[i]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/el_gamal/membership_proof.rs:144:31 [INFO] [stderr] | [INFO] [stderr] 144 | let s: ModInt = (*self.s_responses.get(i).unwrap()).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.s_responses[i]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/el_gamal/membership_proof.rs:145:31 [INFO] [stderr] | [INFO] [stderr] 145 | let c: ModInt = (*self.c_responses.get(i).unwrap()).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.c_responses[i]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `crypto-rs`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "e7126b694e747c252f279b7a86245b7f1328ec5515aadd416bc1d600eb942313"` [INFO] running `"docker" "rm" "-f" "e7126b694e747c252f279b7a86245b7f1328ec5515aadd416bc1d600eb942313"` [INFO] [stdout] e7126b694e747c252f279b7a86245b7f1328ec5515aadd416bc1d600eb942313