[INFO] crate binascii 0.1.2 is already in cache [INFO] extracting crate binascii 0.1.2 into work/ex/clippy-test-run/sources/stable/reg/binascii/0.1.2 [INFO] extracting crate binascii 0.1.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/binascii/0.1.2 [INFO] validating manifest of binascii-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 binascii-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 binascii-0.1.2 [INFO] finished frobbing binascii-0.1.2 [INFO] frobbed toml for binascii-0.1.2 written to work/ex/clippy-test-run/sources/stable/reg/binascii/0.1.2/Cargo.toml [INFO] started frobbing binascii-0.1.2 [INFO] finished frobbing binascii-0.1.2 [INFO] frobbed toml for binascii-0.1.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/binascii/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 binascii-0.1.2 against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/binascii/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 -Dclippy::into_iter_on_array" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] e327009314068f62eb5cd9eb2786d7a4478d8d31e90dd2186c89928df5a28202 [INFO] running `"docker" "start" "-a" "e327009314068f62eb5cd9eb2786d7a4478d8d31e90dd2186c89928df5a28202"` [INFO] [stderr] Checking binascii v0.1.2 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | return Ok(&mut output[0..input.len()/2]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(&mut output[0..input.len()/2])` [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/lib.rs:114:5 [INFO] [stderr] | [INFO] [stderr] 114 | return Ok(&mut output[0..input.len() * 2]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(&mut output[0..input.len() * 2])` [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/lib.rs:157:5 [INFO] [stderr] | [INFO] [stderr] 157 | return Result::Ok(&mut output[..total_len]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Result::Ok(&mut output[..total_len])` [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/lib.rs:224:5 [INFO] [stderr] | [INFO] [stderr] 224 | return Ok(&mut output[..output_len]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(&mut output[..output_len])` [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/lib.rs:274:5 [INFO] [stderr] | [INFO] [stderr] 274 | return Ok(&mut output[0..required_len]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(&mut output[0..required_len])` [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/lib.rs:264:52 [INFO] [stderr] | [INFO] [stderr] 264 | let di = (raw_num >> (18 - (6 * i))) & 0b111111; [INFO] [stderr] | ^^^^^^^^ help: consider: `0b11_1111` [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: unneeded return statement [INFO] [stderr] --> src/lib.rs:332:5 [INFO] [stderr] | [INFO] [stderr] 332 | return Ok(&mut output[0..output_length]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(&mut output[0..output_length])` [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: the operation is ineffective. Consider reducing it to `idx * 2` [INFO] [stderr] --> src/lib.rs:110:16 [INFO] [stderr] | [INFO] [stderr] 110 | output[idx * 2 + 0] = DIGITS[(byte >> 4) & 0x0f]; [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 `byte` [INFO] [stderr] --> src/lib.rs:111:38 [INFO] [stderr] | [INFO] [stderr] 111 | output[idx * 2 + 1] = DIGITS[(byte >> 0) & 0x0f]; [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: an inclusive range would be more readable [INFO] [stderr] --> src/lib.rs:138:22 [INFO] [stderr] | [INFO] [stderr] 138 | for block_idx in 0..(1 + input.len() / 5) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=input.len() / 5` [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: the loop variable `i` is used to index `block` [INFO] [stderr] --> src/lib.rs:143:18 [INFO] [stderr] | [INFO] [stderr] 143 | for i in 0..block.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 143 | for (i, ) in block.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:144:20 [INFO] [stderr] | [INFO] [stderr] 144 | num |= (block[i] as u64) << (64 - 8 - i*8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(block[i])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the loop variable `idx` is only used to index `output`. [INFO] [stderr] --> src/lib.rs:153:16 [INFO] [stderr] | [INFO] [stderr] 153 | for idx in data_len + 1..total_len { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 153 | for in output.iter_mut().take(total_len).skip(data_len + 1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/lib.rs:177:22 [INFO] [stderr] | [INFO] [stderr] 177 | for block_idx in 0..(1 + input.len() / 8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=input.len() / 8` [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: the loop variable `idx` is used to index `block` [INFO] [stderr] --> src/lib.rs:182:20 [INFO] [stderr] | [INFO] [stderr] 182 | for idx in 0..block.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 182 | for (idx, ) in block.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:210:20 [INFO] [stderr] | [INFO] [stderr] 210 | num |= (c_val as u64) << (64 - 5 - idx * 5); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(c_val)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/lib.rs:249:22 [INFO] [stderr] | [INFO] [stderr] 249 | for block_idx in 0..(input.len() / 3 + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=input.len() / 3` [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: length comparison to zero [INFO] [stderr] --> src/lib.rs:253:12 [INFO] [stderr] | [INFO] [stderr] 253 | if block.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `block.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: the loop variable `i` is used to index `block` [INFO] [stderr] --> src/lib.rs:259:18 [INFO] [stderr] | [INFO] [stderr] 259 | for i in 0..block.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 259 | for (i, ) in block.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:260:24 [INFO] [stderr] | [INFO] [stderr] 260 | raw_num |= (block[i] as u32) << (16 - (i * 8)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(block[i])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `block` [INFO] [stderr] --> src/lib.rs:300:18 [INFO] [stderr] | [INFO] [stderr] 300 | for i in 0..4 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 300 | for (i, ) in block.iter().enumerate().take(4) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:324:20 [INFO] [stderr] | [INFO] [stderr] 324 | num |= (c_val as u32) << (26 - 6 * i); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(c_val)` [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: unneeded return statement [INFO] [stderr] --> src/lib.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | return Ok(&mut output[0..input.len()/2]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(&mut output[0..input.len()/2])` [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/lib.rs:114:5 [INFO] [stderr] | [INFO] [stderr] 114 | return Ok(&mut output[0..input.len() * 2]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(&mut output[0..input.len() * 2])` [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/lib.rs:157:5 [INFO] [stderr] | [INFO] [stderr] 157 | return Result::Ok(&mut output[..total_len]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Result::Ok(&mut output[..total_len])` [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/lib.rs:224:5 [INFO] [stderr] | [INFO] [stderr] 224 | return Ok(&mut output[..output_len]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(&mut output[..output_len])` [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/lib.rs:274:5 [INFO] [stderr] | [INFO] [stderr] 274 | return Ok(&mut output[0..required_len]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(&mut output[0..required_len])` [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/lib.rs:264:52 [INFO] [stderr] | [INFO] [stderr] 264 | let di = (raw_num >> (18 - (6 * i))) & 0b111111; [INFO] [stderr] | ^^^^^^^^ help: consider: `0b11_1111` [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: unneeded return statement [INFO] [stderr] --> src/lib.rs:332:5 [INFO] [stderr] | [INFO] [stderr] 332 | return Ok(&mut output[0..output_length]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(&mut output[0..output_length])` [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: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/tests.rs:7:17 [INFO] [stderr] | [INFO] [stderr] 7 | let input = "1f2F3d4d".as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"1f2F3d4d"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/tests.rs:13:21 [INFO] [stderr] | [INFO] [stderr] 13 | assert!(hex2bin("z1".as_bytes(), &mut output_buffer).is_err()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"z1"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/tests.rs:16:21 [INFO] [stderr] | [INFO] [stderr] 16 | assert!(hex2bin("a1a2a3a4".as_bytes(), &mut output_buffer[0..2]).is_err()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"a1a2a3a4"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/tests.rs:19:21 [INFO] [stderr] | [INFO] [stderr] 19 | assert!(hex2bin("a".as_bytes(), &mut output_buffer).is_err()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"a"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/tests.rs:27:67 [INFO] [stderr] | [INFO] [stderr] 27 | assert_eq!(bin2hex(&[0x1f, 0xf2], &mut buffer).ok().unwrap(), "1ff2".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"1ff2"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `idx * 2` [INFO] [stderr] --> src/lib.rs:110:16 [INFO] [stderr] | [INFO] [stderr] 110 | output[idx * 2 + 0] = DIGITS[(byte >> 4) & 0x0f]; [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 `byte` [INFO] [stderr] --> src/lib.rs:111:38 [INFO] [stderr] | [INFO] [stderr] 111 | output[idx * 2 + 1] = DIGITS[(byte >> 0) & 0x0f]; [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: an inclusive range would be more readable [INFO] [stderr] --> src/lib.rs:138:22 [INFO] [stderr] | [INFO] [stderr] 138 | for block_idx in 0..(1 + input.len() / 5) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=input.len() / 5` [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: the loop variable `i` is used to index `block` [INFO] [stderr] --> src/lib.rs:143:18 [INFO] [stderr] | [INFO] [stderr] 143 | for i in 0..block.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 143 | for (i, ) in block.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:144:20 [INFO] [stderr] | [INFO] [stderr] 144 | num |= (block[i] as u64) << (64 - 8 - i*8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(block[i])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the loop variable `idx` is only used to index `output`. [INFO] [stderr] --> src/lib.rs:153:16 [INFO] [stderr] | [INFO] [stderr] 153 | for idx in data_len + 1..total_len { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 153 | for in output.iter_mut().take(total_len).skip(data_len + 1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/lib.rs:177:22 [INFO] [stderr] | [INFO] [stderr] 177 | for block_idx in 0..(1 + input.len() / 8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=input.len() / 8` [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: the loop variable `idx` is used to index `block` [INFO] [stderr] --> src/lib.rs:182:20 [INFO] [stderr] | [INFO] [stderr] 182 | for idx in 0..block.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 182 | for (idx, ) in block.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:210:20 [INFO] [stderr] | [INFO] [stderr] 210 | num |= (c_val as u64) << (64 - 5 - idx * 5); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(c_val)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/lib.rs:249:22 [INFO] [stderr] | [INFO] [stderr] 249 | for block_idx in 0..(input.len() / 3 + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=input.len() / 3` [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: length comparison to zero [INFO] [stderr] --> src/lib.rs:253:12 [INFO] [stderr] | [INFO] [stderr] 253 | if block.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `block.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: the loop variable `i` is used to index `block` [INFO] [stderr] --> src/lib.rs:259:18 [INFO] [stderr] | [INFO] [stderr] 259 | for i in 0..block.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 259 | for (i, ) in block.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:260:24 [INFO] [stderr] | [INFO] [stderr] 260 | raw_num |= (block[i] as u32) << (16 - (i * 8)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(block[i])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `block` [INFO] [stderr] --> src/lib.rs:300:18 [INFO] [stderr] | [INFO] [stderr] 300 | for i in 0..4 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 300 | for (i, ) in block.iter().enumerate().take(4) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:324:20 [INFO] [stderr] | [INFO] [stderr] 324 | num |= (c_val as u32) << (26 - 6 * i); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(c_val)` [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] Finished dev [unoptimized + debuginfo] target(s) in 1.02s [INFO] running `"docker" "inspect" "e327009314068f62eb5cd9eb2786d7a4478d8d31e90dd2186c89928df5a28202"` [INFO] running `"docker" "rm" "-f" "e327009314068f62eb5cd9eb2786d7a4478d8d31e90dd2186c89928df5a28202"` [INFO] [stdout] e327009314068f62eb5cd9eb2786d7a4478d8d31e90dd2186c89928df5a28202