[INFO] crate compress 0.1.2 is already in cache [INFO] extracting crate compress 0.1.2 into work/ex/clippy-test-run/sources/stable/reg/compress/0.1.2 [INFO] extracting crate compress 0.1.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/compress/0.1.2 [INFO] validating manifest of compress-0.1.2 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 compress-0.1.2 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 compress-0.1.2 [INFO] finished frobbing compress-0.1.2 [INFO] frobbed toml for compress-0.1.2 written to work/ex/clippy-test-run/sources/stable/reg/compress/0.1.2/Cargo.toml [INFO] started frobbing compress-0.1.2 [INFO] finished frobbing compress-0.1.2 [INFO] frobbed toml for compress-0.1.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/compress/0.1.2/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 compress-0.1.2 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/reg/compress/0.1.2:/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] a06a9d96511dcdf7e7f8275f556f88472c7dd948a4211dcff21c5c4e191f1012 [INFO] running `"docker" "start" "-a" "a06a9d96511dcdf7e7f8275f556f88472c7dd948a4211dcff21c5c4e191f1012"` [INFO] [stderr] Checking compress v0.1.2 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/bwt/mtf.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | w: w, [INFO] [stderr] | ^^^^ help: replace it with: `w` [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/bwt/mtf.rs:107:13 [INFO] [stderr] | [INFO] [stderr] 107 | mtf: mtf, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `mtf` [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/bwt/mtf.rs:144:13 [INFO] [stderr] | [INFO] [stderr] 144 | r: r, [INFO] [stderr] | ^^^^ help: replace it with: `r` [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/bwt/mtf.rs:145:13 [INFO] [stderr] | [INFO] [stderr] 145 | mtf: mtf, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `mtf` [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/bwt/mod.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/bwt/mod.rs:255:13 [INFO] [stderr] | [INFO] [stderr] 255 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/bwt/mod.rs:256:13 [INFO] [stderr] | [INFO] [stderr] 256 | table: table, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `table` [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/bwt/mod.rs:257:13 [INFO] [stderr] | [INFO] [stderr] 257 | origin: origin, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `origin` [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/bwt/mod.rs:344:13 [INFO] [stderr] | [INFO] [stderr] 344 | r: r, [INFO] [stderr] | ^^^^ help: replace it with: `r` [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/bwt/mod.rs:453:13 [INFO] [stderr] | [INFO] [stderr] 453 | w: w, [INFO] [stderr] | ^^^^ help: replace it with: `w` [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/bwt/mod.rs:457:13 [INFO] [stderr] | [INFO] [stderr] 457 | block_size: block_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_size` [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/flate.rs:183:13 [INFO] [stderr] | [INFO] [stderr] 183 | r: r, [INFO] [stderr] | ^^^^ help: replace it with: `r` [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/lz4.rs:338:13 [INFO] [stderr] | [INFO] [stderr] 338 | r: r, [INFO] [stderr] | ^^^^ help: replace it with: `r` [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/lz4.rs:519:13 [INFO] [stderr] | [INFO] [stderr] 519 | w: w, [INFO] [stderr] | ^^^^ help: replace it with: `w` [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/lz4.rs:601:9 [INFO] [stderr] | [INFO] [stderr] 601 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/lz4.rs:602:9 [INFO] [stderr] | [INFO] [stderr] 602 | output: output, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `output` [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/lz4.rs:615:9 [INFO] [stderr] | [INFO] [stderr] 615 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/lz4.rs:616:9 [INFO] [stderr] | [INFO] [stderr] 616 | output: output, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `output` [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/entropy/ari/bin.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | rate: rate, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `rate` [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/entropy/ari/bin.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | rate: rate, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `rate` [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/entropy/ari/bin.rs:124:13 [INFO] [stderr] | [INFO] [stderr] 124 | first: first, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `first` [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/entropy/ari/bin.rs:125:13 [INFO] [stderr] | [INFO] [stderr] 125 | second: second, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `second` [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/entropy/ari/table.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | total: total, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `total` [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/rle.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | w: w, [INFO] [stderr] | ^^^^ help: replace it with: `w` [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/rle.rs:134:13 [INFO] [stderr] | [INFO] [stderr] 134 | byte: byte, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `byte` [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/rle.rs:147:13 [INFO] [stderr] | [INFO] [stderr] 147 | reps: reps [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `reps` [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/rle.rs:251:58 [INFO] [stderr] | [INFO] [stderr] 251 | DecoderState::Single(byte) => Some(Run { byte: byte, reps: 1 }), [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `byte` [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/bwt/mtf.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | w: w, [INFO] [stderr] | ^^^^ help: replace it with: `w` [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/bwt/mtf.rs:107:13 [INFO] [stderr] | [INFO] [stderr] 107 | mtf: mtf, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `mtf` [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/bwt/mtf.rs:144:13 [INFO] [stderr] | [INFO] [stderr] 144 | r: r, [INFO] [stderr] | ^^^^ help: replace it with: `r` [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/bwt/mtf.rs:145:13 [INFO] [stderr] | [INFO] [stderr] 145 | mtf: mtf, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `mtf` [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/bwt/mod.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/bwt/mod.rs:255:13 [INFO] [stderr] | [INFO] [stderr] 255 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/bwt/mod.rs:256:13 [INFO] [stderr] | [INFO] [stderr] 256 | table: table, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `table` [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/bwt/mod.rs:257:13 [INFO] [stderr] | [INFO] [stderr] 257 | origin: origin, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `origin` [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/bwt/mod.rs:344:13 [INFO] [stderr] | [INFO] [stderr] 344 | r: r, [INFO] [stderr] | ^^^^ help: replace it with: `r` [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/bwt/mod.rs:453:13 [INFO] [stderr] | [INFO] [stderr] 453 | w: w, [INFO] [stderr] | ^^^^ help: replace it with: `w` [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/bwt/mod.rs:457:13 [INFO] [stderr] | [INFO] [stderr] 457 | block_size: block_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_size` [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/flate.rs:183:13 [INFO] [stderr] | [INFO] [stderr] 183 | r: r, [INFO] [stderr] | ^^^^ help: replace it with: `r` [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/lz4.rs:338:13 [INFO] [stderr] | [INFO] [stderr] 338 | r: r, [INFO] [stderr] | ^^^^ help: replace it with: `r` [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/lz4.rs:519:13 [INFO] [stderr] | [INFO] [stderr] 519 | w: w, [INFO] [stderr] | ^^^^ help: replace it with: `w` [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/lz4.rs:601:9 [INFO] [stderr] | [INFO] [stderr] 601 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/lz4.rs:602:9 [INFO] [stderr] | [INFO] [stderr] 602 | output: output, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `output` [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/lz4.rs:615:9 [INFO] [stderr] | [INFO] [stderr] 615 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/lz4.rs:616:9 [INFO] [stderr] | [INFO] [stderr] 616 | output: output, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `output` [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/entropy/ari/bin.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | rate: rate, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `rate` [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/entropy/ari/bin.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | rate: rate, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `rate` [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/entropy/ari/bin.rs:124:13 [INFO] [stderr] | [INFO] [stderr] 124 | first: first, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `first` [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/entropy/ari/bin.rs:125:13 [INFO] [stderr] | [INFO] [stderr] 125 | second: second, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `second` [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/entropy/ari/table.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | total: total, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `total` [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/rle.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | w: w, [INFO] [stderr] | ^^^^ help: replace it with: `w` [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/rle.rs:134:13 [INFO] [stderr] | [INFO] [stderr] 134 | byte: byte, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `byte` [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/rle.rs:147:13 [INFO] [stderr] | [INFO] [stderr] 147 | reps: reps [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `reps` [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/rle.rs:251:58 [INFO] [stderr] | [INFO] [stderr] 251 | DecoderState::Single(byte) => Some(Run { byte: byte, reps: 1 }), [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `byte` [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 `>= y + 1` or `x - 1 >=` [INFO] [stderr] --> src/bwt/dc.rs:134:25 [INFO] [stderr] | [INFO] [stderr] 134 | assert!(i >= base+rank+1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::int_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stderr] help: change `>= y + 1` to `> y` as shown [INFO] [stderr] | [INFO] [stderr] 134 | assert!(i > base+rank); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: Unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stderr] --> src/bwt/dc.rs:142:17 [INFO] [stderr] | [INFO] [stderr] 142 | assert!(n >= base+rank+1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stderr] help: change `>= y + 1` to `> y` as shown [INFO] [stderr] | [INFO] [stderr] 142 | assert!(n > base+rank); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/bwt/mtf.rs:167:12 [INFO] [stderr] | [INFO] [stderr] 167 | Ok((bytes_read)) [INFO] [stderr] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/bwt/mtf.rs:167:12 [INFO] [stderr] | [INFO] [stderr] 167 | Ok((bytes_read)) [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bwt/mod.rs:400:9 [INFO] [stderr] | [INFO] [stderr] 400 | return Ok(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(true)` [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/flate.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | return Ok(tree); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(tree)` [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/flate.rs:144:9 [INFO] [stderr] | [INFO] [stderr] 144 | return error(Error::NotEnoughBits); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `error(Error::NotEnoughBits)` [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/flate.rs:258:9 [INFO] [stderr] | [INFO] [stderr] 258 | return Ok(ret as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ret as u16)` [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/lz4.rs:40:20 [INFO] [stderr] | [INFO] [stderr] 40 | const MAGIC: u32 = 0x184d2204; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x184d_2204` [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/lz4.rs:52:25 [INFO] [stderr] | [INFO] [stderr] 52 | const UNINITHASH: u32 = 0x88888888; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8888_8888` [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/lz4.rs:53:29 [INFO] [stderr] | [INFO] [stderr] 53 | const MAX_INPUT_SIZE: u32 = 0x7e000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x7e00_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/lz4.rs:248:58 [INFO] [stderr] | [INFO] [stderr] 248 | let hash = (Wrapping(seq) * Wrapping(2654435761)).shr(HASH_SHIFT as usize).0; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_654_435_761` [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: unneeded return statement [INFO] [stderr] --> src/lz4.rs:416:9 [INFO] [stderr] | [INFO] [stderr] 416 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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/lz4.rs:460:9 [INFO] [stderr] | [INFO] [stderr] 460 | return Ok(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(true)` [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/lz4.rs:425:22 [INFO] [stderr] | [INFO] [stderr] 425 | n if n & 0x80000000 != 0 => { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_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/lz4.rs:426:32 [INFO] [stderr] | [INFO] [stderr] 426 | let amt = (n & 0x7fffffff) as usize; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x7fff_ffff` [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/lz4.rs:533:77 [INFO] [stderr] | [INFO] [stderr] 533 | try!(self.w.write_u32::((self.buf.len() as u32) | 0x80000000)); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_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: digit groups should be smaller [INFO] [stderr] --> src/lz4.rs:567:34 [INFO] [stderr] | [INFO] [stderr] 567 | try!(self.w.write_u8(0b01_100000)); [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b0110_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_digit_groups)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/lz4.rs:569:34 [INFO] [stderr] | [INFO] [stderr] 569 | try!(self.w.write_u8(0b0_101_0000)); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `0b0101_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/entropy/ari/apm.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | wp [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/entropy/ari/apm.rs:58:18 [INFO] [stderr] | [INFO] [stderr] 58 | let wp = (d * WIDE_OFFSET as f32).to_i16().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/entropy/ari/table.rs:164:23 [INFO] [stderr] | [INFO] [stderr] 164 | while { hi = lo + [INFO] [stderr] | _______________________^ [INFO] [stderr] 165 | | (self.w_first * (self.first.get_frequencies()[value] as Border) + [INFO] [stderr] 166 | | self.w_second * (self.second.get_frequencies()[value] as Border)) >> [INFO] [stderr] 167 | | (self.w_shift as usize); [INFO] [stderr] | |_______________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] help: consider parenthesizing your expression [INFO] [stderr] | [INFO] [stderr] 164 | while { hi = (lo + [INFO] [stderr] 165 | (self.w_first * (self.first.get_frequencies()[value] as Border) + [INFO] [stderr] 166 | self.w_second * (self.second.get_frequencies()[value] as Border))) >> (self.w_shift as usize); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stderr] --> src/bwt/dc.rs:134:25 [INFO] [stderr] | [INFO] [stderr] 134 | assert!(i >= base+rank+1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::int_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stderr] help: change `>= y + 1` to `> y` as shown [INFO] [stderr] | [INFO] [stderr] 134 | assert!(i > base+rank); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: Unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stderr] --> src/bwt/dc.rs:142:17 [INFO] [stderr] | [INFO] [stderr] 142 | assert!(n >= base+rank+1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stderr] help: change `>= y + 1` to `> y` as shown [INFO] [stderr] | [INFO] [stderr] 142 | assert!(n > base+rank); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/bwt/mtf.rs:167:12 [INFO] [stderr] | [INFO] [stderr] 167 | Ok((bytes_read)) [INFO] [stderr] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/bwt/mtf.rs:167:12 [INFO] [stderr] | [INFO] [stderr] 167 | Ok((bytes_read)) [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bwt/mod.rs:400:9 [INFO] [stderr] | [INFO] [stderr] 400 | return Ok(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(true)` [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/flate.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | return Ok(tree); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(tree)` [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/flate.rs:144:9 [INFO] [stderr] | [INFO] [stderr] 144 | return error(Error::NotEnoughBits); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `error(Error::NotEnoughBits)` [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/flate.rs:258:9 [INFO] [stderr] | [INFO] [stderr] 258 | return Ok(ret as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ret as u16)` [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/lz4.rs:40:20 [INFO] [stderr] | [INFO] [stderr] 40 | const MAGIC: u32 = 0x184d2204; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x184d_2204` [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/lz4.rs:52:25 [INFO] [stderr] | [INFO] [stderr] 52 | const UNINITHASH: u32 = 0x88888888; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8888_8888` [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/lz4.rs:53:29 [INFO] [stderr] | [INFO] [stderr] 53 | const MAX_INPUT_SIZE: u32 = 0x7e000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x7e00_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/lz4.rs:248:58 [INFO] [stderr] | [INFO] [stderr] 248 | let hash = (Wrapping(seq) * Wrapping(2654435761)).shr(HASH_SHIFT as usize).0; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_654_435_761` [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: unneeded return statement [INFO] [stderr] --> src/lz4.rs:416:9 [INFO] [stderr] | [INFO] [stderr] 416 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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/lz4.rs:460:9 [INFO] [stderr] | [INFO] [stderr] 460 | return Ok(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(true)` [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/lz4.rs:425:22 [INFO] [stderr] | [INFO] [stderr] 425 | n if n & 0x80000000 != 0 => { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_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/lz4.rs:426:32 [INFO] [stderr] | [INFO] [stderr] 426 | let amt = (n & 0x7fffffff) as usize; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x7fff_ffff` [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/lz4.rs:533:77 [INFO] [stderr] | [INFO] [stderr] 533 | try!(self.w.write_u32::((self.buf.len() as u32) | 0x80000000)); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_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: digit groups should be smaller [INFO] [stderr] --> src/lz4.rs:567:34 [INFO] [stderr] | [INFO] [stderr] 567 | try!(self.w.write_u8(0b01_100000)); [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b0110_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_digit_groups)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/lz4.rs:569:34 [INFO] [stderr] | [INFO] [stderr] 569 | try!(self.w.write_u8(0b0_101_0000)); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `0b0101_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/entropy/ari/apm.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | wp [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/entropy/ari/apm.rs:58:18 [INFO] [stderr] | [INFO] [stderr] 58 | let wp = (d * WIDE_OFFSET as f32).to_i16().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/entropy/ari/table.rs:164:23 [INFO] [stderr] | [INFO] [stderr] 164 | while { hi = lo + [INFO] [stderr] | _______________________^ [INFO] [stderr] 165 | | (self.w_first * (self.first.get_frequencies()[value] as Border) + [INFO] [stderr] 166 | | self.w_second * (self.second.get_frequencies()[value] as Border)) >> [INFO] [stderr] 167 | | (self.w_shift as usize); [INFO] [stderr] | |_______________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] help: consider parenthesizing your expression [INFO] [stderr] | [INFO] [stderr] 164 | while { hi = (lo + [INFO] [stderr] 165 | (self.w_first * (self.first.get_frequencies()[value] as Border) + [INFO] [stderr] 166 | self.w_second * (self.second.get_frequencies()[value] as Border))) >> (self.w_shift as usize); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `Float` [INFO] [stderr] --> src/entropy/ari/apm.rs:18:25 [INFO] [stderr] | [INFO] [stderr] 18 | use self::num::traits::{Float, ToPrimitive}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `checksum::adler::State32` [INFO] [stderr] --> src/checksum/adler.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / pub fn new() -> State32 { [INFO] [stderr] 30 | | State32 { a: 1, b: 0 } [INFO] [stderr] 31 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 22 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/checksum/adler.rs:36:32 [INFO] [stderr] | [INFO] [stderr] 36 | self.a = (self.a + *byte as u32) % MOD_ADLER; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(*byte)` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/bwt/dc.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | / pub fn get_init<'c>(&'c self) -> &'c [usize; TOTAL_SYMBOLS] { [INFO] [stderr] 83 | | assert_eq!(self.last_active, 0); [INFO] [stderr] 84 | | &self.pos [INFO] [stderr] 85 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bwt/dc.rs:118:24 [INFO] [stderr] | [INFO] [stderr] 118 | distances[i] = filler.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `filler` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bwt/dc.rs:158:5 [INFO] [stderr] | [INFO] [stderr] 158 | init.iter().map(|d| d.clone()).chain(eniter.by_ref().map(|(d,_)| d)).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `init.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bwt/dc.rs:158:25 [INFO] [stderr] | [INFO] [stderr] 158 | init.iter().map(|d| d.clone()).chain(eniter.by_ref().map(|(d,_)| d)).collect() [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*d` [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: you should consider adding a `Default` implementation for `bwt::mtf::MTF` [INFO] [stderr] --> src/bwt/mtf.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | / pub fn new() -> MTF { [INFO] [stderr] 52 | | MTF { symbols: [0; TOTAL_SYMBOLS] } [INFO] [stderr] 53 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 49 | impl Default for bwt::mtf::MTF { [INFO] [stderr] 50 | fn default() -> Self { [INFO] [stderr] 51 | Self::new() [INFO] [stderr] 52 | } [INFO] [stderr] 53 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `bwt::Radix` [INFO] [stderr] --> src/bwt/mod.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | / pub fn new() -> Radix { [INFO] [stderr] 81 | | Radix { [INFO] [stderr] 82 | | freq : [0; ALPHABET_SIZE+1], [INFO] [stderr] 83 | | } [INFO] [stderr] 84 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 78 | impl Default for bwt::Radix { [INFO] [stderr] 79 | fn default() -> Self { [INFO] [stderr] 80 | Self::new() [INFO] [stderr] 81 | } [INFO] [stderr] 82 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bwt/mod.rs:300:8 [INFO] [stderr] | [INFO] [stderr] 300 | if input.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.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: You appear to be counting bytes the naive way [INFO] [stderr] --> src/bwt/mod.rs:312:23 [INFO] [stderr] | [INFO] [stderr] 312 | let offset = &input[..i].iter().filter(|&k| *k==ch).count(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider using the bytecount crate: `bytecount::count(input[..i], ch)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::naive_bytecount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#naive_bytecount [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bwt/mod.rs:498:15 [INFO] [stderr] | [INFO] [stderr] 498 | while buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!buf.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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bwt/mod.rs:500:29 [INFO] [stderr] | [INFO] [stderr] 500 | self.buf.extend(buf[..amt].iter().map(|b| *b)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `buf[..amt].iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bwt/mod.rs:511:22 [INFO] [stderr] | [INFO] [stderr] 511 | let ret = if self.buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.buf.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: an inclusive range would be more readable [INFO] [stderr] --> src/flate.rs:98:18 [INFO] [stderr] | [INFO] [stderr] 98 | for i in 1..(MAXBITS + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `1..=MAXBITS` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/flate.rs:133:20 [INFO] [stderr] | [INFO] [stderr] 133 | for len in 1..(MAXBITS + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `1..=MAXBITS` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/flate.rs:216:32 [INFO] [stderr] | [INFO] [stderr] 216 | self.output.extend(self.block[from..(from + n)].iter().map(|b| *b)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.block[from..(from + n)].iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/flate.rs:240:34 [INFO] [stderr] | [INFO] [stderr] 240 | try!(self.r.push_exactly(len as u64, &mut self.block)); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(len)` [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: unused import: `Float` [INFO] [stderr] --> src/entropy/ari/apm.rs:18:25 [INFO] [stderr] | [INFO] [stderr] 18 | use self::num::traits::{Float, ToPrimitive}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lz4.rs:186:9 [INFO] [stderr] | [INFO] [stderr] 186 | (self.input[pos as usize + 3] as u32) << 24 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.input[pos as usize + 3])` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/lz4.rs:187:15 [INFO] [stderr] | [INFO] [stderr] 187 | | (self.input[pos as usize + 2] as u32) << 16 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.input[pos as usize + 2])` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/lz4.rs:188:15 [INFO] [stderr] | [INFO] [stderr] 188 | | (self.input[pos as usize + 1] as u32) << 8 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.input[pos as usize + 1])` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/lz4.rs:189:15 [INFO] [stderr] | [INFO] [stderr] 189 | | (self.input[pos as usize] as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.input[pos 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/lz4.rs:254:29 [INFO] [stderr] | [INFO] [stderr] 254 | limit = limit << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `limit <<= 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] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/lz4.rs:367:9 [INFO] [stderr] | [INFO] [stderr] 367 | try!(self.r.read(&mut bits[..2])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/lz4.rs:531:13 [INFO] [stderr] | [INFO] [stderr] 531 | try!(self.w.write(&self.tmp)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/lz4.rs:534:13 [INFO] [stderr] | [INFO] [stderr] 534 | try!(self.w.write(&self.buf)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lz4.rs:575:15 [INFO] [stderr] | [INFO] [stderr] 575 | while buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!buf.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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lz4.rs:577:29 [INFO] [stderr] | [INFO] [stderr] 577 | self.buf.extend(buf[..amt].iter().map(|b| *b)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `buf[..amt].iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lz4.rs:589:12 [INFO] [stderr] | [INFO] [stderr] 589 | if self.buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.buf.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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/zlib.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | if ((cmf as u16) * 256 + (flg as u16)) % 31 != 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(cmf)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/zlib.rs:78:34 [INFO] [stderr] | [INFO] [stderr] 78 | if ((cmf as u16) * 256 + (flg as u16)) % 31 != 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(flg)` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/entropy/ari/apm.rs:47:20 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn to_flat(&self) -> FlatProbability { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/entropy/ari/apm.rs:54:20 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn to_wide(&self) -> WideProbability { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/apm.rs:56:17 [INFO] [stderr] | [INFO] [stderr] 56 | let p = (self.to_flat() as f32) / (FLAT_TOTAL as f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(self.to_flat())` [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 i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/apm.rs:58:23 [INFO] [stderr] | [INFO] [stderr] 58 | let wp = (d * WIDE_OFFSET as f32).to_i16().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f32::from(WIDE_OFFSET)` [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 i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/apm.rs:72:17 [INFO] [stderr] | [INFO] [stderr] 72 | let d = (wp as f32) / (WIDE_OFFSET as f32); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f32::from(wp)` [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 i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/apm.rs:72:31 [INFO] [stderr] | [INFO] [stderr] 72 | let d = (wp as f32) / (WIDE_OFFSET as f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(WIDE_OFFSET)` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/apm.rs:105:18 [INFO] [stderr] | [INFO] [stderr] 105 | let fp = self.to_flat() as Border; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.to_flat())` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/apm.rs:116:18 [INFO] [stderr] | [INFO] [stderr] 116 | let fp = self.to_flat() as Border; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.to_flat())` [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: you should consider adding a `Default` implementation for `entropy::ari::apm::Gate` [INFO] [stderr] --> src/entropy/ari/apm.rs:141:5 [INFO] [stderr] | [INFO] [stderr] 141 | / pub fn new() -> Gate { [INFO] [stderr] 142 | | let mut g = Gate { [INFO] [stderr] 143 | | map: [Bit::new_equal(); PORTAL_BINS], [INFO] [stderr] 144 | | }; [INFO] [stderr] ... | [INFO] [stderr] 150 | | g [INFO] [stderr] 151 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 139 | impl Default for entropy::ari::apm::Gate { [INFO] [stderr] 140 | fn default() -> Self { [INFO] [stderr] 141 | Self::new() [INFO] [stderr] 142 | } [INFO] [stderr] 143 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/apm.rs:147:28 [INFO] [stderr] | [INFO] [stderr] 147 | let wp = (rp * (WIDE_OFFSET as f32)).to_i16().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(WIDE_OFFSET)` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/entropy/ari/apm.rs:155:29 [INFO] [stderr] | [INFO] [stderr] 155 | pub fn pass(&self, bit: &Bit) -> (Bit, BinCoords) { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `Bit` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `index` [INFO] [stderr] --> src/entropy/ari/apm.rs:166:22 [INFO] [stderr] | [INFO] [stderr] 166 | self.map[index+0].to_flat() as usize, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `index` [INFO] [stderr] --> src/entropy/ari/apm.rs:178:18 [INFO] [stderr] | [INFO] [stderr] 178 | self.map[index+0].update_zero(rate, bias); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `index` [INFO] [stderr] --> src/entropy/ari/apm.rs:185:18 [INFO] [stderr] | [INFO] [stderr] 185 | self.map[index+0].update_one(rate, bias); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/bin.rs:40:19 [INFO] [stderr] | [INFO] [stderr] 40 | zero: (zero_percent as Border)*threshold/100, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(zero_percent)` [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: redundant closure found [INFO] [stderr] --> src/entropy/ari/table.rs:38:56 [INFO] [stderr] | [INFO] [stderr] 38 | let freq: Vec = (0..num_values).map(|i| fn_init(i)).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove closure as shown: `fn_init` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/table.rs:39:60 [INFO] [stderr] | [INFO] [stderr] 39 | let total = freq.iter().fold(0 as Border, |u,&f| u+(f as Border)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(f)` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/table.rs:89:27 [INFO] [stderr] | [INFO] [stderr] 89 | self.total += *freq as Border; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(*freq)` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/entropy/ari/table.rs:94:5 [INFO] [stderr] | [INFO] [stderr] 94 | / pub fn get_frequencies<'a>(&'a self) -> &'a [Frequency] { [INFO] [stderr] 95 | | &self.table[..] [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/table.rs:101:62 [INFO] [stderr] | [INFO] [stderr] 101 | let lo = self.table[..value].iter().fold(0, |u,&f| u+(f as Border)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(f)` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/table.rs:102:19 [INFO] [stderr] | [INFO] [stderr] 102 | (lo, lo + (self.table[value] as Border)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.table[value])` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/table.rs:112:22 [INFO] [stderr] | [INFO] [stderr] 112 | while {hi=lo+(self.table[value] as Border); hi} <= offset { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.table[value])` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/table.rs:165:33 [INFO] [stderr] | [INFO] [stderr] 165 | (self.w_first * (self.first.get_frequencies()[value] as Border) + [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.first.get_frequencies()[value])` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/table.rs:166:33 [INFO] [stderr] | [INFO] [stderr] 166 | self.w_second * (self.second.get_frequencies()[value] as Border)) >> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.second.get_frequencies()[value])` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/mod.rs:201:65 [INFO] [stderr] | [INFO] [stderr] 201 | out[..shift].iter().fold(0 as Border, |u,&b| (u<<8)+(b as Border))); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(b)` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/mod.rs:274:42 [INFO] [stderr] | [INFO] [stderr] 274 | self.code = (self.code<<8) + (b as Border); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(b)` [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: length comparison to zero [INFO] [stderr] --> src/rle.rs:83:29 [INFO] [stderr] | [INFO] [stderr] 83 | if ! self.in_run && buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!buf.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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/rle.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | try!(self.w.write(&[self.byte])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/rle.rs:108:17 [INFO] [stderr] | [INFO] [stderr] 108 | reps_encode = reps_encode >> 7; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reps_encode >>= 7` [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: manual implementation of an assign operation [INFO] [stderr] --> src/rle.rs:111:21 [INFO] [stderr] | [INFO] [stderr] 111 | buf[index] = buf[index] | 0b1000_0000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `buf[index] |= 0b1000_0000` [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/rle.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | try!(self.w.write(&buf[..(index + 1)])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/rle.rs:118:36 [INFO] [stderr] | [INFO] [stderr] 118 | try!(self.w.write(&buf[..(index + 1)])); [INFO] [stderr] | ^^^^^^^^^^^^^ help: use: `..=index` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/rle.rs:140:15 [INFO] [stderr] | [INFO] [stderr] 140 | fn to_run(&mut self) -> Run { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/rle.rs:142:21 [INFO] [stderr] | [INFO] [stderr] 142 | reps | (((byte & 0b0111_1111) as u64) << (i as u32 * 7)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(byte & 0b0111_1111)` [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: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/rle.rs:195:16 [INFO] [stderr] | [INFO] [stderr] 195 | if let None = self.run { [INFO] [stderr] | _________- ^^^^ [INFO] [stderr] 196 | | try!(self.read_run()); [INFO] [stderr] 197 | | } [INFO] [stderr] | |_________- help: try this: `if self.run.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: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/rle.rs:248:16 [INFO] [stderr] | [INFO] [stderr] 248 | if let None = self.run { [INFO] [stderr] | _________- ^^^^ [INFO] [stderr] 249 | | self.run = match self.state { [INFO] [stderr] 250 | | DecoderState::Clean => None, [INFO] [stderr] 251 | | DecoderState::Single(byte) => Some(Run { byte: byte, reps: 1 }), [INFO] [stderr] ... | [INFO] [stderr] 255 | | self.state = DecoderState::Clean; [INFO] [stderr] 256 | | } [INFO] [stderr] | |_________- help: try this: `if self.run.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] error: aborting due to 5 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `compress`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `checksum::adler::State32` [INFO] [stderr] --> src/checksum/adler.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / pub fn new() -> State32 { [INFO] [stderr] 30 | | State32 { a: 1, b: 0 } [INFO] [stderr] 31 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 22 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/checksum/adler.rs:36:32 [INFO] [stderr] | [INFO] [stderr] 36 | self.a = (self.a + *byte as u32) % MOD_ADLER; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(*byte)` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/bwt/dc.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | / pub fn get_init<'c>(&'c self) -> &'c [usize; TOTAL_SYMBOLS] { [INFO] [stderr] 83 | | assert_eq!(self.last_active, 0); [INFO] [stderr] 84 | | &self.pos [INFO] [stderr] 85 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bwt/dc.rs:118:24 [INFO] [stderr] | [INFO] [stderr] 118 | distances[i] = filler.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `filler` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bwt/dc.rs:158:5 [INFO] [stderr] | [INFO] [stderr] 158 | init.iter().map(|d| d.clone()).chain(eniter.by_ref().map(|(d,_)| d)).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `init.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bwt/dc.rs:158:25 [INFO] [stderr] | [INFO] [stderr] 158 | init.iter().map(|d| d.clone()).chain(eniter.by_ref().map(|(d,_)| d)).collect() [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*d` [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: the loop variable `i` is used to index `init` [INFO] [stderr] --> src/bwt/dc.rs:275:18 [INFO] [stderr] | [INFO] [stderr] 275 | for i in 0..super::TOTAL_SYMBOLS { [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] 275 | for (i, ) in init.iter_mut().enumerate().take(super::TOTAL_SYMBOLS) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/bwt/dc.rs:275:18 [INFO] [stderr] | [INFO] [stderr] 275 | for i in 0..super::TOTAL_SYMBOLS { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `init[..super::TOTAL_SYMBOLS].clone_from_slice(&eniter.get_init()[..super::TOTAL_SYMBOLS])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `bwt::mtf::MTF` [INFO] [stderr] --> src/bwt/mtf.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | / pub fn new() -> MTF { [INFO] [stderr] 52 | | MTF { symbols: [0; TOTAL_SYMBOLS] } [INFO] [stderr] 53 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 49 | impl Default for bwt::mtf::MTF { [INFO] [stderr] 50 | fn default() -> Self { [INFO] [stderr] 51 | Self::new() [INFO] [stderr] 52 | } [INFO] [stderr] 53 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `bwt::Radix` [INFO] [stderr] --> src/bwt/mod.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | / pub fn new() -> Radix { [INFO] [stderr] 81 | | Radix { [INFO] [stderr] 82 | | freq : [0; ALPHABET_SIZE+1], [INFO] [stderr] 83 | | } [INFO] [stderr] 84 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 78 | impl Default for bwt::Radix { [INFO] [stderr] 79 | fn default() -> Self { [INFO] [stderr] 80 | Self::new() [INFO] [stderr] 81 | } [INFO] [stderr] 82 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bwt/mod.rs:300:8 [INFO] [stderr] | [INFO] [stderr] 300 | if input.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.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: You appear to be counting bytes the naive way [INFO] [stderr] --> src/bwt/mod.rs:312:23 [INFO] [stderr] | [INFO] [stderr] 312 | let offset = &input[..i].iter().filter(|&k| *k==ch).count(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider using the bytecount crate: `bytecount::count(input[..i], ch)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::naive_bytecount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#naive_bytecount [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bwt/mod.rs:498:15 [INFO] [stderr] | [INFO] [stderr] 498 | while buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!buf.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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bwt/mod.rs:500:29 [INFO] [stderr] | [INFO] [stderr] 500 | self.buf.extend(buf[..amt].iter().map(|b| *b)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `buf[..amt].iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bwt/mod.rs:511:22 [INFO] [stderr] | [INFO] [stderr] 511 | let ret = if self.buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.buf.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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bwt/mod.rs:530:9 [INFO] [stderr] | [INFO] [stderr] 530 | e.write(bytes).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/flate.rs:98:18 [INFO] [stderr] | [INFO] [stderr] 98 | for i in 1..(MAXBITS + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `1..=MAXBITS` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/flate.rs:133:20 [INFO] [stderr] | [INFO] [stderr] 133 | for len in 1..(MAXBITS + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `1..=MAXBITS` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/flate.rs:216:32 [INFO] [stderr] | [INFO] [stderr] 216 | self.output.extend(self.block[from..(from + n)].iter().map(|b| *b)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.block[from..(from + n)].iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/flate.rs:240:34 [INFO] [stderr] | [INFO] [stderr] 240 | try!(self.r.push_exactly(len as u64, &mut self.block)); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(len)` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/lz4.rs:186:9 [INFO] [stderr] | [INFO] [stderr] 186 | (self.input[pos as usize + 3] as u32) << 24 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.input[pos as usize + 3])` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/lz4.rs:187:15 [INFO] [stderr] | [INFO] [stderr] 187 | | (self.input[pos as usize + 2] as u32) << 16 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.input[pos as usize + 2])` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/lz4.rs:188:15 [INFO] [stderr] | [INFO] [stderr] 188 | | (self.input[pos as usize + 1] as u32) << 8 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.input[pos as usize + 1])` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/lz4.rs:189:15 [INFO] [stderr] | [INFO] [stderr] 189 | | (self.input[pos as usize] as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.input[pos 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/lz4.rs:254:29 [INFO] [stderr] | [INFO] [stderr] 254 | limit = limit << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `limit <<= 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] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/lz4.rs:367:9 [INFO] [stderr] | [INFO] [stderr] 367 | try!(self.r.read(&mut bits[..2])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/lz4.rs:531:13 [INFO] [stderr] | [INFO] [stderr] 531 | try!(self.w.write(&self.tmp)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/lz4.rs:534:13 [INFO] [stderr] | [INFO] [stderr] 534 | try!(self.w.write(&self.buf)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lz4.rs:575:15 [INFO] [stderr] | [INFO] [stderr] 575 | while buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!buf.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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lz4.rs:577:29 [INFO] [stderr] | [INFO] [stderr] 577 | self.buf.extend(buf[..amt].iter().map(|b| *b)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `buf[..amt].iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lz4.rs:589:12 [INFO] [stderr] | [INFO] [stderr] 589 | if self.buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.buf.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: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lz4.rs:677:9 [INFO] [stderr] | [INFO] [stderr] 677 | / loop { [INFO] [stderr] 678 | | match d.read_u8() { [INFO] [stderr] 679 | | Ok(b) => out.push(b), [INFO] [stderr] 680 | | Err(..) => break [INFO] [stderr] 681 | | } [INFO] [stderr] 682 | | } [INFO] [stderr] | |_________^ help: try: `while let Ok(b) = d.read_u8() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/lz4.rs:684:17 [INFO] [stderr] | [INFO] [stderr] 684 | assert!(&out[..] == &include_bytes!("data/test.txt")[..]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 684 | assert!(out[..] == include_bytes!("data/test.txt")[..]); [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/lz4.rs:694:35 [INFO] [stderr] | [INFO] [stderr] 694 | match d.read(&mut buf[..(1 + rand::random::() % 40)]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `..=rand::random::() % 40` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lz4.rs:697:32 [INFO] [stderr] | [INFO] [stderr] 697 | out.extend(buf[..n].iter().map(|b| *b)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `buf[..n].iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/lz4.rs:702:17 [INFO] [stderr] | [INFO] [stderr] 702 | assert!(&out[..] == &include_bytes!("data/test.txt")[..]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 702 | assert!(out[..] == include_bytes!("data/test.txt")[..]); [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/lz4.rs:707:9 [INFO] [stderr] | [INFO] [stderr] 707 | e.write(bytes).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/zlib.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | if ((cmf as u16) * 256 + (flg as u16)) % 31 != 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(cmf)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/zlib.rs:78:34 [INFO] [stderr] | [INFO] [stderr] 78 | if ((cmf as u16) * 256 + (flg as u16)) % 31 != 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(flg)` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/entropy/ari/apm.rs:47:20 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn to_flat(&self) -> FlatProbability { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/entropy/ari/apm.rs:54:20 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn to_wide(&self) -> WideProbability { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/apm.rs:56:17 [INFO] [stderr] | [INFO] [stderr] 56 | let p = (self.to_flat() as f32) / (FLAT_TOTAL as f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(self.to_flat())` [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 i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/apm.rs:58:23 [INFO] [stderr] | [INFO] [stderr] 58 | let wp = (d * WIDE_OFFSET as f32).to_i16().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f32::from(WIDE_OFFSET)` [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 i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/apm.rs:72:17 [INFO] [stderr] | [INFO] [stderr] 72 | let d = (wp as f32) / (WIDE_OFFSET as f32); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f32::from(wp)` [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 i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/apm.rs:72:31 [INFO] [stderr] | [INFO] [stderr] 72 | let d = (wp as f32) / (WIDE_OFFSET as f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(WIDE_OFFSET)` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/apm.rs:105:18 [INFO] [stderr] | [INFO] [stderr] 105 | let fp = self.to_flat() as Border; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.to_flat())` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/apm.rs:116:18 [INFO] [stderr] | [INFO] [stderr] 116 | let fp = self.to_flat() as Border; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.to_flat())` [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: you should consider adding a `Default` implementation for `entropy::ari::apm::Gate` [INFO] [stderr] --> src/entropy/ari/apm.rs:141:5 [INFO] [stderr] | [INFO] [stderr] 141 | / pub fn new() -> Gate { [INFO] [stderr] 142 | | let mut g = Gate { [INFO] [stderr] 143 | | map: [Bit::new_equal(); PORTAL_BINS], [INFO] [stderr] 144 | | }; [INFO] [stderr] ... | [INFO] [stderr] 150 | | g [INFO] [stderr] 151 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 139 | impl Default for entropy::ari::apm::Gate { [INFO] [stderr] 140 | fn default() -> Self { [INFO] [stderr] 141 | Self::new() [INFO] [stderr] 142 | } [INFO] [stderr] 143 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/apm.rs:147:28 [INFO] [stderr] | [INFO] [stderr] 147 | let wp = (rp * (WIDE_OFFSET as f32)).to_i16().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(WIDE_OFFSET)` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/entropy/ari/apm.rs:155:29 [INFO] [stderr] | [INFO] [stderr] 155 | pub fn pass(&self, bit: &Bit) -> (Bit, BinCoords) { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `Bit` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `index` [INFO] [stderr] --> src/entropy/ari/apm.rs:166:22 [INFO] [stderr] | [INFO] [stderr] 166 | self.map[index+0].to_flat() as usize, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `index` [INFO] [stderr] --> src/entropy/ari/apm.rs:178:18 [INFO] [stderr] | [INFO] [stderr] 178 | self.map[index+0].update_zero(rate, bias); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `index` [INFO] [stderr] --> src/entropy/ari/apm.rs:185:18 [INFO] [stderr] | [INFO] [stderr] 185 | self.map[index+0].update_one(rate, bias); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/bin.rs:40:19 [INFO] [stderr] | [INFO] [stderr] 40 | zero: (zero_percent as Border)*threshold/100, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(zero_percent)` [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: redundant closure found [INFO] [stderr] --> src/entropy/ari/table.rs:38:56 [INFO] [stderr] | [INFO] [stderr] 38 | let freq: Vec = (0..num_values).map(|i| fn_init(i)).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove closure as shown: `fn_init` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/table.rs:39:60 [INFO] [stderr] | [INFO] [stderr] 39 | let total = freq.iter().fold(0 as Border, |u,&f| u+(f as Border)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(f)` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/table.rs:89:27 [INFO] [stderr] | [INFO] [stderr] 89 | self.total += *freq as Border; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(*freq)` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/entropy/ari/table.rs:94:5 [INFO] [stderr] | [INFO] [stderr] 94 | / pub fn get_frequencies<'a>(&'a self) -> &'a [Frequency] { [INFO] [stderr] 95 | | &self.table[..] [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/table.rs:101:62 [INFO] [stderr] | [INFO] [stderr] 101 | let lo = self.table[..value].iter().fold(0, |u,&f| u+(f as Border)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(f)` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/table.rs:102:19 [INFO] [stderr] | [INFO] [stderr] 102 | (lo, lo + (self.table[value] as Border)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.table[value])` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/table.rs:112:22 [INFO] [stderr] | [INFO] [stderr] 112 | while {hi=lo+(self.table[value] as Border); hi} <= offset { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.table[value])` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/table.rs:165:33 [INFO] [stderr] | [INFO] [stderr] 165 | (self.w_first * (self.first.get_frequencies()[value] as Border) + [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.first.get_frequencies()[value])` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/table.rs:166:33 [INFO] [stderr] | [INFO] [stderr] 166 | self.w_second * (self.second.get_frequencies()[value] as Border)) >> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.second.get_frequencies()[value])` [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/entropy/ari/test.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | e.write(bytes).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/entropy/ari/test.rs:56:9 [INFO] [stderr] | [INFO] [stderr] 56 | e.write(bytes1).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/entropy/ari/test.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | e.write(bytes2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/mod.rs:201:65 [INFO] [stderr] | [INFO] [stderr] 201 | out[..shift].iter().fold(0 as Border, |u,&b| (u<<8)+(b as Border))); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(b)` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/entropy/ari/mod.rs:274:42 [INFO] [stderr] | [INFO] [stderr] 274 | self.code = (self.code<<8) + (b as Border); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(b)` [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: length comparison to zero [INFO] [stderr] --> src/rle.rs:83:29 [INFO] [stderr] | [INFO] [stderr] 83 | if ! self.in_run && buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!buf.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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/rle.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | try!(self.w.write(&[self.byte])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/rle.rs:108:17 [INFO] [stderr] | [INFO] [stderr] 108 | reps_encode = reps_encode >> 7; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reps_encode >>= 7` [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: manual implementation of an assign operation [INFO] [stderr] --> src/rle.rs:111:21 [INFO] [stderr] | [INFO] [stderr] 111 | buf[index] = buf[index] | 0b1000_0000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `buf[index] |= 0b1000_0000` [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/rle.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | try!(self.w.write(&buf[..(index + 1)])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/rle.rs:118:36 [INFO] [stderr] | [INFO] [stderr] 118 | try!(self.w.write(&buf[..(index + 1)])); [INFO] [stderr] | ^^^^^^^^^^^^^ help: use: `..=index` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/rle.rs:140:15 [INFO] [stderr] | [INFO] [stderr] 140 | fn to_run(&mut self) -> Run { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/rle.rs:142:21 [INFO] [stderr] | [INFO] [stderr] 142 | reps | (((byte & 0b0111_1111) as u64) << (i as u32 * 7)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(byte & 0b0111_1111)` [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: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/rle.rs:195:16 [INFO] [stderr] | [INFO] [stderr] 195 | if let None = self.run { [INFO] [stderr] | _________- ^^^^ [INFO] [stderr] 196 | | try!(self.read_run()); [INFO] [stderr] 197 | | } [INFO] [stderr] | |_________- help: try this: `if self.run.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: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/rle.rs:248:16 [INFO] [stderr] | [INFO] [stderr] 248 | if let None = self.run { [INFO] [stderr] | _________- ^^^^ [INFO] [stderr] 249 | | self.run = match self.state { [INFO] [stderr] 250 | | DecoderState::Clean => None, [INFO] [stderr] 251 | | DecoderState::Single(byte) => Some(Run { byte: byte, reps: 1 }), [INFO] [stderr] ... | [INFO] [stderr] 255 | | self.state = DecoderState::Clean; [INFO] [stderr] 256 | | } [INFO] [stderr] | |_________- help: try this: `if self.run.is_none()` [INFO] [stderr] | [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: the operation is ineffective. Consider reducing it to `128` [INFO] [stderr] --> src/rle.rs:326:38 [INFO] [stderr] | [INFO] [stderr] 326 | test_encode(&[0, 0], &[0, 0, 2 - 2 + 128]); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `-` [INFO] [stderr] --> src/rle.rs:326:38 [INFO] [stderr] | [INFO] [stderr] 326 | test_encode(&[0, 0], &[0, 0, 2 - 2 + 128]); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/rle.rs:334:16 [INFO] [stderr] | [INFO] [stderr] 334 | data = [1, 3, 4, 4].iter().map(|&x| x).chain(repeat(100).take(2 + 52 + 128)).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `[1, 3, 4, 4].iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `128` [INFO] [stderr] --> src/rle.rs:335:46 [INFO] [stderr] | [INFO] [stderr] 335 | test_encode(&data[..], &[1, 3, 4, 4, 0 + 128, 100, 100, 52, 1 + 128]); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `128` [INFO] [stderr] --> src/rle.rs:344:29 [INFO] [stderr] | [INFO] [stderr] 344 | test_decode(&[0, 0, 2 - 2 + 128], &[0, 0]); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `-` [INFO] [stderr] --> src/rle.rs:344:29 [INFO] [stderr] | [INFO] [stderr] 344 | test_decode(&[0, 0, 2 - 2 + 128], &[0, 0]); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/rle.rs:349:20 [INFO] [stderr] | [INFO] [stderr] 349 | let data = [1, 3, 4, 4].iter().map(|&x| x).chain(repeat(100).take(2 + 52 + 128)).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `[1, 3, 4, 4].iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `128` [INFO] [stderr] --> src/rle.rs:351:35 [INFO] [stderr] | [INFO] [stderr] 351 | test_decode(&[1, 3, 4, 4, 0 + 128, 100, 100, 52, 1 + 128], &data[..]); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] error: aborting due to 12 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `compress`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "a06a9d96511dcdf7e7f8275f556f88472c7dd948a4211dcff21c5c4e191f1012"` [INFO] running `"docker" "rm" "-f" "a06a9d96511dcdf7e7f8275f556f88472c7dd948a4211dcff21c5c4e191f1012"` [INFO] [stdout] a06a9d96511dcdf7e7f8275f556f88472c7dd948a4211dcff21c5c4e191f1012