[INFO] updating cached repository ex0dus-0x/PolyPasswordHasher-Rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/ex0dus-0x/PolyPasswordHasher-Rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/ex0dus-0x/PolyPasswordHasher-Rust" "work/ex/clippy-test-run/sources/stable/gh/ex0dus-0x/PolyPasswordHasher-Rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/ex0dus-0x/PolyPasswordHasher-Rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/ex0dus-0x/PolyPasswordHasher-Rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ex0dus-0x/PolyPasswordHasher-Rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ex0dus-0x/PolyPasswordHasher-Rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 1954e1c212c96568dd4c13ce3f7435af2c3f312f [INFO] sha for GitHub repo ex0dus-0x/PolyPasswordHasher-Rust: 1954e1c212c96568dd4c13ce3f7435af2c3f312f [INFO] validating manifest of ex0dus-0x/PolyPasswordHasher-Rust 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 ex0dus-0x/PolyPasswordHasher-Rust 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 ex0dus-0x/PolyPasswordHasher-Rust [INFO] finished frobbing ex0dus-0x/PolyPasswordHasher-Rust [INFO] frobbed toml for ex0dus-0x/PolyPasswordHasher-Rust written to work/ex/clippy-test-run/sources/stable/gh/ex0dus-0x/PolyPasswordHasher-Rust/Cargo.toml [INFO] started frobbing ex0dus-0x/PolyPasswordHasher-Rust [INFO] finished frobbing ex0dus-0x/PolyPasswordHasher-Rust [INFO] frobbed toml for ex0dus-0x/PolyPasswordHasher-Rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ex0dus-0x/PolyPasswordHasher-Rust/Cargo.toml [INFO] crate ex0dus-0x/PolyPasswordHasher-Rust 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 ex0dus-0x/PolyPasswordHasher-Rust against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/ex0dus-0x/PolyPasswordHasher-Rust:/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] 1a3855e0c7397f299c92accf0f1bafa92094f24fc660234af6b9ad841ba48b69 [INFO] running `"docker" "start" "-a" "1a3855e0c7397f299c92accf0f1bafa92094f24fc660234af6b9ad841ba48b69"` [INFO] [stderr] Checking serde v1.0.25 [INFO] [stderr] Compiling rand v0.3.19 [INFO] [stderr] Compiling num_cpus v1.7.0 [INFO] [stderr] Compiling openssl-sys v0.9.23 [INFO] [stderr] Compiling serde_derive_internals v0.18.1 [INFO] [stderr] Compiling openssl v0.9.23 [INFO] [stderr] Compiling serde_derive v1.0.26 [INFO] [stderr] Compiling rayon-core v1.3.0 [INFO] [stderr] Compiling rayon v0.8.2 [INFO] [stderr] Compiling ring v0.12.1 [INFO] [stderr] Checking serde_json v1.0.8 [INFO] [stderr] Checking PolyPasswordHasher v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shamirsecret.rs:119:17 [INFO] [stderr] | [INFO] [stderr] 119 | threshold: threshold, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `threshold` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shamirsecret.rs:121:17 [INFO] [stderr] | [INFO] [stderr] 121 | coefficients: coefficients, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `coefficients` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shamirsecret.rs:128:17 [INFO] [stderr] | [INFO] [stderr] 128 | threshold: threshold, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `threshold` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shamirsecret.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | coefficients: coefficients, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `coefficients` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:145:17 [INFO] [stderr] | [INFO] [stderr] 145 | threshold: threshold, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `threshold` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:150:17 [INFO] [stderr] | [INFO] [stderr] 150 | partialbytes: partialbytes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `partialbytes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:177:13 [INFO] [stderr] | [INFO] [stderr] 177 | threshold: threshold, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `threshold` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:182:13 [INFO] [stderr] | [INFO] [stderr] 182 | partialbytes: partialbytes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `partialbytes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | nextavailableshare: nextavailableshare [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `nextavailableshare` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:232:17 [INFO] [stderr] | [INFO] [stderr] 232 | salt: salt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `salt` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:233:17 [INFO] [stderr] | [INFO] [stderr] 233 | sharenumber: sharenumber, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sharenumber` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shamirsecret.rs:119:17 [INFO] [stderr] | [INFO] [stderr] 119 | threshold: threshold, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `threshold` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shamirsecret.rs:121:17 [INFO] [stderr] | [INFO] [stderr] 121 | coefficients: coefficients, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `coefficients` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shamirsecret.rs:128:17 [INFO] [stderr] | [INFO] [stderr] 128 | threshold: threshold, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `threshold` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shamirsecret.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | coefficients: coefficients, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `coefficients` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:145:17 [INFO] [stderr] | [INFO] [stderr] 145 | threshold: threshold, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `threshold` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:150:17 [INFO] [stderr] | [INFO] [stderr] 150 | partialbytes: partialbytes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `partialbytes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:177:13 [INFO] [stderr] | [INFO] [stderr] 177 | threshold: threshold, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `threshold` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:182:13 [INFO] [stderr] | [INFO] [stderr] 182 | partialbytes: partialbytes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `partialbytes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | nextavailableshare: nextavailableshare [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `nextavailableshare` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:232:17 [INFO] [stderr] | [INFO] [stderr] 232 | salt: salt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `salt` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:233:17 [INFO] [stderr] | [INFO] [stderr] 233 | sharenumber: sharenumber, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sharenumber` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/shamirsecret.rs:341:29 [INFO] [stderr] | [INFO] [stderr] 341 | let mut c = vec![0; (b.len() - a.len())]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/shamirsecret.rs:344:29 [INFO] [stderr] | [INFO] [stderr] 344 | let mut c = vec![0; (a.len() - b.len())]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/shamirsecret.rs:341:29 [INFO] [stderr] | [INFO] [stderr] 341 | let mut c = vec![0; (b.len() - a.len())]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/shamirsecret.rs:344:29 [INFO] [stderr] | [INFO] [stderr] 344 | let mut c = vec![0; (a.len() - b.len())]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused variable: `accounts` [INFO] [stderr] --> src/lib.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | let accounts = AccountsWrapper { [INFO] [stderr] | ^^^^^^^^ help: consider using `_accounts` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: crate `PolyPasswordHasher` should have a snake case name such as `poly_password_hasher` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/shamirsecret.rs:138:12 [INFO] [stderr] | [INFO] [stderr] 138 | if self.coefficients.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.coefficients.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/shamirsecret.rs:158:12 [INFO] [stderr] | [INFO] [stderr] 158 | if self.coefficients.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.coefficients.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/shamirsecret.rs:211:21 [INFO] [stderr] | [INFO] [stderr] 211 | xs.push(share[0].clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `share[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/shamirsecret.rs:224:26 [INFO] [stderr] | [INFO] [stderr] 224 | fxs.push(share[1..][byte_to_use].clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `share[1..][byte_to_use]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/shamirsecret.rs:233:31 [INFO] [stderr] | [INFO] [stderr] 233 | mysecretdata.push(result_polynomial[0].clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `result_polynomial[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/shamirsecret.rs:410:18 [INFO] [stderr] | [INFO] [stderr] 410 | _GF256_EXP[((_GF256_LOG[a as usize] as u16 + _GF256_LOG[b as usize] as u16) % 255) as usize] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(_GF256_LOG[a as usize])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/shamirsecret.rs:410:50 [INFO] [stderr] | [INFO] [stderr] 410 | _GF256_EXP[((_GF256_LOG[a as usize] as u16 + _GF256_LOG[b as usize] as u16) % 255) as usize] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(_GF256_LOG[b as usize])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/shamirsecret.rs:422:17 [INFO] [stderr] | [INFO] [stderr] 422 | let a_log = _GF256_LOG[a as usize] as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(_GF256_LOG[a as usize])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/shamirsecret.rs:423:17 [INFO] [stderr] | [INFO] [stderr] 423 | let b_log = _GF256_LOG[b as usize] as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(_GF256_LOG[b as usize])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shamirsecret.rs:428:9 [INFO] [stderr] | [INFO] [stderr] 428 | diff = 255 + diff; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `diff += 255` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/lib.rs:128:16 [INFO] [stderr] | [INFO] [stderr] 128 | if let None = passwordfile { [INFO] [stderr] | _________- ^^^^ [INFO] [stderr] 129 | | [INFO] [stderr] 130 | | // Create a new array to fill with 32 random bytes [INFO] [stderr] 131 | | let mut buffer = [0u8; 256]; [INFO] [stderr] ... | [INFO] [stderr] 154 | | [INFO] [stderr] 155 | | } [INFO] [stderr] | |_________- help: try this: `if passwordfile.is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/lib.rs:194:12 [INFO] [stderr] | [INFO] [stderr] 194 | if self.knownsecret == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.knownsecret` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/lib.rs:250:12 [INFO] [stderr] | [INFO] [stderr] 250 | if self.knownsecret == false && self.partialbytes.unwrap() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.knownsecret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/lib.rs:264:9 [INFO] [stderr] | [INFO] [stderr] 264 | / for (_id, account) in accountdict.accounts.iter(){ [INFO] [stderr] 265 | | [INFO] [stderr] 266 | | let saltpass: String = format!("{}{}", account.salt, password); [INFO] [stderr] 267 | | [INFO] [stderr] ... | [INFO] [stderr] 294 | | return shamir.is_valid_share(share); [INFO] [stderr] 295 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `PolyPasswordHasher`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: crate `PolyPasswordHasher` should have a snake case name such as `poly_password_hasher` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/shamirsecret.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | let _ = newsecret.recover_secretdata(vec![a, b, c]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/shamirsecret.rs:138:12 [INFO] [stderr] | [INFO] [stderr] 138 | if self.coefficients.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.coefficients.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/shamirsecret.rs:158:12 [INFO] [stderr] | [INFO] [stderr] 158 | if self.coefficients.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.coefficients.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/shamirsecret.rs:211:21 [INFO] [stderr] | [INFO] [stderr] 211 | xs.push(share[0].clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `share[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/shamirsecret.rs:224:26 [INFO] [stderr] | [INFO] [stderr] 224 | fxs.push(share[1..][byte_to_use].clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `share[1..][byte_to_use]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/shamirsecret.rs:233:31 [INFO] [stderr] | [INFO] [stderr] 233 | mysecretdata.push(result_polynomial[0].clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `result_polynomial[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/shamirsecret.rs:410:18 [INFO] [stderr] | [INFO] [stderr] 410 | _GF256_EXP[((_GF256_LOG[a as usize] as u16 + _GF256_LOG[b as usize] as u16) % 255) as usize] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(_GF256_LOG[a as usize])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/shamirsecret.rs:410:50 [INFO] [stderr] | [INFO] [stderr] 410 | _GF256_EXP[((_GF256_LOG[a as usize] as u16 + _GF256_LOG[b as usize] as u16) % 255) as usize] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(_GF256_LOG[b as usize])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/shamirsecret.rs:422:17 [INFO] [stderr] | [INFO] [stderr] 422 | let a_log = _GF256_LOG[a as usize] as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(_GF256_LOG[a as usize])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/shamirsecret.rs:423:17 [INFO] [stderr] | [INFO] [stderr] 423 | let b_log = _GF256_LOG[b as usize] as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(_GF256_LOG[b as usize])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shamirsecret.rs:428:9 [INFO] [stderr] | [INFO] [stderr] 428 | diff = 255 + diff; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `diff += 255` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/lib.rs:128:16 [INFO] [stderr] | [INFO] [stderr] 128 | if let None = passwordfile { [INFO] [stderr] | _________- ^^^^ [INFO] [stderr] 129 | | [INFO] [stderr] 130 | | // Create a new array to fill with 32 random bytes [INFO] [stderr] 131 | | let mut buffer = [0u8; 256]; [INFO] [stderr] ... | [INFO] [stderr] 154 | | [INFO] [stderr] 155 | | } [INFO] [stderr] | |_________- help: try this: `if passwordfile.is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/lib.rs:194:12 [INFO] [stderr] | [INFO] [stderr] 194 | if self.knownsecret == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.knownsecret` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/lib.rs:250:12 [INFO] [stderr] | [INFO] [stderr] 250 | if self.knownsecret == false && self.partialbytes.unwrap() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.knownsecret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/lib.rs:264:9 [INFO] [stderr] | [INFO] [stderr] 264 | / for (_id, account) in accountdict.accounts.iter(){ [INFO] [stderr] 265 | | [INFO] [stderr] 266 | | let saltpass: String = format!("{}{}", account.salt, password); [INFO] [stderr] 267 | | [INFO] [stderr] ... | [INFO] [stderr] 294 | | return shamir.is_valid_share(share); [INFO] [stderr] 295 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `PolyPasswordHasher`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "1a3855e0c7397f299c92accf0f1bafa92094f24fc660234af6b9ad841ba48b69"` [INFO] running `"docker" "rm" "-f" "1a3855e0c7397f299c92accf0f1bafa92094f24fc660234af6b9ad841ba48b69"` [INFO] [stdout] 1a3855e0c7397f299c92accf0f1bafa92094f24fc660234af6b9ad841ba48b69