[INFO] crate twox-hash 1.1.1 is already in cache [INFO] extracting crate twox-hash 1.1.1 into work/ex/clippy-test-run/sources/stable/reg/twox-hash/1.1.1 [INFO] extracting crate twox-hash 1.1.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/twox-hash/1.1.1 [INFO] validating manifest of twox-hash-1.1.1 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 twox-hash-1.1.1 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 twox-hash-1.1.1 [INFO] finished frobbing twox-hash-1.1.1 [INFO] frobbed toml for twox-hash-1.1.1 written to work/ex/clippy-test-run/sources/stable/reg/twox-hash/1.1.1/Cargo.toml [INFO] started frobbing twox-hash-1.1.1 [INFO] finished frobbing twox-hash-1.1.1 [INFO] frobbed toml for twox-hash-1.1.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/twox-hash/1.1.1/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 twox-hash-1.1.1 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/twox-hash/1.1.1:/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] bed1793314a9f13388ad668b3fac75ea5fa0397061c42c12f8ccf23f24cca6f7 [INFO] running `"docker" "start" "-a" "bed1793314a9f13388ad668b3fac75ea5fa0397061c42c12f8ccf23f24cca6f7"` [INFO] [stderr] Checking twox-hash v1.1.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/thirty_two.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | seed: seed, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `seed` [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/lib.rs:159:13 [INFO] [stderr] | [INFO] [stderr] 159 | seed: seed, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `seed` [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/thirty_two.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | seed: seed, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `seed` [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/lib.rs:159:13 [INFO] [stderr] | [INFO] [stderr] 159 | seed: seed, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `seed` [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: long literal lacking separators [INFO] [stderr] --> src/thirty_two.rs:10:22 [INFO] [stderr] | [INFO] [stderr] 10 | const PRIME_1: u32 = 2654435761; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_654_435_761` [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/thirty_two.rs:11:22 [INFO] [stderr] | [INFO] [stderr] 11 | const PRIME_2: u32 = 2246822519; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_246_822_519` [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/thirty_two.rs:12:22 [INFO] [stderr] | [INFO] [stderr] 12 | const PRIME_3: u32 = 3266489917; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `3_266_489_917` [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/thirty_two.rs:13:23 [INFO] [stderr] | [INFO] [stderr] 13 | const PRIME_4: u32 = 668265263; [INFO] [stderr] | ^^^^^^^^^ help: consider: `668_265_263` [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/thirty_two.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | const PRIME_5: u32 = 374761393; [INFO] [stderr] | ^^^^^^^^^ help: consider: `374_761_393` [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/lib.rs:42:22 [INFO] [stderr] | [INFO] [stderr] 42 | const PRIME_1: u64 = 11400714785074694791; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `11_400_714_785_074_694_791` [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/lib.rs:43:22 [INFO] [stderr] | [INFO] [stderr] 43 | const PRIME_2: u64 = 14029467366897019727; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `14_029_467_366_897_019_727` [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/lib.rs:44:22 [INFO] [stderr] | [INFO] [stderr] 44 | const PRIME_3: u64 = 1609587929392839161; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `1_609_587_929_392_839_161` [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/lib.rs:45:22 [INFO] [stderr] | [INFO] [stderr] 45 | const PRIME_4: u64 = 9650029242287828579; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `9_650_029_242_287_828_579` [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/lib.rs:46:22 [INFO] [stderr] | [INFO] [stderr] 46 | const PRIME_5: u64 = 2870177450012600261; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `2_870_177_450_012_600_261` [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] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const u32`) [INFO] [stderr] --> src/number_streams.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | let start = mine.as_ptr() as *const $number_type; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 74 | number_stream!(U32FromBytes, u32, U32_BYTES); [INFO] [stderr] | --------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/number_streams.rs:38:28 [INFO] [stderr] | [INFO] [stderr] 38 | let end = unsafe { start.offset(total_numbers as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `start.add(total_numbers)` [INFO] [stderr] ... [INFO] [stderr] 74 | number_stream!(U32FromBytes, u32, U32_BYTES); [INFO] [stderr] | --------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const u64`) [INFO] [stderr] --> src/number_streams.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | let start = mine.as_ptr() as *const $number_type; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 75 | number_stream!(U64FromBytes, u64, U64_BYTES); [INFO] [stderr] | --------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/number_streams.rs:38:28 [INFO] [stderr] | [INFO] [stderr] 38 | let end = unsafe { start.offset(total_numbers as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `start.add(total_numbers)` [INFO] [stderr] ... [INFO] [stderr] 75 | number_stream!(U64FromBytes, u64, U64_BYTES); [INFO] [stderr] | --------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/thirty_two.rs:141:28 [INFO] [stderr] | [INFO] [stderr] 141 | let tail = self.buffer.as_mut_ptr().offset(self.buffer_usage as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buffer.as_mut_ptr().add(self.buffer_usage)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/thirty_two.rs:155:28 [INFO] [stderr] | [INFO] [stderr] 155 | let tail = self.buffer.as_mut_ptr().offset(self.buffer_usage as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buffer.as_mut_ptr().add(self.buffer_usage)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/thirty_two.rs:172:12 [INFO] [stderr] | [INFO] [stderr] 172 | if bytes.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!bytes.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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/thirty_two.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | / let mut hash; [INFO] [stderr] 182 | | [INFO] [stderr] 183 | | // We have processed at least one full chunk [INFO] [stderr] 184 | | if self.total_len >= CHUNK_SIZE as u32 { [INFO] [stderr] ... | [INFO] [stderr] 187 | | hash = self.seed.wrapping_add(PRIME_5); [INFO] [stderr] 188 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let hash = if self.total_len >= CHUNK_SIZE as u32 { self.core.finish() } else { self.seed.wrapping_add(PRIME_5) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/thirty_two.rs:203:22 [INFO] [stderr] | [INFO] [stderr] 203 | let k1 = (*buffered_u8 as u32).wrapping_mul(PRIME_5); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*buffered_u8)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/thirty_two.rs:216:9 [INFO] [stderr] | [INFO] [stderr] 216 | hash as u64 [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(hash)` [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: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/lib.rs:183:28 [INFO] [stderr] | [INFO] [stderr] 183 | let tail = self.buffer.as_mut_ptr().offset(self.buffer_usage as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buffer.as_mut_ptr().add(self.buffer_usage)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/lib.rs:197:28 [INFO] [stderr] | [INFO] [stderr] 197 | let tail = self.buffer.as_mut_ptr().offset(self.buffer_usage as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buffer.as_mut_ptr().add(self.buffer_usage)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:214:12 [INFO] [stderr] | [INFO] [stderr] 214 | if bytes.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!bytes.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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/lib.rs:223:9 [INFO] [stderr] | [INFO] [stderr] 223 | / let mut hash; [INFO] [stderr] 224 | | [INFO] [stderr] 225 | | // We have processed at least one full chunk [INFO] [stderr] 226 | | if self.total_len >= CHUNK_SIZE as u64 { [INFO] [stderr] ... | [INFO] [stderr] 229 | | hash = self.seed.wrapping_add(PRIME_5); [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let hash = if self.total_len >= CHUNK_SIZE as u64 { self.core.finish() } else { self.seed.wrapping_add(PRIME_5) };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:250:22 [INFO] [stderr] | [INFO] [stderr] 250 | let k1 = (k1 as u64).wrapping_mul(PRIME_1); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(k1)` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:258:22 [INFO] [stderr] | [INFO] [stderr] 258 | let k1 = (*buffered_u8 as u64).wrapping_mul(PRIME_5); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(*buffered_u8)` [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: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `twox-hash`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/thirty_two.rs:10:22 [INFO] [stderr] | [INFO] [stderr] 10 | const PRIME_1: u32 = 2654435761; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_654_435_761` [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/thirty_two.rs:11:22 [INFO] [stderr] | [INFO] [stderr] 11 | const PRIME_2: u32 = 2246822519; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_246_822_519` [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/thirty_two.rs:12:22 [INFO] [stderr] | [INFO] [stderr] 12 | const PRIME_3: u32 = 3266489917; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `3_266_489_917` [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/thirty_two.rs:13:23 [INFO] [stderr] | [INFO] [stderr] 13 | const PRIME_4: u32 = 668265263; [INFO] [stderr] | ^^^^^^^^^ help: consider: `668_265_263` [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/thirty_two.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | const PRIME_5: u32 = 374761393; [INFO] [stderr] | ^^^^^^^^^ help: consider: `374_761_393` [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/thirty_two.rs:265:37 [INFO] [stderr] | [INFO] [stderr] 265 | assert_eq!(hasher.finish(), 0x02cc5d05); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x02cc_5d05` [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/thirty_two.rs:272:37 [INFO] [stderr] | [INFO] [stderr] 272 | assert_eq!(hasher.finish(), 0xe0fe705f); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xe0fe_705f` [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/thirty_two.rs:279:37 [INFO] [stderr] | [INFO] [stderr] 279 | assert_eq!(hasher.finish(), 0x9e5e7e93); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x9e5e_7e93` [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/thirty_two.rs:287:37 [INFO] [stderr] | [INFO] [stderr] 287 | assert_eq!(hasher.finish(), 0x7f89ba44); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x7f89_ba44` [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/thirty_two.rs:292:44 [INFO] [stderr] | [INFO] [stderr] 292 | let mut hasher = XxHash::with_seed(0x42c91977); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x42c9_1977` [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/thirty_two.rs:294:37 [INFO] [stderr] | [INFO] [stderr] 294 | assert_eq!(hasher.finish(), 0xd6bf8459); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xd6bf_8459` [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/thirty_two.rs:300:44 [INFO] [stderr] | [INFO] [stderr] 300 | let mut hasher = XxHash::with_seed(0x42c91977); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x42c9_1977` [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/thirty_two.rs:302:37 [INFO] [stderr] | [INFO] [stderr] 302 | assert_eq!(hasher.finish(), 0x6d2f6c17); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x6d2f_6c17` [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/lib.rs:42:22 [INFO] [stderr] | [INFO] [stderr] 42 | const PRIME_1: u64 = 11400714785074694791; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `11_400_714_785_074_694_791` [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/lib.rs:43:22 [INFO] [stderr] | [INFO] [stderr] 43 | const PRIME_2: u64 = 14029467366897019727; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `14_029_467_366_897_019_727` [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/lib.rs:44:22 [INFO] [stderr] | [INFO] [stderr] 44 | const PRIME_3: u64 = 1609587929392839161; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `1_609_587_929_392_839_161` [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/lib.rs:45:22 [INFO] [stderr] | [INFO] [stderr] 45 | const PRIME_4: u64 = 9650029242287828579; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `9_650_029_242_287_828_579` [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/lib.rs:46:22 [INFO] [stderr] | [INFO] [stderr] 46 | const PRIME_5: u64 = 2870177450012600261; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `2_870_177_450_012_600_261` [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/lib.rs:320:37 [INFO] [stderr] | [INFO] [stderr] 320 | assert_eq!(hasher.finish(), 0xef46db3751d8e999); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xef46_db37_51d8_e999` [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/lib.rs:327:37 [INFO] [stderr] | [INFO] [stderr] 327 | assert_eq!(hasher.finish(), 0x0a9edecebeb03ae4); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0a9e_dece_beb0_3ae4` [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/lib.rs:334:37 [INFO] [stderr] | [INFO] [stderr] 334 | assert_eq!(hasher.finish(), 0x7b06c531ea43e89f); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x7b06_c531_ea43_e89f` [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/lib.rs:342:37 [INFO] [stderr] | [INFO] [stderr] 342 | assert_eq!(hasher.finish(), 0x6ac1e58032166597); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x6ac1_e580_3216_6597` [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/lib.rs:347:44 [INFO] [stderr] | [INFO] [stderr] 347 | let mut hasher = XxHash::with_seed(0xae0543311b702d91); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xae05_4331_1b70_2d91` [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/lib.rs:349:37 [INFO] [stderr] | [INFO] [stderr] 349 | assert_eq!(hasher.finish(), 0x4b6a04fcdf7a4672); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x4b6a_04fc_df7a_4672` [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/lib.rs:355:44 [INFO] [stderr] | [INFO] [stderr] 355 | let mut hasher = XxHash::with_seed(0xae0543311b702d91); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xae05_4331_1b70_2d91` [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/lib.rs:357:37 [INFO] [stderr] | [INFO] [stderr] 357 | assert_eq!(hasher.finish(), 0x567e355e0682e1f1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x567e_355e_0682_e1f1` [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] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const u32`) [INFO] [stderr] --> src/number_streams.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | let start = mine.as_ptr() as *const $number_type; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 74 | number_stream!(U32FromBytes, u32, U32_BYTES); [INFO] [stderr] | --------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/number_streams.rs:38:28 [INFO] [stderr] | [INFO] [stderr] 38 | let end = unsafe { start.offset(total_numbers as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `start.add(total_numbers)` [INFO] [stderr] ... [INFO] [stderr] 74 | number_stream!(U32FromBytes, u32, U32_BYTES); [INFO] [stderr] | --------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const u64`) [INFO] [stderr] --> src/number_streams.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | let start = mine.as_ptr() as *const $number_type; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 75 | number_stream!(U64FromBytes, u64, U64_BYTES); [INFO] [stderr] | --------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/number_streams.rs:38:28 [INFO] [stderr] | [INFO] [stderr] 38 | let end = unsafe { start.offset(total_numbers as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `start.add(total_numbers)` [INFO] [stderr] ... [INFO] [stderr] 75 | number_stream!(U64FromBytes, u64, U64_BYTES); [INFO] [stderr] | --------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/thirty_two.rs:141:28 [INFO] [stderr] | [INFO] [stderr] 141 | let tail = self.buffer.as_mut_ptr().offset(self.buffer_usage as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buffer.as_mut_ptr().add(self.buffer_usage)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/thirty_two.rs:155:28 [INFO] [stderr] | [INFO] [stderr] 155 | let tail = self.buffer.as_mut_ptr().offset(self.buffer_usage as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buffer.as_mut_ptr().add(self.buffer_usage)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/thirty_two.rs:172:12 [INFO] [stderr] | [INFO] [stderr] 172 | if bytes.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!bytes.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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/thirty_two.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | / let mut hash; [INFO] [stderr] 182 | | [INFO] [stderr] 183 | | // We have processed at least one full chunk [INFO] [stderr] 184 | | if self.total_len >= CHUNK_SIZE as u32 { [INFO] [stderr] ... | [INFO] [stderr] 187 | | hash = self.seed.wrapping_add(PRIME_5); [INFO] [stderr] 188 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let hash = if self.total_len >= CHUNK_SIZE as u32 { self.core.finish() } else { self.seed.wrapping_add(PRIME_5) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/thirty_two.rs:203:22 [INFO] [stderr] | [INFO] [stderr] 203 | let k1 = (*buffered_u8 as u32).wrapping_mul(PRIME_5); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*buffered_u8)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/thirty_two.rs:216:9 [INFO] [stderr] | [INFO] [stderr] 216 | hash as u64 [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(hash)` [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: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/lib.rs:183:28 [INFO] [stderr] | [INFO] [stderr] 183 | let tail = self.buffer.as_mut_ptr().offset(self.buffer_usage as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buffer.as_mut_ptr().add(self.buffer_usage)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/lib.rs:197:28 [INFO] [stderr] | [INFO] [stderr] 197 | let tail = self.buffer.as_mut_ptr().offset(self.buffer_usage as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buffer.as_mut_ptr().add(self.buffer_usage)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:214:12 [INFO] [stderr] | [INFO] [stderr] 214 | if bytes.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!bytes.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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/lib.rs:223:9 [INFO] [stderr] | [INFO] [stderr] 223 | / let mut hash; [INFO] [stderr] 224 | | [INFO] [stderr] 225 | | // We have processed at least one full chunk [INFO] [stderr] 226 | | if self.total_len >= CHUNK_SIZE as u64 { [INFO] [stderr] ... | [INFO] [stderr] 229 | | hash = self.seed.wrapping_add(PRIME_5); [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let hash = if self.total_len >= CHUNK_SIZE as u64 { self.core.finish() } else { self.seed.wrapping_add(PRIME_5) };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:250:22 [INFO] [stderr] | [INFO] [stderr] 250 | let k1 = (k1 as u64).wrapping_mul(PRIME_1); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(k1)` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:258:22 [INFO] [stderr] | [INFO] [stderr] 258 | let k1 = (*buffered_u8 as u64).wrapping_mul(PRIME_5); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(*buffered_u8)` [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: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `twox-hash`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "bed1793314a9f13388ad668b3fac75ea5fa0397061c42c12f8ccf23f24cca6f7"` [INFO] running `"docker" "rm" "-f" "bed1793314a9f13388ad668b3fac75ea5fa0397061c42c12f8ccf23f24cca6f7"` [INFO] [stdout] bed1793314a9f13388ad668b3fac75ea5fa0397061c42c12f8ccf23f24cca6f7