[INFO] updating cached repository mrjones/erasure-codes [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/mrjones/erasure-codes [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/mrjones/erasure-codes" "work/ex/clippy-test-run/sources/stable/gh/mrjones/erasure-codes"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/mrjones/erasure-codes'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/mrjones/erasure-codes" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mrjones/erasure-codes"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mrjones/erasure-codes'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] dbaecfbcf0bb2d52943b377f9911b3e27cf58f46 [INFO] sha for GitHub repo mrjones/erasure-codes: dbaecfbcf0bb2d52943b377f9911b3e27cf58f46 [INFO] validating manifest of mrjones/erasure-codes 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 mrjones/erasure-codes 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 mrjones/erasure-codes [INFO] finished frobbing mrjones/erasure-codes [INFO] frobbed toml for mrjones/erasure-codes written to work/ex/clippy-test-run/sources/stable/gh/mrjones/erasure-codes/Cargo.toml [INFO] started frobbing mrjones/erasure-codes [INFO] finished frobbing mrjones/erasure-codes [INFO] frobbed toml for mrjones/erasure-codes written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mrjones/erasure-codes/Cargo.toml [INFO] crate mrjones/erasure-codes 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 mrjones/erasure-codes against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mrjones/erasure-codes:/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 -Dclippy::into_iter_on_array" "-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] 61c4619ea0d9e51700e9a6e688d81d601220a238fced8614f331eba8824a495d [INFO] running `"docker" "start" "-a" "61c4619ea0d9e51700e9a6e688d81d601220a238fced8614f331eba8824a495d"` [INFO] [stderr] Checking num-complex v0.1.35 [INFO] [stderr] Checking num-bigint v0.1.35 [INFO] [stderr] Checking num-rational v0.1.35 [INFO] [stderr] Checking num v0.1.36 [INFO] [stderr] Checking la v0.2.0 [INFO] [stderr] Checking erasure-codes v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/main.rs:281:25 [INFO] [stderr] | [INFO] [stderr] 281 | let m = to_matrix(&s_prime); [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/main.rs:281:25 [INFO] [stderr] | [INFO] [stderr] 281 | let m = to_matrix(&s_prime); [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: unused import: `rand::Rng` [INFO] [stderr] --> src/main.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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/main.rs:98:5 [INFO] [stderr] | [INFO] [stderr] 98 | return Ok(code_words); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(code_words)` [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/main.rs:110:5 [INFO] [stderr] | [INFO] [stderr] 110 | return dot; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `dot` [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/main.rs:115:5 [INFO] [stderr] | [INFO] [stderr] 115 | return a.iter().zip(b.iter()).map(|(x, y)| x + y).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `a.iter().zip(b.iter()).map(|(x, y)| x + y).collect()` [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/main.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | return a.iter().map(|x| x + c).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `a.iter().map(|x| x + c).collect()` [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/main.rs:123:5 [INFO] [stderr] | [INFO] [stderr] 123 | return a.iter().zip(b.iter()).map(|(x, y)| x * y).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `a.iter().zip(b.iter()).map(|(x, y)| x * y).collect()` [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/main.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 127 | return a.iter().map(|x| x * c).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `a.iter().map(|x| x * c).collect()` [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/main.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | return la::Matrix::new(a.len(), a[0].len(), d); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `la::Matrix::new(a.len(), a[0].len(), d)` [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/main.rs:154:5 [INFO] [stderr] | [INFO] [stderr] 154 | return rank [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `rank` [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/main.rs:167:5 [INFO] [stderr] | [INFO] [stderr] 167 | return null_basis; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `null_basis` [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/main.rs:176:5 [INFO] [stderr] | [INFO] [stderr] 176 | return one_null_basis(&svd); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `one_null_basis(&svd)` [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/main.rs:186:5 [INFO] [stderr] | [INFO] [stderr] 186 | return rank(&svd); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `rank(&svd)` [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/main.rs:292:5 [INFO] [stderr] | [INFO] [stderr] 292 | return g; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `g` [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/main.rs:325:5 [INFO] [stderr] | [INFO] [stderr] 325 | return gzero; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `gzero` [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/main.rs:353:5 [INFO] [stderr] | [INFO] [stderr] 353 | return Ok(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(result)` [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/main.rs:358:5 [INFO] [stderr] | [INFO] [stderr] 358 | return di / data_chunks_per_parity; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `di / data_chunks_per_parity` [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/main.rs:398:5 [INFO] [stderr] | [INFO] [stderr] 398 | return data_have + global_parity_have + locally_recoverable >= needed; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `data_have + global_parity_have + locally_recoverable >= needed` [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: unused import: `rand::Rng` [INFO] [stderr] --> src/main.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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/main.rs:98:5 [INFO] [stderr] | [INFO] [stderr] 98 | return Ok(code_words); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(code_words)` [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/main.rs:110:5 [INFO] [stderr] | [INFO] [stderr] 110 | return dot; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `dot` [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/main.rs:115:5 [INFO] [stderr] | [INFO] [stderr] 115 | return a.iter().zip(b.iter()).map(|(x, y)| x + y).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `a.iter().zip(b.iter()).map(|(x, y)| x + y).collect()` [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/main.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | return a.iter().map(|x| x + c).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `a.iter().map(|x| x + c).collect()` [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/main.rs:123:5 [INFO] [stderr] | [INFO] [stderr] 123 | return a.iter().zip(b.iter()).map(|(x, y)| x * y).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `a.iter().zip(b.iter()).map(|(x, y)| x * y).collect()` [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/main.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 127 | return a.iter().map(|x| x * c).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `a.iter().map(|x| x * c).collect()` [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/main.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | return la::Matrix::new(a.len(), a[0].len(), d); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `la::Matrix::new(a.len(), a[0].len(), d)` [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/main.rs:154:5 [INFO] [stderr] | [INFO] [stderr] 154 | return rank [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `rank` [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/main.rs:167:5 [INFO] [stderr] | [INFO] [stderr] 167 | return null_basis; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `null_basis` [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/main.rs:176:5 [INFO] [stderr] | [INFO] [stderr] 176 | return one_null_basis(&svd); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `one_null_basis(&svd)` [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/main.rs:186:5 [INFO] [stderr] | [INFO] [stderr] 186 | return rank(&svd); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `rank(&svd)` [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/main.rs:292:5 [INFO] [stderr] | [INFO] [stderr] 292 | return g; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `g` [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/main.rs:325:5 [INFO] [stderr] | [INFO] [stderr] 325 | return gzero; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `gzero` [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/main.rs:353:5 [INFO] [stderr] | [INFO] [stderr] 353 | return Ok(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(result)` [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/main.rs:358:5 [INFO] [stderr] | [INFO] [stderr] 358 | return di / data_chunks_per_parity; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `di / data_chunks_per_parity` [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/main.rs:398:5 [INFO] [stderr] | [INFO] [stderr] 398 | return data_have + global_parity_have + locally_recoverable >= needed; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `data_have + global_parity_have + locally_recoverable >= needed` [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: long literal lacking separators [INFO] [stderr] --> src/main.rs:560:18 [INFO] [stderr] | [INFO] [stderr] 560 | vec![0b00000001], [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:561:18 [INFO] [stderr] | [INFO] [stderr] 561 | vec![0b00000010], [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:562:18 [INFO] [stderr] | [INFO] [stderr] 562 | vec![0b00000100], [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:563:18 [INFO] [stderr] | [INFO] [stderr] 563 | vec![0b00001000], [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:564:18 [INFO] [stderr] | [INFO] [stderr] 564 | vec![0b00010000], [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:565:18 [INFO] [stderr] | [INFO] [stderr] 565 | vec![0b00100000], [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:570:25 [INFO] [stderr] | [INFO] [stderr] 570 | assert_eq!(vec![0b00000111], code_word.local_parities[0]); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:571:25 [INFO] [stderr] | [INFO] [stderr] 571 | assert_eq!(vec![0b00111000], code_word.local_parities[1]); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0011_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/main.rs:195:13 [INFO] [stderr] | [INFO] [stderr] 195 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^ help: consider using `_rng` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `k` [INFO] [stderr] --> src/main.rs:331:9 [INFO] [stderr] | [INFO] [stderr] 331 | let k = spec.data_chunks; [INFO] [stderr] | ^ help: consider using `_k` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n` [INFO] [stderr] --> src/main.rs:332:9 [INFO] [stderr] | [INFO] [stderr] 332 | let n = spec.data_chunks + spec.local_parities + spec.global_parities; [INFO] [stderr] | ^ help: consider using `_n` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `spec_622` [INFO] [stderr] --> src/main.rs:404:9 [INFO] [stderr] | [INFO] [stderr] 404 | let spec_622 = CodeSpec{ [INFO] [stderr] | ^^^^^^^^ help: consider using `_spec_622` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:195:9 [INFO] [stderr] | [INFO] [stderr] 195 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `rows` [INFO] [stderr] --> src/main.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | rows: i32, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `cols` [INFO] [stderr] --> src/main.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | cols: i32, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `parities_per_row` [INFO] [stderr] --> src/main.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | parities_per_row: i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `parities_per_col` [INFO] [stderr] --> src/main.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | parities_per_col: i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Data` [INFO] [stderr] --> src/main.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | Data(DataChunkIndex), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `LocalParity` [INFO] [stderr] --> src/main.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | LocalParity(LocalParityIndex), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GlobalParity` [INFO] [stderr] --> src/main.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | GlobalParity(GlobalParityIndex), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `global_parities` [INFO] [stderr] --> src/main.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | global_parities: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `v_dot` [INFO] [stderr] --> src/main.rs:103:1 [INFO] [stderr] | [INFO] [stderr] 103 | fn v_dot(a: &Vec, b: &Vec) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `v_add` [INFO] [stderr] --> src/main.rs:114:1 [INFO] [stderr] | [INFO] [stderr] 114 | fn v_add(a: &Vec, b: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `v_add_c` [INFO] [stderr] --> src/main.rs:118:1 [INFO] [stderr] | [INFO] [stderr] 118 | fn v_add_c(a: &Vec, c: u8) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `v_mult` [INFO] [stderr] --> src/main.rs:122:1 [INFO] [stderr] | [INFO] [stderr] 122 | fn v_mult(a: &Vec, b: &Vec) -> Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `v_mult_c` [INFO] [stderr] --> src/main.rs:126:1 [INFO] [stderr] | [INFO] [stderr] 126 | fn v_mult_c(a: &Vec, c: u8) -> Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `to_matrix` [INFO] [stderr] --> src/main.rs:130:1 [INFO] [stderr] | [INFO] [stderr] 130 | fn to_matrix(a: &Vec<&Vec>) -> la::Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rank` [INFO] [stderr] --> src/main.rs:145:1 [INFO] [stderr] | [INFO] [stderr] 145 | fn rank(svd: &la::SVD) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `one_null_basis` [INFO] [stderr] --> src/main.rs:157:1 [INFO] [stderr] | [INFO] [stderr] 157 | fn one_null_basis(svd: &la::SVD) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `one_null_basis_wrapper` [INFO] [stderr] --> src/main.rs:170:1 [INFO] [stderr] | [INFO] [stderr] 170 | fn one_null_basis_wrapper(a: &Vec<&Vec>) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rank_wrapper` [INFO] [stderr] --> src/main.rs:179:1 [INFO] [stderr] | [INFO] [stderr] 179 | fn rank_wrapper(a: &Vec<&Vec>) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `generate_g` [INFO] [stderr] --> src/main.rs:189:1 [INFO] [stderr] | [INFO] [stderr] 189 | fn generate_g(spec: &GPCSpec) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `generate_gzero` [INFO] [stderr] --> src/main.rs:296:1 [INFO] [stderr] | [INFO] [stderr] 296 | fn generate_gzero(spec: &GPCSpec) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `global_coefficients` [INFO] [stderr] --> src/main.rs:329:1 [INFO] [stderr] | [INFO] [stderr] 329 | fn global_coefficients(spec: &CodeSpec) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `local_parity_coverage` [INFO] [stderr] --> src/main.rs:337:1 [INFO] [stderr] | [INFO] [stderr] 337 | fn local_parity_coverage(spec: &CodeSpec) -> CodeResult>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `is_recoverable` [INFO] [stderr] --> src/main.rs:361:1 [INFO] [stderr] | [INFO] [stderr] 361 | fn is_recoverable(spec: &CodeSpec, erasures: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:72:45 [INFO] [stderr] | [INFO] [stderr] 72 | pub fn encode(spec: &CodeSpec, data_chunks: &Vec>) -> CodeResult { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the loop variable `di` is used to index `data_chunks` [INFO] [stderr] --> src/main.rs:82:15 [INFO] [stderr] | [INFO] [stderr] 82 | for di in 0..data_chunks.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] 82 | for (di, ) in data_chunks.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:86:12 [INFO] [stderr] | [INFO] [stderr] 86 | if code_words.local_parities[lpi as usize].len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!code_words.local_parities[lpi as usize].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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | fn v_dot(a: &Vec, b: &Vec) -> u64 { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:103:26 [INFO] [stderr] | [INFO] [stderr] 103 | fn v_dot(a: &Vec, b: &Vec) -> u64 { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:108:16 [INFO] [stderr] | [INFO] [stderr] 108 | dot += (a[i] as u64) * (b[i] as u64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(a[i])` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:108:32 [INFO] [stderr] | [INFO] [stderr] 108 | dot += (a[i] as u64) * (b[i] as u64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(b[i])` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | fn v_add(a: &Vec, b: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:114:26 [INFO] [stderr] | [INFO] [stderr] 114 | fn v_add(a: &Vec, b: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:118:15 [INFO] [stderr] | [INFO] [stderr] 118 | fn v_add_c(a: &Vec, c: u8) -> Vec { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:122:14 [INFO] [stderr] | [INFO] [stderr] 122 | fn v_mult(a: &Vec, b: &Vec) -> Vec{ [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:122:27 [INFO] [stderr] | [INFO] [stderr] 122 | fn v_mult(a: &Vec, b: &Vec) -> Vec{ [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:126:16 [INFO] [stderr] | [INFO] [stderr] 126 | fn v_mult_c(a: &Vec, c: u8) -> Vec{ [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | fn to_matrix(a: &Vec<&Vec>) -> la::Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[&Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:131:13 [INFO] [stderr] | [INFO] [stderr] 131 | assert!(a.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!a.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: the loop variable `r` is only used to index `a`. [INFO] [stderr] --> src/main.rs:135:14 [INFO] [stderr] | [INFO] [stderr] 135 | for r in 0..a.len() { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [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] 135 | for in &a { [INFO] [stderr] | ^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:137:20 [INFO] [stderr] | [INFO] [stderr] 137 | d[i] = a[r][c] as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f32::from(a[r][c])` [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/main.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | i = i+1; [INFO] [stderr] | ^^^^^^^ help: replace it with: `i += 1` [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | rank = rank + 1 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `rank += 1` [INFO] [stderr] | [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:170:30 [INFO] [stderr] | [INFO] [stderr] 170 | fn one_null_basis_wrapper(a: &Vec<&Vec>) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[&Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:171:8 [INFO] [stderr] | [INFO] [stderr] 171 | if a.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `a.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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:179:20 [INFO] [stderr] | [INFO] [stderr] 179 | fn rank_wrapper(a: &Vec<&Vec>) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[&Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:180:8 [INFO] [stderr] | [INFO] [stderr] 180 | if a.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `a.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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:256:17 [INFO] [stderr] | [INFO] [stderr] 256 | ug[i] = ug[i] + e as u64 * uu[i]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ug[i] += e as u64 * uu[i]` [INFO] [stderr] | [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:256:33 [INFO] [stderr] | [INFO] [stderr] 256 | ug[i] = ug[i] + e as u64 * uu[i]; [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(e)` [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: the loop variable `i` is used to index `g` [INFO] [stderr] --> src/main.rs:274:30 [INFO] [stderr] | [INFO] [stderr] 274 | for i in 0..g.len() { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [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] 274 | for (i, ) in g.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:361:46 [INFO] [stderr] | [INFO] [stderr] 361 | fn is_recoverable(spec: &CodeSpec, erasures: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[ChunkPosition]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:369:9 [INFO] [stderr] | [INFO] [stderr] 369 | / match erasure { [INFO] [stderr] 370 | | &ChunkPosition::Data(i) => { [INFO] [stderr] 371 | | data_missing.push(i); [INFO] [stderr] 372 | | }, [INFO] [stderr] ... | [INFO] [stderr] 378 | | }, [INFO] [stderr] 379 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 369 | match *erasure { [INFO] [stderr] 370 | ChunkPosition::Data(i) => { [INFO] [stderr] 371 | data_missing.push(i); [INFO] [stderr] 372 | }, [INFO] [stderr] 373 | ChunkPosition::GlobalParity(i) => { [INFO] [stderr] 374 | global_parity_missing.push(i); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:384:9 [INFO] [stderr] | [INFO] [stderr] 384 | / match erasure { [INFO] [stderr] 385 | | &ChunkPosition::Data(i) => { [INFO] [stderr] 386 | | let local_parity_index = local_parity_for_data_chunk(spec, i); [INFO] [stderr] 387 | | if !unusable_local_parities.contains(&local_parity_index) { [INFO] [stderr] ... | [INFO] [stderr] 392 | | _ => (), [INFO] [stderr] 393 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 384 | if let &ChunkPosition::Data(i) = erasure { [INFO] [stderr] 385 | let local_parity_index = local_parity_for_data_chunk(spec, i); [INFO] [stderr] 386 | if !unusable_local_parities.contains(&local_parity_index) { [INFO] [stderr] 387 | unusable_local_parities.push(local_parity_index); [INFO] [stderr] 388 | locally_recoverable = locally_recoverable + 1; [INFO] [stderr] 389 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:384:9 [INFO] [stderr] | [INFO] [stderr] 384 | / match erasure { [INFO] [stderr] 385 | | &ChunkPosition::Data(i) => { [INFO] [stderr] 386 | | let local_parity_index = local_parity_for_data_chunk(spec, i); [INFO] [stderr] 387 | | if !unusable_local_parities.contains(&local_parity_index) { [INFO] [stderr] ... | [INFO] [stderr] 392 | | _ => (), [INFO] [stderr] 393 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 384 | match *erasure { [INFO] [stderr] 385 | ChunkPosition::Data(i) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:389:21 [INFO] [stderr] | [INFO] [stderr] 389 | locally_recoverable = locally_recoverable + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `locally_recoverable += 1` [INFO] [stderr] | [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: unused variable: `rng` [INFO] [stderr] --> src/main.rs:195:13 [INFO] [stderr] | [INFO] [stderr] 195 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^ help: consider using `_rng` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `k` [INFO] [stderr] --> src/main.rs:331:9 [INFO] [stderr] | [INFO] [stderr] 331 | let k = spec.data_chunks; [INFO] [stderr] | ^ help: consider using `_k` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n` [INFO] [stderr] --> src/main.rs:332:9 [INFO] [stderr] | [INFO] [stderr] 332 | let n = spec.data_chunks + spec.local_parities + spec.global_parities; [INFO] [stderr] | ^ help: consider using `_n` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `spec_622` [INFO] [stderr] --> src/main.rs:404:9 [INFO] [stderr] | [INFO] [stderr] 404 | let spec_622 = CodeSpec{ [INFO] [stderr] | ^^^^^^^^ help: consider using `_spec_622` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:195:9 [INFO] [stderr] | [INFO] [stderr] 195 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `global_parities` [INFO] [stderr] --> src/main.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | global_parities: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `v_add_c` [INFO] [stderr] --> src/main.rs:118:1 [INFO] [stderr] | [INFO] [stderr] 118 | fn v_add_c(a: &Vec, c: u8) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `v_mult` [INFO] [stderr] --> src/main.rs:122:1 [INFO] [stderr] | [INFO] [stderr] 122 | fn v_mult(a: &Vec, b: &Vec) -> Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `global_coefficients` [INFO] [stderr] --> src/main.rs:329:1 [INFO] [stderr] | [INFO] [stderr] 329 | fn global_coefficients(spec: &CodeSpec) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `test_gpc_gzero_2x2_2_1` [INFO] [stderr] --> src/main.rs:597:5 [INFO] [stderr] | [INFO] [stderr] 597 | fn test_gpc_gzero_2x2_2_1() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `test_gpc_gzero_2x2_1_2` [INFO] [stderr] --> src/main.rs:621:5 [INFO] [stderr] | [INFO] [stderr] 621 | fn test_gpc_gzero_2x2_1_2() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:72:45 [INFO] [stderr] | [INFO] [stderr] 72 | pub fn encode(spec: &CodeSpec, data_chunks: &Vec>) -> CodeResult { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the loop variable `di` is used to index `data_chunks` [INFO] [stderr] --> src/main.rs:82:15 [INFO] [stderr] | [INFO] [stderr] 82 | for di in 0..data_chunks.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] 82 | for (di, ) in data_chunks.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:86:12 [INFO] [stderr] | [INFO] [stderr] 86 | if code_words.local_parities[lpi as usize].len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!code_words.local_parities[lpi as usize].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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | fn v_dot(a: &Vec, b: &Vec) -> u64 { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:103:26 [INFO] [stderr] | [INFO] [stderr] 103 | fn v_dot(a: &Vec, b: &Vec) -> u64 { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:108:16 [INFO] [stderr] | [INFO] [stderr] 108 | dot += (a[i] as u64) * (b[i] as u64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(a[i])` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:108:32 [INFO] [stderr] | [INFO] [stderr] 108 | dot += (a[i] as u64) * (b[i] as u64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(b[i])` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | fn v_add(a: &Vec, b: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:114:26 [INFO] [stderr] | [INFO] [stderr] 114 | fn v_add(a: &Vec, b: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:118:15 [INFO] [stderr] | [INFO] [stderr] 118 | fn v_add_c(a: &Vec, c: u8) -> Vec { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:122:14 [INFO] [stderr] | [INFO] [stderr] 122 | fn v_mult(a: &Vec, b: &Vec) -> Vec{ [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:122:27 [INFO] [stderr] | [INFO] [stderr] 122 | fn v_mult(a: &Vec, b: &Vec) -> Vec{ [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:126:16 [INFO] [stderr] | [INFO] [stderr] 126 | fn v_mult_c(a: &Vec, c: u8) -> Vec{ [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | fn to_matrix(a: &Vec<&Vec>) -> la::Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[&Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:131:13 [INFO] [stderr] | [INFO] [stderr] 131 | assert!(a.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!a.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: the loop variable `r` is only used to index `a`. [INFO] [stderr] --> src/main.rs:135:14 [INFO] [stderr] | [INFO] [stderr] 135 | for r in 0..a.len() { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [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] 135 | for in &a { [INFO] [stderr] | ^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:137:20 [INFO] [stderr] | [INFO] [stderr] 137 | d[i] = a[r][c] as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f32::from(a[r][c])` [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/main.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | i = i+1; [INFO] [stderr] | ^^^^^^^ help: replace it with: `i += 1` [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | rank = rank + 1 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `rank += 1` [INFO] [stderr] | [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:170:30 [INFO] [stderr] | [INFO] [stderr] 170 | fn one_null_basis_wrapper(a: &Vec<&Vec>) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[&Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:171:8 [INFO] [stderr] | [INFO] [stderr] 171 | if a.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `a.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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:179:20 [INFO] [stderr] | [INFO] [stderr] 179 | fn rank_wrapper(a: &Vec<&Vec>) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[&Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:180:8 [INFO] [stderr] | [INFO] [stderr] 180 | if a.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `a.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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:256:17 [INFO] [stderr] | [INFO] [stderr] 256 | ug[i] = ug[i] + e as u64 * uu[i]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ug[i] += e as u64 * uu[i]` [INFO] [stderr] | [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:256:33 [INFO] [stderr] | [INFO] [stderr] 256 | ug[i] = ug[i] + e as u64 * uu[i]; [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(e)` [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: the loop variable `i` is used to index `g` [INFO] [stderr] --> src/main.rs:274:30 [INFO] [stderr] | [INFO] [stderr] 274 | for i in 0..g.len() { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [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] 274 | for (i, ) in g.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:361:46 [INFO] [stderr] | [INFO] [stderr] 361 | fn is_recoverable(spec: &CodeSpec, erasures: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[ChunkPosition]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:369:9 [INFO] [stderr] | [INFO] [stderr] 369 | / match erasure { [INFO] [stderr] 370 | | &ChunkPosition::Data(i) => { [INFO] [stderr] 371 | | data_missing.push(i); [INFO] [stderr] 372 | | }, [INFO] [stderr] ... | [INFO] [stderr] 378 | | }, [INFO] [stderr] 379 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 369 | match *erasure { [INFO] [stderr] 370 | ChunkPosition::Data(i) => { [INFO] [stderr] 371 | data_missing.push(i); [INFO] [stderr] 372 | }, [INFO] [stderr] 373 | ChunkPosition::GlobalParity(i) => { [INFO] [stderr] 374 | global_parity_missing.push(i); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:384:9 [INFO] [stderr] | [INFO] [stderr] 384 | / match erasure { [INFO] [stderr] 385 | | &ChunkPosition::Data(i) => { [INFO] [stderr] 386 | | let local_parity_index = local_parity_for_data_chunk(spec, i); [INFO] [stderr] 387 | | if !unusable_local_parities.contains(&local_parity_index) { [INFO] [stderr] ... | [INFO] [stderr] 392 | | _ => (), [INFO] [stderr] 393 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 384 | if let &ChunkPosition::Data(i) = erasure { [INFO] [stderr] 385 | let local_parity_index = local_parity_for_data_chunk(spec, i); [INFO] [stderr] 386 | if !unusable_local_parities.contains(&local_parity_index) { [INFO] [stderr] 387 | unusable_local_parities.push(local_parity_index); [INFO] [stderr] 388 | locally_recoverable = locally_recoverable + 1; [INFO] [stderr] 389 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:384:9 [INFO] [stderr] | [INFO] [stderr] 384 | / match erasure { [INFO] [stderr] 385 | | &ChunkPosition::Data(i) => { [INFO] [stderr] 386 | | let local_parity_index = local_parity_for_data_chunk(spec, i); [INFO] [stderr] 387 | | if !unusable_local_parities.contains(&local_parity_index) { [INFO] [stderr] ... | [INFO] [stderr] 392 | | _ => (), [INFO] [stderr] 393 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 384 | match *erasure { [INFO] [stderr] 385 | ChunkPosition::Data(i) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:389:21 [INFO] [stderr] | [INFO] [stderr] 389 | locally_recoverable = locally_recoverable + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `locally_recoverable += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 6.31s [INFO] running `"docker" "inspect" "61c4619ea0d9e51700e9a6e688d81d601220a238fced8614f331eba8824a495d"` [INFO] running `"docker" "rm" "-f" "61c4619ea0d9e51700e9a6e688d81d601220a238fced8614f331eba8824a495d"` [INFO] [stdout] 61c4619ea0d9e51700e9a6e688d81d601220a238fced8614f331eba8824a495d