[INFO] crate hashers 1.0.1 is already in cache [INFO] extracting crate hashers 1.0.1 into work/ex/clippy-test-run/sources/stable/reg/hashers/1.0.1 [INFO] extracting crate hashers 1.0.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/hashers/1.0.1 [INFO] validating manifest of hashers-1.0.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 hashers-1.0.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 hashers-1.0.1 [INFO] finished frobbing hashers-1.0.1 [INFO] frobbed toml for hashers-1.0.1 written to work/ex/clippy-test-run/sources/stable/reg/hashers/1.0.1/Cargo.toml [INFO] started frobbing hashers-1.0.1 [INFO] finished frobbing hashers-1.0.1 [INFO] frobbed toml for hashers-1.0.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/hashers/1.0.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 hashers-1.0.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/hashers/1.0.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] d583c6601b12bbf54e87299dfe8d9e02264c57912f24dbcca19ce0201e787266 [INFO] running `"docker" "start" "-a" "d583c6601b12bbf54e87299dfe8d9e02264c57912f24dbcca19ce0201e787266"` [INFO] [stderr] Checking hashers v1.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/jenkins/spooky_hash.rs:22:23 [INFO] [stderr] | [INFO] [stderr] 22 | const SC_CONST: u64 = 0xdeadbeefdeadbeefu64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0xdead_beef_dead_beefu64` [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/jenkins/mod.rs:295:32 [INFO] [stderr] | [INFO] [stderr] 295 | let initial = Wrapping(0xdeadbeefu32) + Wrapping(bytes.len() as u32) + self.pc; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0xdead_beefu32` [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: operator precedence can trip the unwary [INFO] [stderr] --> src/jenkins/mod.rs:324:26 [INFO] [stderr] | [INFO] [stderr] 324 | a += Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | __________________________^ [INFO] [stderr] 325 | | + Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] 326 | | << 16; [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] 324 | a += (Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] 325 | + Wrapping(load_int_le!(chunk, 0, u16) as u32)) << 16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/jenkins/mod.rs:327:26 [INFO] [stderr] | [INFO] [stderr] 327 | b += Wrapping(load_int_le!(chunk, 4, u16) as u32) [INFO] [stderr] | __________________________^ [INFO] [stderr] 328 | | + Wrapping(load_int_le!(chunk, 6, u16) as u32) [INFO] [stderr] 329 | | << 16; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [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] 327 | b += (Wrapping(load_int_le!(chunk, 4, u16) as u32) [INFO] [stderr] 328 | + Wrapping(load_int_le!(chunk, 6, u16) as u32)) << 16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/jenkins/mod.rs:330:26 [INFO] [stderr] | [INFO] [stderr] 330 | c += Wrapping(load_int_le!(chunk, 8, u16) as u32) [INFO] [stderr] | __________________________^ [INFO] [stderr] 331 | | + Wrapping(load_int_le!(chunk, 10, u16) as u32) [INFO] [stderr] 332 | | << 16; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [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] 330 | c += (Wrapping(load_int_le!(chunk, 8, u16) as u32) [INFO] [stderr] 331 | + Wrapping(load_int_le!(chunk, 10, u16) as u32)) << 16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/jenkins/mod.rs:335:26 [INFO] [stderr] | [INFO] [stderr] 335 | a += Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | __________________________^ [INFO] [stderr] 336 | | + Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] 337 | | << 16; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [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] 335 | a += (Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] 336 | + Wrapping(load_int_le!(chunk, 0, u16) as u32)) << 16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/jenkins/mod.rs:338:26 [INFO] [stderr] | [INFO] [stderr] 338 | b += Wrapping(load_int_le!(chunk, 4, u16) as u32) [INFO] [stderr] | __________________________^ [INFO] [stderr] 339 | | + Wrapping(load_int_le!(chunk, 6, u16) as u32) [INFO] [stderr] 340 | | << 16; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [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] 338 | b += (Wrapping(load_int_le!(chunk, 4, u16) as u32) [INFO] [stderr] 339 | + Wrapping(load_int_le!(chunk, 6, u16) as u32)) << 16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/jenkins/mod.rs:343:26 [INFO] [stderr] | [INFO] [stderr] 343 | a += Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | __________________________^ [INFO] [stderr] 344 | | + Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] 345 | | << 16; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [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] 343 | a += (Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] 344 | + Wrapping(load_int_le!(chunk, 0, u16) as u32)) << 16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pigeon.rs:75:14 [INFO] [stderr] | [INFO] [stderr] 75 | x = (x & 0xff0000ffu32) | (x & 0x00ff0000u32).wrapping_shr(8) | (x & 0x0000ff00u32).wrapping_shl(8); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0xff00_00ffu32` [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/pigeon.rs:75:36 [INFO] [stderr] | [INFO] [stderr] 75 | x = (x & 0xff0000ffu32) | (x & 0x00ff0000u32).wrapping_shr(8) | (x & 0x0000ff00u32).wrapping_shl(8); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x00ff_0000u32` [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/pigeon.rs:75:74 [INFO] [stderr] | [INFO] [stderr] 75 | x = (x & 0xff0000ffu32) | (x & 0x00ff0000u32).wrapping_shr(8) | (x & 0x0000ff00u32).wrapping_shl(8); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x0000_ff00u32` [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/pigeon.rs:76:14 [INFO] [stderr] | [INFO] [stderr] 76 | x = (x & 0xf00ff00fu32) | (x & 0x0f000f00u32).wrapping_shr(4) | (x & 0x00f000f0u32).wrapping_shl(4); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0xf00f_f00fu32` [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/pigeon.rs:76:36 [INFO] [stderr] | [INFO] [stderr] 76 | x = (x & 0xf00ff00fu32) | (x & 0x0f000f00u32).wrapping_shr(4) | (x & 0x00f000f0u32).wrapping_shl(4); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x0f00_0f00u32` [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/pigeon.rs:76:74 [INFO] [stderr] | [INFO] [stderr] 76 | x = (x & 0xf00ff00fu32) | (x & 0x0f000f00u32).wrapping_shr(4) | (x & 0x00f000f0u32).wrapping_shl(4); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x00f0_00f0u32` [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/pigeon.rs:77:14 [INFO] [stderr] | [INFO] [stderr] 77 | x = (x & 0xc3c3c3c3u32) | (x & 0x30303030u32).wrapping_shr(2) | (x & 0x0c0c0c0cu32).wrapping_shl(2); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0xc3c3_c3c3u32` [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/pigeon.rs:77:36 [INFO] [stderr] | [INFO] [stderr] 77 | x = (x & 0xc3c3c3c3u32) | (x & 0x30303030u32).wrapping_shr(2) | (x & 0x0c0c0c0cu32).wrapping_shl(2); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x3030_3030u32` [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/pigeon.rs:77:74 [INFO] [stderr] | [INFO] [stderr] 77 | x = (x & 0xc3c3c3c3u32) | (x & 0x30303030u32).wrapping_shr(2) | (x & 0x0c0c0c0cu32).wrapping_shl(2); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x0c0c_0c0cu32` [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/pigeon.rs:78:14 [INFO] [stderr] | [INFO] [stderr] 78 | x = (x & 0x99999999u32) | (x & 0x44444444u32).wrapping_shr(1) | (x & 0x22222222u32).wrapping_shl(1); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x9999_9999u32` [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/pigeon.rs:78:36 [INFO] [stderr] | [INFO] [stderr] 78 | x = (x & 0x99999999u32) | (x & 0x44444444u32).wrapping_shr(1) | (x & 0x22222222u32).wrapping_shl(1); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x4444_4444u32` [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/pigeon.rs:78:74 [INFO] [stderr] | [INFO] [stderr] 78 | x = (x & 0x99999999u32) | (x & 0x44444444u32).wrapping_shr(1) | (x & 0x22222222u32).wrapping_shl(1); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x2222_2222u32` [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/pigeon.rs:94:20 [INFO] [stderr] | [INFO] [stderr] 94 | const MAGIC: u64 = 173773926194192273u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `173_773_926_194_192_273u64` [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: operator precedence can trip the unwary [INFO] [stderr] --> src/oz.rs:64:22 [INFO] [stderr] | [INFO] [stderr] 64 | self.0 = self.0 + (self.0 << 5) ^ Wrapping(*byte as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(self.0 + (self.0 << 5)) ^ Wrapping(*byte as u32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:435:32 [INFO] [stderr] | [INFO] [stderr] 435 | fnv1a!(FNV1aHasher32, u32, 16777619, 0x811c9dc5); [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_619` [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:435:42 [INFO] [stderr] | [INFO] [stderr] 435 | fnv1a!(FNV1aHasher32, u32, 16777619, 0x811c9dc5); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x811c_9dc5` [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:436:32 [INFO] [stderr] | [INFO] [stderr] 436 | fnv1a!(FNV1aHasher64, u64, 1099511628211, 0xcbf29ce484222325); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `1_099_511_628_211` [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:436:47 [INFO] [stderr] | [INFO] [stderr] 436 | fnv1a!(FNV1aHasher64, u64, 1099511628211, 0xcbf29ce484222325); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xcbf2_9ce4_8422_2325` [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/jenkins/spooky_hash.rs:22:23 [INFO] [stderr] | [INFO] [stderr] 22 | const SC_CONST: u64 = 0xdeadbeefdeadbeefu64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0xdead_beef_dead_beefu64` [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/jenkins/spooky_hash.rs:561:33 [INFO] [stderr] | [INFO] [stderr] 561 | assert_eq!(spooky(b""), 13905049616862401802); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `13_905_049_616_862_401_802` [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/jenkins/spooky_hash.rs:562:34 [INFO] [stderr] | [INFO] [stderr] 562 | assert_eq!(spooky(b"a"), 16932945748884078726); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `16_932_945_748_884_078_726` [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/jenkins/spooky_hash.rs:563:34 [INFO] [stderr] | [INFO] [stderr] 563 | assert_eq!(spooky(b"b"), 5781063613870495197); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `5_781_063_613_870_495_197` [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/jenkins/spooky_hash.rs:564:35 [INFO] [stderr] | [INFO] [stderr] 564 | assert_eq!(spooky(b"ab"), 13849109452443161137); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `13_849_109_452_443_161_137` [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/jenkins/spooky_hash.rs:565:37 [INFO] [stderr] | [INFO] [stderr] 565 | assert_eq!(spooky(b"abcd"), 4142038200967391753); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `4_142_038_200_967_391_753` [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/jenkins/spooky_hash.rs:566:40 [INFO] [stderr] | [INFO] [stderr] 566 | assert_eq!(spooky(b"abcdefg"), 2761526316938866980); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `2_761_526_316_938_866_980` [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/jenkins/spooky_hash.rs:567:59 [INFO] [stderr] | [INFO] [stderr] 567 | assert_eq!(spooky(b"abcdefghijklmnopqrstuvwxyz"), 16192181224158463141); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `16_192_181_224_158_463_141` [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/jenkins/mod.rs:69:32 [INFO] [stderr] | [INFO] [stderr] 69 | assert_eq!(oaat(b"a"), 29161854018); [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `29_161_854_018` [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/jenkins/mod.rs:70:32 [INFO] [stderr] | [INFO] [stderr] 70 | assert_eq!(oaat(b"b"), 30079156635); [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `30_079_156_635` [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/jenkins/mod.rs:71:33 [INFO] [stderr] | [INFO] [stderr] 71 | assert_eq!(oaat(b"ab"), 30087418617432); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `30_087_418_617_432` [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/jenkins/mod.rs:72:38 [INFO] [stderr] | [INFO] [stderr] 72 | assert_eq!(oaat(b"abcdefg"), 3103867595652801641); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `3_103_867_595_652_801_641` [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/jenkins/mod.rs:295:32 [INFO] [stderr] | [INFO] [stderr] 295 | let initial = Wrapping(0xdeadbeefu32) + Wrapping(bytes.len() as u32) + self.pc; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0xdead_beefu32` [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: operator precedence can trip the unwary [INFO] [stderr] --> src/jenkins/mod.rs:324:26 [INFO] [stderr] | [INFO] [stderr] 324 | a += Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | __________________________^ [INFO] [stderr] 325 | | + Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] 326 | | << 16; [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] 324 | a += (Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] 325 | + Wrapping(load_int_le!(chunk, 0, u16) as u32)) << 16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/jenkins/mod.rs:327:26 [INFO] [stderr] | [INFO] [stderr] 327 | b += Wrapping(load_int_le!(chunk, 4, u16) as u32) [INFO] [stderr] | __________________________^ [INFO] [stderr] 328 | | + Wrapping(load_int_le!(chunk, 6, u16) as u32) [INFO] [stderr] 329 | | << 16; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [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] 327 | b += (Wrapping(load_int_le!(chunk, 4, u16) as u32) [INFO] [stderr] 328 | + Wrapping(load_int_le!(chunk, 6, u16) as u32)) << 16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/jenkins/mod.rs:330:26 [INFO] [stderr] | [INFO] [stderr] 330 | c += Wrapping(load_int_le!(chunk, 8, u16) as u32) [INFO] [stderr] | __________________________^ [INFO] [stderr] 331 | | + Wrapping(load_int_le!(chunk, 10, u16) as u32) [INFO] [stderr] 332 | | << 16; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [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] 330 | c += (Wrapping(load_int_le!(chunk, 8, u16) as u32) [INFO] [stderr] 331 | + Wrapping(load_int_le!(chunk, 10, u16) as u32)) << 16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/jenkins/mod.rs:335:26 [INFO] [stderr] | [INFO] [stderr] 335 | a += Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | __________________________^ [INFO] [stderr] 336 | | + Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] 337 | | << 16; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [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] 335 | a += (Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] 336 | + Wrapping(load_int_le!(chunk, 0, u16) as u32)) << 16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/jenkins/mod.rs:338:26 [INFO] [stderr] | [INFO] [stderr] 338 | b += Wrapping(load_int_le!(chunk, 4, u16) as u32) [INFO] [stderr] | __________________________^ [INFO] [stderr] 339 | | + Wrapping(load_int_le!(chunk, 6, u16) as u32) [INFO] [stderr] 340 | | << 16; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [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] 338 | b += (Wrapping(load_int_le!(chunk, 4, u16) as u32) [INFO] [stderr] 339 | + Wrapping(load_int_le!(chunk, 6, u16) as u32)) << 16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/jenkins/mod.rs:343:26 [INFO] [stderr] | [INFO] [stderr] 343 | a += Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | __________________________^ [INFO] [stderr] 344 | | + Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] 345 | | << 16; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [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] 343 | a += (Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] 344 | + Wrapping(load_int_le!(chunk, 0, u16) as u32)) << 16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/jenkins/mod.rs:394:35 [INFO] [stderr] | [INFO] [stderr] 394 | assert_eq!(lookup3(b"a"), 6351843130003064584); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `6_351_843_130_003_064_584` [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/jenkins/mod.rs:395:35 [INFO] [stderr] | [INFO] [stderr] 395 | assert_eq!(lookup3(b"b"), 5351957087540069269); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `5_351_957_087_540_069_269` [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/jenkins/mod.rs:396:36 [INFO] [stderr] | [INFO] [stderr] 396 | assert_eq!(lookup3(b"ab"), 7744397999705663711); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `7_744_397_999_705_663_711` [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/jenkins/mod.rs:397:38 [INFO] [stderr] | [INFO] [stderr] 397 | assert_eq!(lookup3(b"abcd"), 16288908501016938652); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `16_288_908_501_016_938_652` [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/jenkins/mod.rs:398:41 [INFO] [stderr] | [INFO] [stderr] 398 | assert_eq!(lookup3(b"abcdefg"), 6461572128488215717); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `6_461_572_128_488_215_717` [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/pigeon.rs:75:14 [INFO] [stderr] | [INFO] [stderr] 75 | x = (x & 0xff0000ffu32) | (x & 0x00ff0000u32).wrapping_shr(8) | (x & 0x0000ff00u32).wrapping_shl(8); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0xff00_00ffu32` [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/pigeon.rs:75:36 [INFO] [stderr] | [INFO] [stderr] 75 | x = (x & 0xff0000ffu32) | (x & 0x00ff0000u32).wrapping_shr(8) | (x & 0x0000ff00u32).wrapping_shl(8); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x00ff_0000u32` [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/pigeon.rs:75:74 [INFO] [stderr] | [INFO] [stderr] 75 | x = (x & 0xff0000ffu32) | (x & 0x00ff0000u32).wrapping_shr(8) | (x & 0x0000ff00u32).wrapping_shl(8); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x0000_ff00u32` [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/pigeon.rs:76:14 [INFO] [stderr] | [INFO] [stderr] 76 | x = (x & 0xf00ff00fu32) | (x & 0x0f000f00u32).wrapping_shr(4) | (x & 0x00f000f0u32).wrapping_shl(4); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0xf00f_f00fu32` [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/pigeon.rs:76:36 [INFO] [stderr] | [INFO] [stderr] 76 | x = (x & 0xf00ff00fu32) | (x & 0x0f000f00u32).wrapping_shr(4) | (x & 0x00f000f0u32).wrapping_shl(4); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x0f00_0f00u32` [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/pigeon.rs:76:74 [INFO] [stderr] | [INFO] [stderr] 76 | x = (x & 0xf00ff00fu32) | (x & 0x0f000f00u32).wrapping_shr(4) | (x & 0x00f000f0u32).wrapping_shl(4); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x00f0_00f0u32` [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/pigeon.rs:77:14 [INFO] [stderr] | [INFO] [stderr] 77 | x = (x & 0xc3c3c3c3u32) | (x & 0x30303030u32).wrapping_shr(2) | (x & 0x0c0c0c0cu32).wrapping_shl(2); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0xc3c3_c3c3u32` [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/pigeon.rs:77:36 [INFO] [stderr] | [INFO] [stderr] 77 | x = (x & 0xc3c3c3c3u32) | (x & 0x30303030u32).wrapping_shr(2) | (x & 0x0c0c0c0cu32).wrapping_shl(2); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x3030_3030u32` [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/pigeon.rs:77:74 [INFO] [stderr] | [INFO] [stderr] 77 | x = (x & 0xc3c3c3c3u32) | (x & 0x30303030u32).wrapping_shr(2) | (x & 0x0c0c0c0cu32).wrapping_shl(2); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x0c0c_0c0cu32` [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/pigeon.rs:78:14 [INFO] [stderr] | [INFO] [stderr] 78 | x = (x & 0x99999999u32) | (x & 0x44444444u32).wrapping_shr(1) | (x & 0x22222222u32).wrapping_shl(1); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x9999_9999u32` [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/pigeon.rs:78:36 [INFO] [stderr] | [INFO] [stderr] 78 | x = (x & 0x99999999u32) | (x & 0x44444444u32).wrapping_shr(1) | (x & 0x22222222u32).wrapping_shl(1); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x4444_4444u32` [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/pigeon.rs:78:74 [INFO] [stderr] | [INFO] [stderr] 78 | x = (x & 0x99999999u32) | (x & 0x44444444u32).wrapping_shr(1) | (x & 0x22222222u32).wrapping_shl(1); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x2222_2222u32` [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/pigeon.rs:94:20 [INFO] [stderr] | [INFO] [stderr] 94 | const MAGIC: u64 = 173773926194192273u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `173_773_926_194_192_273u64` [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/pigeon.rs:126:38 [INFO] [stderr] | [INFO] [stderr] 126 | assert_eq!(bricolage(b"a"), 17926483712435944715); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `17_926_483_712_435_944_715` [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/pigeon.rs:127:38 [INFO] [stderr] | [INFO] [stderr] 127 | assert_eq!(bricolage(b"b"), 12457347154332739726); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `12_457_347_154_332_739_726` [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/pigeon.rs:128:38 [INFO] [stderr] | [INFO] [stderr] 128 | assert_eq!(bricolage(b"ab"), 16461606921607156355); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `16_461_606_921_607_156_355` [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: operator precedence can trip the unwary [INFO] [stderr] --> src/oz.rs:64:22 [INFO] [stderr] | [INFO] [stderr] 64 | self.0 = self.0 + (self.0 << 5) ^ Wrapping(*byte as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(self.0 + (self.0 << 5)) ^ Wrapping(*byte as u32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/oz.rs:85:32 [INFO] [stderr] | [INFO] [stderr] 85 | assert_eq!(djb2(b"a"), 177604); [INFO] [stderr] | ^^^^^^ help: consider: `177_604` [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/oz.rs:86:32 [INFO] [stderr] | [INFO] [stderr] 86 | assert_eq!(djb2(b"b"), 177607); [INFO] [stderr] | ^^^^^^ help: consider: `177_607` [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/oz.rs:87:33 [INFO] [stderr] | [INFO] [stderr] 87 | assert_eq!(djb2(b"ab"), 5860902); [INFO] [stderr] | ^^^^^^^ help: consider: `5_860_902` [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/oz.rs:144:33 [INFO] [stderr] | [INFO] [stderr] 144 | assert_eq!(sdbm(b"ab"), 6363201); [INFO] [stderr] | ^^^^^^^ help: consider: `6_363_201` [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:435:32 [INFO] [stderr] | [INFO] [stderr] 435 | fnv1a!(FNV1aHasher32, u32, 16777619, 0x811c9dc5); [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_619` [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:435:42 [INFO] [stderr] | [INFO] [stderr] 435 | fnv1a!(FNV1aHasher32, u32, 16777619, 0x811c9dc5); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x811c_9dc5` [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:436:32 [INFO] [stderr] | [INFO] [stderr] 436 | fnv1a!(FNV1aHasher64, u64, 1099511628211, 0xcbf29ce484222325); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `1_099_511_628_211` [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:436:47 [INFO] [stderr] | [INFO] [stderr] 436 | fnv1a!(FNV1aHasher64, u64, 1099511628211, 0xcbf29ce484222325); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xcbf2_9ce4_8422_2325` [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:456:38 [INFO] [stderr] | [INFO] [stderr] 456 | assert_eq!(fnv1a64(b""), 14695981039346656037); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `14_695_981_039_346_656_037` [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:457:39 [INFO] [stderr] | [INFO] [stderr] 457 | assert_eq!(fnv1a64(b"a"), 12638187200555641996); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `12_638_187_200_555_641_996` [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:458:39 [INFO] [stderr] | [INFO] [stderr] 458 | assert_eq!(fnv1a64(b"b"), 12638190499090526629); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `12_638_190_499_090_526_629` [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:459:40 [INFO] [stderr] | [INFO] [stderr] 459 | assert_eq!(fnv1a64(b"ab"), 620445648566982762); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `620_445_648_566_982_762` [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:460:42 [INFO] [stderr] | [INFO] [stderr] 460 | assert_eq!(fnv1a64(b"abcd"), 18165163011005162717); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `18_165_163_011_005_162_717` [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:461:45 [INFO] [stderr] | [INFO] [stderr] 461 | assert_eq!(fnv1a64(b"abcdefg"), 4642726675185563447); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `4_642_726_675_185_563_447` [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: the function has a cyclomatic complexity of 31 [INFO] [stderr] --> src/jenkins/spooky_hash.rs:292:1 [INFO] [stderr] | [INFO] [stderr] 292 | / fn short(message: &[u8], length: usize, hash1: &mut Wrapping, hash2: &mut Wrapping) { [INFO] [stderr] 293 | | debug_assert!(length <= SC_BUF_SIZE); [INFO] [stderr] 294 | | let mut h: [Wrapping; 4] = [*hash1, *hash2, Wrapping(SC_CONST), Wrapping(SC_CONST)]; [INFO] [stderr] 295 | | for chunk in message.chunks(4 * mem::size_of::()) { [INFO] [stderr] ... | [INFO] [stderr] 386 | | *hash2 = h[1]; [INFO] [stderr] 387 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/jenkins/spooky_hash.rs:298:13 [INFO] [stderr] | [INFO] [stderr] 298 | / let words: &[Wrapping]; [INFO] [stderr] 299 | | if offset_to_align(chunk.as_ptr(), 4) == 0 { [INFO] [stderr] 300 | | words = unsafe { mem::transmute(chunk) }; [INFO] [stderr] 301 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 309 | | words = &buf; [INFO] [stderr] 310 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let words = if offset_to_align(chunk.as_ptr(), 4) == 0 { unsafe { mem::transmute(chunk) } } else { ..; &buf };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [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: transmute from a reference to a reference [INFO] [stderr] --> src/jenkins/spooky_hash.rs:300:34 [INFO] [stderr] | [INFO] [stderr] 300 | words = unsafe { mem::transmute(chunk) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(chunk as *const [u8] as *const [std::num::Wrapping])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/jenkins/spooky_hash.rs:318:13 [INFO] [stderr] | [INFO] [stderr] 318 | / let words: &[Wrapping]; [INFO] [stderr] 319 | | if offset_to_align(message.as_ptr(), 4) == 0 { [INFO] [stderr] 320 | | words = unsafe { mem::transmute(message) }; [INFO] [stderr] 321 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 329 | | words = &buf; [INFO] [stderr] 330 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let words = if offset_to_align(message.as_ptr(), 4) == 0 { unsafe { mem::transmute(message) } } else { ..; &buf };` [INFO] [stderr] | [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: transmute from a reference to a reference [INFO] [stderr] --> src/jenkins/spooky_hash.rs:320:34 [INFO] [stderr] | [INFO] [stderr] 320 | words = unsafe { mem::transmute(message) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(message as *const [u8] as *const [std::num::Wrapping])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:338:38 [INFO] [stderr] | [INFO] [stderr] 338 | h[3] += Wrapping(chunk[14] as u64) << 48; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[14])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:341:38 [INFO] [stderr] | [INFO] [stderr] 341 | h[3] += Wrapping(chunk[13] as u64) << 40; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[13])` [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/jenkins/spooky_hash.rs:344:38 [INFO] [stderr] | [INFO] [stderr] 344 | h[3] += Wrapping(chunk[12] as u64) << 32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[12])` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:347:34 [INFO] [stderr] | [INFO] [stderr] 347 | h[3] += Wrapping(load_int_le!(chunk, 8, u32) as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 347 | h[3] += Wrapping(u64::from({ [INFO] [stderr] 348 | unsafe { [INFO] [stderr] 349 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 350 | let mut data = 0 as $int_ty; [INFO] [stderr] 351 | ptr::copy_nonoverlapping( [INFO] [stderr] 352 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:350:38 [INFO] [stderr] | [INFO] [stderr] 350 | h[3] += Wrapping(chunk[10] as u64) << 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[10])` [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/jenkins/spooky_hash.rs:353:38 [INFO] [stderr] | [INFO] [stderr] 353 | h[3] += Wrapping(chunk[9] as u64) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[9])` [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/jenkins/spooky_hash.rs:356:38 [INFO] [stderr] | [INFO] [stderr] 356 | h[3] += Wrapping(chunk[8] as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[8])` [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/jenkins/spooky_hash.rs:361:38 [INFO] [stderr] | [INFO] [stderr] 361 | h[2] += Wrapping(chunk[6] as u64) << 48; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[6])` [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/jenkins/spooky_hash.rs:364:38 [INFO] [stderr] | [INFO] [stderr] 364 | h[2] += Wrapping(chunk[5] as u64) << 40; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[5])` [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/jenkins/spooky_hash.rs:367:38 [INFO] [stderr] | [INFO] [stderr] 367 | h[2] += Wrapping(chunk[4] as u64) << 32; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[4])` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:369:34 [INFO] [stderr] | [INFO] [stderr] 369 | h[2] += Wrapping(load_int_le!(chunk, 0, u32) as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 369 | h[2] += Wrapping(u64::from({ [INFO] [stderr] 370 | unsafe { [INFO] [stderr] 371 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 372 | let mut data = 0 as $int_ty; [INFO] [stderr] 373 | ptr::copy_nonoverlapping( [INFO] [stderr] 374 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/jenkins/spooky_hash.rs:370:23 [INFO] [stderr] | [INFO] [stderr] 370 | } else if chunk.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!chunk.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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:372:38 [INFO] [stderr] | [INFO] [stderr] 372 | h[2] += Wrapping(chunk[2] as u64) << 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[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 u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:375:38 [INFO] [stderr] | [INFO] [stderr] 375 | h[2] += Wrapping(chunk[1] as u64) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[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 u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:377:34 [INFO] [stderr] | [INFO] [stderr] 377 | h[2] += Wrapping(chunk[0] as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[0])` [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: transmute from a reference to a reference [INFO] [stderr] --> src/jenkins/spooky_hash.rs:442:33 [INFO] [stderr] | [INFO] [stderr] 442 | let data = unsafe { mem::transmute::<&[u8], &[Wrapping]>(&self.m_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(&self.m_data as *const [u8; 192] as *const [std::num::Wrapping])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/jenkins/spooky_hash.rs:450:17 [INFO] [stderr] | [INFO] [stderr] 450 | (&self.m_data as &_ as *const u8).offset(processed as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(&self.m_data as &_ as *const u8).add(processed)` [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] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/jenkins/spooky_hash.rs:455:17 [INFO] [stderr] | [INFO] [stderr] 455 | (data.as_mut_ptr() as *mut u8).offset((SC_BLOCK_SIZE - 1) as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(data.as_mut_ptr() as *mut u8).add((SC_BLOCK_SIZE - 1))` [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/jenkins/spooky_hash.rs:485:21 [INFO] [stderr] | [INFO] [stderr] 485 | (self.m_data.as_mut_ptr() as *mut u8).offset(self.m_remainder as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.m_data.as_mut_ptr() as *mut u8).add(self.m_remainder)` [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/jenkins/spooky_hash.rs:503:21 [INFO] [stderr] | [INFO] [stderr] 503 | (self.m_data.as_mut_ptr() as *mut u8).offset(self.m_remainder as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.m_data.as_mut_ptr() as *mut u8).add(self.m_remainder)` [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: transmute from a reference to a reference [INFO] [stderr] --> src/jenkins/spooky_hash.rs:508:26 [INFO] [stderr] | [INFO] [stderr] 508 | unsafe { mem::transmute::<&[u8], &[Wrapping]>(&self.m_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(&self.m_data as *const [u8; 192] as *const [std::num::Wrapping])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/jenkins/spooky_hash.rs:520:34 [INFO] [stderr] | [INFO] [stderr] 520 | unsafe { mem::transmute::<&[u8], &[Wrapping]>(chunk) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(chunk as *const [u8] as *const [std::num::Wrapping])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/jenkins/spooky_hash.rs:531:34 [INFO] [stderr] | [INFO] [stderr] 531 | unsafe { mem::transmute::<&[u8], &[Wrapping]>(&self.m_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(&self.m_data as *const [u8; 192] as *const [std::num::Wrapping])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:46:32 [INFO] [stderr] | [INFO] [stderr] 46 | self.0 += Wrapping(*byte as u64); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(*byte)` [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/jenkins/mod.rs:271:14 [INFO] [stderr] | [INFO] [stderr] 271 | 1 => s[0] as u32, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(s[0])` [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/jenkins/mod.rs:272:14 [INFO] [stderr] | [INFO] [stderr] 272 | 2 => (s[0] as u32) + ((s[1] as u32) << 8), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[0])` [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/jenkins/mod.rs:272:31 [INFO] [stderr] | [INFO] [stderr] 272 | 2 => (s[0] as u32) + ((s[1] as u32) << 8), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[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/jenkins/mod.rs:273:14 [INFO] [stderr] | [INFO] [stderr] 273 | 3 => (s[0] as u32) + ((s[1] as u32) << 8) + ((s[2] as u32) << 16), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[0])` [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/jenkins/mod.rs:273:31 [INFO] [stderr] | [INFO] [stderr] 273 | 3 => (s[0] as u32) + ((s[1] as u32) << 8) + ((s[2] as u32) << 16), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[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/jenkins/mod.rs:273:54 [INFO] [stderr] | [INFO] [stderr] 273 | 3 => (s[0] as u32) + ((s[1] as u32) << 8) + ((s[2] as u32) << 16), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[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/jenkins/mod.rs:274:14 [INFO] [stderr] | [INFO] [stderr] 274 | 4 => (s[0] as u32) + ((s[1] as u32) << 8) + ((s[2] as u32) << 16) + ((s[3] as u32) << 24), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[0])` [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/jenkins/mod.rs:274:31 [INFO] [stderr] | [INFO] [stderr] 274 | 4 => (s[0] as u32) + ((s[1] as u32) << 8) + ((s[2] as u32) << 16) + ((s[3] as u32) << 24), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[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/jenkins/mod.rs:274:54 [INFO] [stderr] | [INFO] [stderr] 274 | 4 => (s[0] as u32) + ((s[1] as u32) << 8) + ((s[2] as u32) << 16) + ((s[3] as u32) << 24), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[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/jenkins/mod.rs:274:78 [INFO] [stderr] | [INFO] [stderr] 274 | 4 => (s[0] as u32) + ((s[1] as u32) << 8) + ((s[2] as u32) << 16) + ((s[3] as u32) << 24), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:287:9 [INFO] [stderr] | [INFO] [stderr] 287 | (self.pc.0 as u64) + ((self.pb.0 as u64) << 32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.pc.0)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:287:31 [INFO] [stderr] | [INFO] [stderr] 287 | (self.pc.0 as u64) + ((self.pb.0 as u64) << 32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.pb.0)` [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 function has a cyclomatic complexity of 52 [INFO] [stderr] --> src/jenkins/mod.rs:291:5 [INFO] [stderr] | [INFO] [stderr] 291 | / fn write(&mut self, bytes: &[u8]) { [INFO] [stderr] 292 | | if bytes.len() == 0 { [INFO] [stderr] 293 | | return; [INFO] [stderr] 294 | | } [INFO] [stderr] ... | [INFO] [stderr] 375 | | self.pc = c; [INFO] [stderr] 376 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/jenkins/mod.rs:292:12 [INFO] [stderr] | [INFO] [stderr] 292 | 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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:324:35 [INFO] [stderr] | [INFO] [stderr] 324 | a += Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 324 | a += Wrapping(u32::from({ [INFO] [stderr] 325 | unsafe { [INFO] [stderr] 326 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 327 | let mut data = 0 as $int_ty; [INFO] [stderr] 328 | ptr::copy_nonoverlapping( [INFO] [stderr] 329 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:325:36 [INFO] [stderr] | [INFO] [stderr] 325 | + Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 325 | + Wrapping(u32::from({ [INFO] [stderr] 326 | unsafe { [INFO] [stderr] 327 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 328 | let mut data = 0 as $int_ty; [INFO] [stderr] 329 | ptr::copy_nonoverlapping( [INFO] [stderr] 330 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:327:35 [INFO] [stderr] | [INFO] [stderr] 327 | b += Wrapping(load_int_le!(chunk, 4, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 327 | b += Wrapping(u32::from({ [INFO] [stderr] 328 | unsafe { [INFO] [stderr] 329 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 330 | let mut data = 0 as $int_ty; [INFO] [stderr] 331 | ptr::copy_nonoverlapping( [INFO] [stderr] 332 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:328:36 [INFO] [stderr] | [INFO] [stderr] 328 | + Wrapping(load_int_le!(chunk, 6, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 328 | + Wrapping(u32::from({ [INFO] [stderr] 329 | unsafe { [INFO] [stderr] 330 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 331 | let mut data = 0 as $int_ty; [INFO] [stderr] 332 | ptr::copy_nonoverlapping( [INFO] [stderr] 333 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:330:35 [INFO] [stderr] | [INFO] [stderr] 330 | c += Wrapping(load_int_le!(chunk, 8, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 330 | c += Wrapping(u32::from({ [INFO] [stderr] 331 | unsafe { [INFO] [stderr] 332 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 333 | let mut data = 0 as $int_ty; [INFO] [stderr] 334 | ptr::copy_nonoverlapping( [INFO] [stderr] 335 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:331:36 [INFO] [stderr] | [INFO] [stderr] 331 | + Wrapping(load_int_le!(chunk, 10, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 331 | + Wrapping(u32::from({ [INFO] [stderr] 332 | unsafe { [INFO] [stderr] 333 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 334 | let mut data = 0 as $int_ty; [INFO] [stderr] 335 | ptr::copy_nonoverlapping( [INFO] [stderr] 336 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:335:35 [INFO] [stderr] | [INFO] [stderr] 335 | a += Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 335 | a += Wrapping(u32::from({ [INFO] [stderr] 336 | unsafe { [INFO] [stderr] 337 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 338 | let mut data = 0 as $int_ty; [INFO] [stderr] 339 | ptr::copy_nonoverlapping( [INFO] [stderr] 340 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:336:36 [INFO] [stderr] | [INFO] [stderr] 336 | + Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 336 | + Wrapping(u32::from({ [INFO] [stderr] 337 | unsafe { [INFO] [stderr] 338 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 339 | let mut data = 0 as $int_ty; [INFO] [stderr] 340 | ptr::copy_nonoverlapping( [INFO] [stderr] 341 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:338:35 [INFO] [stderr] | [INFO] [stderr] 338 | b += Wrapping(load_int_le!(chunk, 4, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 338 | b += Wrapping(u32::from({ [INFO] [stderr] 339 | unsafe { [INFO] [stderr] 340 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 341 | let mut data = 0 as $int_ty; [INFO] [stderr] 342 | ptr::copy_nonoverlapping( [INFO] [stderr] 343 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:339:36 [INFO] [stderr] | [INFO] [stderr] 339 | + Wrapping(load_int_le!(chunk, 6, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 339 | + Wrapping(u32::from({ [INFO] [stderr] 340 | unsafe { [INFO] [stderr] 341 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 342 | let mut data = 0 as $int_ty; [INFO] [stderr] 343 | ptr::copy_nonoverlapping( [INFO] [stderr] 344 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:343:35 [INFO] [stderr] | [INFO] [stderr] 343 | a += Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 343 | a += Wrapping(u32::from({ [INFO] [stderr] 344 | unsafe { [INFO] [stderr] 345 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 346 | let mut data = 0 as $int_ty; [INFO] [stderr] 347 | ptr::copy_nonoverlapping( [INFO] [stderr] 348 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:344:36 [INFO] [stderr] | [INFO] [stderr] 344 | + Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 344 | + Wrapping(u32::from({ [INFO] [stderr] 345 | unsafe { [INFO] [stderr] 346 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 347 | let mut data = 0 as $int_ty; [INFO] [stderr] 348 | ptr::copy_nonoverlapping( [INFO] [stderr] 349 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/pigeon.rs:85:14 [INFO] [stderr] | [INFO] [stderr] 85 | let xh = perfect_shuffle_32(x.wrapping_shr(32) as u32) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(perfect_shuffle_32(x.wrapping_shr(32) as u32))` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/pigeon.rs:86:14 [INFO] [stderr] | [INFO] [stderr] 86 | let xl = perfect_shuffle_32(x as u32) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(perfect_shuffle_32(x as u32))` [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/pigeon.rs:105:47 [INFO] [stderr] | [INFO] [stderr] 105 | let shuffled = perfect_shuffle_64((*byte as u64).wrapping_mul(MAGIC)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(*byte)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/oz.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | (self.0).0 as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from((self.0).0)` [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/oz.rs:64:56 [INFO] [stderr] | [INFO] [stderr] 64 | self.0 = self.0 + (self.0 << 5) ^ Wrapping(*byte as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(*byte)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/oz.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | (self.0).0 as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from((self.0).0)` [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/oz.rs:121:31 [INFO] [stderr] | [INFO] [stderr] 121 | self.0 = Wrapping(*byte as u32) + (self.0 << 6) + (self.0 << 16) - self.0; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(*byte)` [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/oz.rs:177:32 [INFO] [stderr] | [INFO] [stderr] 177 | self.0 += Wrapping(*byte as u64); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(*byte)` [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:376:51 [INFO] [stderr] | [INFO] [stderr] 376 | self.0 = self.0.wrapping_shl(8) + (*byte as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(*byte)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:421:21 [INFO] [stderr] | [INFO] [stderr] 421 | self.0 as u64 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(self.0)` [INFO] [stderr] ... [INFO] [stderr] 435 | fnv1a!(FNV1aHasher32, u32, 16777619, 0x811c9dc5); [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_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:426:25 [INFO] [stderr] | [INFO] [stderr] 426 | self.0 = self.0 ^ (*byte as $size); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.0 ^= (*byte as $size)` [INFO] [stderr] ... [INFO] [stderr] 435 | fnv1a!(FNV1aHasher32, u32, 16777619, 0x811c9dc5); [INFO] [stderr] | ------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:426:43 [INFO] [stderr] | [INFO] [stderr] 426 | self.0 = self.0 ^ (*byte as $size); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(*byte)` [INFO] [stderr] ... [INFO] [stderr] 435 | fnv1a!(FNV1aHasher32, u32, 16777619, 0x811c9dc5); [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_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:426:25 [INFO] [stderr] | [INFO] [stderr] 426 | self.0 = self.0 ^ (*byte as $size); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.0 ^= (*byte as $size)` [INFO] [stderr] ... [INFO] [stderr] 436 | fnv1a!(FNV1aHasher64, u64, 1099511628211, 0xcbf29ce484222325); [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#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:426:43 [INFO] [stderr] | [INFO] [stderr] 426 | self.0 = self.0 ^ (*byte as $size); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(*byte)` [INFO] [stderr] ... [INFO] [stderr] 436 | fnv1a!(FNV1aHasher64, u64, 1099511628211, 0xcbf29ce484222325); [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_lossless [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 31 [INFO] [stderr] --> src/jenkins/spooky_hash.rs:292:1 [INFO] [stderr] | [INFO] [stderr] 292 | / fn short(message: &[u8], length: usize, hash1: &mut Wrapping, hash2: &mut Wrapping) { [INFO] [stderr] 293 | | debug_assert!(length <= SC_BUF_SIZE); [INFO] [stderr] 294 | | let mut h: [Wrapping; 4] = [*hash1, *hash2, Wrapping(SC_CONST), Wrapping(SC_CONST)]; [INFO] [stderr] 295 | | for chunk in message.chunks(4 * mem::size_of::()) { [INFO] [stderr] ... | [INFO] [stderr] 386 | | *hash2 = h[1]; [INFO] [stderr] 387 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/jenkins/spooky_hash.rs:298:13 [INFO] [stderr] | [INFO] [stderr] 298 | / let words: &[Wrapping]; [INFO] [stderr] 299 | | if offset_to_align(chunk.as_ptr(), 4) == 0 { [INFO] [stderr] 300 | | words = unsafe { mem::transmute(chunk) }; [INFO] [stderr] 301 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 309 | | words = &buf; [INFO] [stderr] 310 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let words = if offset_to_align(chunk.as_ptr(), 4) == 0 { unsafe { mem::transmute(chunk) } } else { ..; &buf };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [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: transmute from a reference to a reference [INFO] [stderr] --> src/jenkins/spooky_hash.rs:300:34 [INFO] [stderr] | [INFO] [stderr] 300 | words = unsafe { mem::transmute(chunk) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(chunk as *const [u8] as *const [std::num::Wrapping])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/jenkins/spooky_hash.rs:318:13 [INFO] [stderr] | [INFO] [stderr] 318 | / let words: &[Wrapping]; [INFO] [stderr] 319 | | if offset_to_align(message.as_ptr(), 4) == 0 { [INFO] [stderr] 320 | | words = unsafe { mem::transmute(message) }; [INFO] [stderr] 321 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 329 | | words = &buf; [INFO] [stderr] 330 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let words = if offset_to_align(message.as_ptr(), 4) == 0 { unsafe { mem::transmute(message) } } else { ..; &buf };` [INFO] [stderr] | [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: transmute from a reference to a reference [INFO] [stderr] --> src/jenkins/spooky_hash.rs:320:34 [INFO] [stderr] | [INFO] [stderr] 320 | words = unsafe { mem::transmute(message) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(message as *const [u8] as *const [std::num::Wrapping])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:338:38 [INFO] [stderr] | [INFO] [stderr] 338 | h[3] += Wrapping(chunk[14] as u64) << 48; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[14])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:341:38 [INFO] [stderr] | [INFO] [stderr] 341 | h[3] += Wrapping(chunk[13] as u64) << 40; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[13])` [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/jenkins/spooky_hash.rs:344:38 [INFO] [stderr] | [INFO] [stderr] 344 | h[3] += Wrapping(chunk[12] as u64) << 32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[12])` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:347:34 [INFO] [stderr] | [INFO] [stderr] 347 | h[3] += Wrapping(load_int_le!(chunk, 8, u32) as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 347 | h[3] += Wrapping(u64::from({ [INFO] [stderr] 348 | unsafe { [INFO] [stderr] 349 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 350 | let mut data = 0 as $int_ty; [INFO] [stderr] 351 | ptr::copy_nonoverlapping( [INFO] [stderr] 352 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:350:38 [INFO] [stderr] | [INFO] [stderr] 350 | h[3] += Wrapping(chunk[10] as u64) << 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[10])` [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/jenkins/spooky_hash.rs:353:38 [INFO] [stderr] | [INFO] [stderr] 353 | h[3] += Wrapping(chunk[9] as u64) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[9])` [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/jenkins/spooky_hash.rs:356:38 [INFO] [stderr] | [INFO] [stderr] 356 | h[3] += Wrapping(chunk[8] as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[8])` [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/jenkins/spooky_hash.rs:361:38 [INFO] [stderr] | [INFO] [stderr] 361 | h[2] += Wrapping(chunk[6] as u64) << 48; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[6])` [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/jenkins/spooky_hash.rs:364:38 [INFO] [stderr] | [INFO] [stderr] 364 | h[2] += Wrapping(chunk[5] as u64) << 40; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[5])` [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/jenkins/spooky_hash.rs:367:38 [INFO] [stderr] | [INFO] [stderr] 367 | h[2] += Wrapping(chunk[4] as u64) << 32; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[4])` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:369:34 [INFO] [stderr] | [INFO] [stderr] 369 | h[2] += Wrapping(load_int_le!(chunk, 0, u32) as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 369 | h[2] += Wrapping(u64::from({ [INFO] [stderr] 370 | unsafe { [INFO] [stderr] 371 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 372 | let mut data = 0 as $int_ty; [INFO] [stderr] 373 | ptr::copy_nonoverlapping( [INFO] [stderr] 374 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/jenkins/spooky_hash.rs:370:23 [INFO] [stderr] | [INFO] [stderr] 370 | } else if chunk.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!chunk.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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:372:38 [INFO] [stderr] | [INFO] [stderr] 372 | h[2] += Wrapping(chunk[2] as u64) << 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[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 u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:375:38 [INFO] [stderr] | [INFO] [stderr] 375 | h[2] += Wrapping(chunk[1] as u64) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[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 u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/spooky_hash.rs:377:34 [INFO] [stderr] | [INFO] [stderr] 377 | h[2] += Wrapping(chunk[0] as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(chunk[0])` [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: transmute from a reference to a reference [INFO] [stderr] --> src/jenkins/spooky_hash.rs:442:33 [INFO] [stderr] | [INFO] [stderr] 442 | let data = unsafe { mem::transmute::<&[u8], &[Wrapping]>(&self.m_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(&self.m_data as *const [u8; 192] as *const [std::num::Wrapping])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/jenkins/spooky_hash.rs:450:17 [INFO] [stderr] | [INFO] [stderr] 450 | (&self.m_data as &_ as *const u8).offset(processed as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(&self.m_data as &_ as *const u8).add(processed)` [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] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/jenkins/spooky_hash.rs:455:17 [INFO] [stderr] | [INFO] [stderr] 455 | (data.as_mut_ptr() as *mut u8).offset((SC_BLOCK_SIZE - 1) as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(data.as_mut_ptr() as *mut u8).add((SC_BLOCK_SIZE - 1))` [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/jenkins/spooky_hash.rs:485:21 [INFO] [stderr] | [INFO] [stderr] 485 | (self.m_data.as_mut_ptr() as *mut u8).offset(self.m_remainder as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.m_data.as_mut_ptr() as *mut u8).add(self.m_remainder)` [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/jenkins/spooky_hash.rs:503:21 [INFO] [stderr] | [INFO] [stderr] 503 | (self.m_data.as_mut_ptr() as *mut u8).offset(self.m_remainder as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.m_data.as_mut_ptr() as *mut u8).add(self.m_remainder)` [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: transmute from a reference to a reference [INFO] [stderr] --> src/jenkins/spooky_hash.rs:508:26 [INFO] [stderr] | [INFO] [stderr] 508 | unsafe { mem::transmute::<&[u8], &[Wrapping]>(&self.m_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(&self.m_data as *const [u8; 192] as *const [std::num::Wrapping])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/jenkins/spooky_hash.rs:520:34 [INFO] [stderr] | [INFO] [stderr] 520 | unsafe { mem::transmute::<&[u8], &[Wrapping]>(chunk) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(chunk as *const [u8] as *const [std::num::Wrapping])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/jenkins/spooky_hash.rs:531:34 [INFO] [stderr] | [INFO] [stderr] 531 | unsafe { mem::transmute::<&[u8], &[Wrapping]>(&self.m_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(&self.m_data as *const [u8; 192] as *const [std::num::Wrapping])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:46:32 [INFO] [stderr] | [INFO] [stderr] 46 | self.0 += Wrapping(*byte as u64); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(*byte)` [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/jenkins/mod.rs:271:14 [INFO] [stderr] | [INFO] [stderr] 271 | 1 => s[0] as u32, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(s[0])` [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/jenkins/mod.rs:272:14 [INFO] [stderr] | [INFO] [stderr] 272 | 2 => (s[0] as u32) + ((s[1] as u32) << 8), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[0])` [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/jenkins/mod.rs:272:31 [INFO] [stderr] | [INFO] [stderr] 272 | 2 => (s[0] as u32) + ((s[1] as u32) << 8), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[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/jenkins/mod.rs:273:14 [INFO] [stderr] | [INFO] [stderr] 273 | 3 => (s[0] as u32) + ((s[1] as u32) << 8) + ((s[2] as u32) << 16), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[0])` [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/jenkins/mod.rs:273:31 [INFO] [stderr] | [INFO] [stderr] 273 | 3 => (s[0] as u32) + ((s[1] as u32) << 8) + ((s[2] as u32) << 16), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[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/jenkins/mod.rs:273:54 [INFO] [stderr] | [INFO] [stderr] 273 | 3 => (s[0] as u32) + ((s[1] as u32) << 8) + ((s[2] as u32) << 16), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[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/jenkins/mod.rs:274:14 [INFO] [stderr] | [INFO] [stderr] 274 | 4 => (s[0] as u32) + ((s[1] as u32) << 8) + ((s[2] as u32) << 16) + ((s[3] as u32) << 24), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[0])` [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/jenkins/mod.rs:274:31 [INFO] [stderr] | [INFO] [stderr] 274 | 4 => (s[0] as u32) + ((s[1] as u32) << 8) + ((s[2] as u32) << 16) + ((s[3] as u32) << 24), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[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/jenkins/mod.rs:274:54 [INFO] [stderr] | [INFO] [stderr] 274 | 4 => (s[0] as u32) + ((s[1] as u32) << 8) + ((s[2] as u32) << 16) + ((s[3] as u32) << 24), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[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/jenkins/mod.rs:274:78 [INFO] [stderr] | [INFO] [stderr] 274 | 4 => (s[0] as u32) + ((s[1] as u32) << 8) + ((s[2] as u32) << 16) + ((s[3] as u32) << 24), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(s[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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:287:9 [INFO] [stderr] | [INFO] [stderr] 287 | (self.pc.0 as u64) + ((self.pb.0 as u64) << 32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.pc.0)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:287:31 [INFO] [stderr] | [INFO] [stderr] 287 | (self.pc.0 as u64) + ((self.pb.0 as u64) << 32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.pb.0)` [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 function has a cyclomatic complexity of 52 [INFO] [stderr] --> src/jenkins/mod.rs:291:5 [INFO] [stderr] | [INFO] [stderr] 291 | / fn write(&mut self, bytes: &[u8]) { [INFO] [stderr] 292 | | if bytes.len() == 0 { [INFO] [stderr] 293 | | return; [INFO] [stderr] 294 | | } [INFO] [stderr] ... | [INFO] [stderr] 375 | | self.pc = c; [INFO] [stderr] 376 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/jenkins/mod.rs:292:12 [INFO] [stderr] | [INFO] [stderr] 292 | 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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:324:35 [INFO] [stderr] | [INFO] [stderr] 324 | a += Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 324 | a += Wrapping(u32::from({ [INFO] [stderr] 325 | unsafe { [INFO] [stderr] 326 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 327 | let mut data = 0 as $int_ty; [INFO] [stderr] 328 | ptr::copy_nonoverlapping( [INFO] [stderr] 329 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:325:36 [INFO] [stderr] | [INFO] [stderr] 325 | + Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 325 | + Wrapping(u32::from({ [INFO] [stderr] 326 | unsafe { [INFO] [stderr] 327 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 328 | let mut data = 0 as $int_ty; [INFO] [stderr] 329 | ptr::copy_nonoverlapping( [INFO] [stderr] 330 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:327:35 [INFO] [stderr] | [INFO] [stderr] 327 | b += Wrapping(load_int_le!(chunk, 4, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 327 | b += Wrapping(u32::from({ [INFO] [stderr] 328 | unsafe { [INFO] [stderr] 329 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 330 | let mut data = 0 as $int_ty; [INFO] [stderr] 331 | ptr::copy_nonoverlapping( [INFO] [stderr] 332 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:328:36 [INFO] [stderr] | [INFO] [stderr] 328 | + Wrapping(load_int_le!(chunk, 6, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 328 | + Wrapping(u32::from({ [INFO] [stderr] 329 | unsafe { [INFO] [stderr] 330 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 331 | let mut data = 0 as $int_ty; [INFO] [stderr] 332 | ptr::copy_nonoverlapping( [INFO] [stderr] 333 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:330:35 [INFO] [stderr] | [INFO] [stderr] 330 | c += Wrapping(load_int_le!(chunk, 8, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 330 | c += Wrapping(u32::from({ [INFO] [stderr] 331 | unsafe { [INFO] [stderr] 332 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 333 | let mut data = 0 as $int_ty; [INFO] [stderr] 334 | ptr::copy_nonoverlapping( [INFO] [stderr] 335 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:331:36 [INFO] [stderr] | [INFO] [stderr] 331 | + Wrapping(load_int_le!(chunk, 10, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 331 | + Wrapping(u32::from({ [INFO] [stderr] 332 | unsafe { [INFO] [stderr] 333 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 334 | let mut data = 0 as $int_ty; [INFO] [stderr] 335 | ptr::copy_nonoverlapping( [INFO] [stderr] 336 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:335:35 [INFO] [stderr] | [INFO] [stderr] 335 | a += Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 335 | a += Wrapping(u32::from({ [INFO] [stderr] 336 | unsafe { [INFO] [stderr] 337 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 338 | let mut data = 0 as $int_ty; [INFO] [stderr] 339 | ptr::copy_nonoverlapping( [INFO] [stderr] 340 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:336:36 [INFO] [stderr] | [INFO] [stderr] 336 | + Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 336 | + Wrapping(u32::from({ [INFO] [stderr] 337 | unsafe { [INFO] [stderr] 338 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 339 | let mut data = 0 as $int_ty; [INFO] [stderr] 340 | ptr::copy_nonoverlapping( [INFO] [stderr] 341 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:338:35 [INFO] [stderr] | [INFO] [stderr] 338 | b += Wrapping(load_int_le!(chunk, 4, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 338 | b += Wrapping(u32::from({ [INFO] [stderr] 339 | unsafe { [INFO] [stderr] 340 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 341 | let mut data = 0 as $int_ty; [INFO] [stderr] 342 | ptr::copy_nonoverlapping( [INFO] [stderr] 343 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:339:36 [INFO] [stderr] | [INFO] [stderr] 339 | + Wrapping(load_int_le!(chunk, 6, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 339 | + Wrapping(u32::from({ [INFO] [stderr] 340 | unsafe { [INFO] [stderr] 341 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 342 | let mut data = 0 as $int_ty; [INFO] [stderr] 343 | ptr::copy_nonoverlapping( [INFO] [stderr] 344 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:343:35 [INFO] [stderr] | [INFO] [stderr] 343 | a += Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 343 | a += Wrapping(u32::from({ [INFO] [stderr] 344 | unsafe { [INFO] [stderr] 345 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 346 | let mut data = 0 as $int_ty; [INFO] [stderr] 347 | ptr::copy_nonoverlapping( [INFO] [stderr] 348 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/jenkins/mod.rs:344:36 [INFO] [stderr] | [INFO] [stderr] 344 | + Wrapping(load_int_le!(chunk, 0, u16) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 344 | + Wrapping(u32::from({ [INFO] [stderr] 345 | unsafe { [INFO] [stderr] 346 | debug_assert!($i + mem::size_of::<$int_ty>() <= $buf.len()); [INFO] [stderr] 347 | let mut data = 0 as $int_ty; [INFO] [stderr] 348 | ptr::copy_nonoverlapping( [INFO] [stderr] 349 | $buf.get_unchecked($i), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/pigeon.rs:85:14 [INFO] [stderr] | [INFO] [stderr] 85 | let xh = perfect_shuffle_32(x.wrapping_shr(32) as u32) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(perfect_shuffle_32(x.wrapping_shr(32) as u32))` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/pigeon.rs:86:14 [INFO] [stderr] | [INFO] [stderr] 86 | let xl = perfect_shuffle_32(x as u32) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(perfect_shuffle_32(x as u32))` [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/pigeon.rs:105:47 [INFO] [stderr] | [INFO] [stderr] 105 | let shuffled = perfect_shuffle_64((*byte as u64).wrapping_mul(MAGIC)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(*byte)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/oz.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | (self.0).0 as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from((self.0).0)` [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/oz.rs:64:56 [INFO] [stderr] | [INFO] [stderr] 64 | self.0 = self.0 + (self.0 << 5) ^ Wrapping(*byte as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(*byte)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/oz.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | (self.0).0 as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from((self.0).0)` [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/oz.rs:121:31 [INFO] [stderr] | [INFO] [stderr] 121 | self.0 = Wrapping(*byte as u32) + (self.0 << 6) + (self.0 << 16) - self.0; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(*byte)` [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/oz.rs:177:32 [INFO] [stderr] | [INFO] [stderr] 177 | self.0 += Wrapping(*byte as u64); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(*byte)` [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:376:51 [INFO] [stderr] | [INFO] [stderr] 376 | self.0 = self.0.wrapping_shl(8) + (*byte as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(*byte)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:421:21 [INFO] [stderr] | [INFO] [stderr] 421 | self.0 as u64 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(self.0)` [INFO] [stderr] ... [INFO] [stderr] 435 | fnv1a!(FNV1aHasher32, u32, 16777619, 0x811c9dc5); [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_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:426:25 [INFO] [stderr] | [INFO] [stderr] 426 | self.0 = self.0 ^ (*byte as $size); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.0 ^= (*byte as $size)` [INFO] [stderr] ... [INFO] [stderr] 435 | fnv1a!(FNV1aHasher32, u32, 16777619, 0x811c9dc5); [INFO] [stderr] | ------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:426:43 [INFO] [stderr] | [INFO] [stderr] 426 | self.0 = self.0 ^ (*byte as $size); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(*byte)` [INFO] [stderr] ... [INFO] [stderr] 435 | fnv1a!(FNV1aHasher32, u32, 16777619, 0x811c9dc5); [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_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:426:25 [INFO] [stderr] | [INFO] [stderr] 426 | self.0 = self.0 ^ (*byte as $size); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.0 ^= (*byte as $size)` [INFO] [stderr] ... [INFO] [stderr] 436 | fnv1a!(FNV1aHasher64, u64, 1099511628211, 0xcbf29ce484222325); [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#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:426:43 [INFO] [stderr] | [INFO] [stderr] 426 | self.0 = self.0 ^ (*byte as $size); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(*byte)` [INFO] [stderr] ... [INFO] [stderr] 436 | fnv1a!(FNV1aHasher64, u64, 1099511628211, 0xcbf29ce484222325); [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_lossless [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> examples/combinations/mod.rs:28:67 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn each_combination(values: &[T], r: usize, mut fun: F) -> () [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> examples/combinations/mod.rs:83:74 [INFO] [stderr] | [INFO] [stderr] 83 | pub fn each_combination_ref<'v, T, F>(values: &'v [T], r: usize, fun: F) -> () [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> examples/anagrams-hashmap.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | return t.iter().map(|&ch| ch as u8).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `t.iter().map(|&ch| ch as u8).collect()` [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] --> examples/anagrams-hashmap.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | return map; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `map` [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] --> examples/anagrams-hashmap.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | return set; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `set` [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] error[E0554]: #![feature] may not be used on the stable release channel [INFO] [stderr] --> benches/benches.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(test)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0554`. [INFO] [stderr] error: Could not compile `hashers`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: called `cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stderr] --> examples/combinations/mod.rs:39:35 [INFO] [stderr] | [INFO] [stderr] 39 | let mut combination: Vec = values[0..r].iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_cloned_collect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> examples/anagrams-hashmap.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | s.split(" ").map(|w| w.to_string()).collect() [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> examples/anagrams-hashmap.rs:57:14 [INFO] [stderr] | [INFO] [stderr] 57 | for i in 0..letters.len() + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: use: `0..=letters.len()` [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: it looks like you're manually copying between slices [INFO] [stderr] --> examples/anagrams-hashmap.rs:61:22 [INFO] [stderr] | [INFO] [stderr] 61 | for j in 0..combo.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try replacing the loop by: `key[..combo.len()].clone_from_slice(&combo[..])` [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> examples/anagrams-hashmap.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | / match dictionary.get(&key) { [INFO] [stderr] 65 | | Some(val) => { [INFO] [stderr] 66 | | for word in val.iter() { [INFO] [stderr] 67 | | set.insert(word.clone()); [INFO] [stderr] ... | [INFO] [stderr] 70 | | None => {} [INFO] [stderr] 71 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 64 | if let Some(val) = dictionary.get(&key) { [INFO] [stderr] 65 | for word in val.iter() { [INFO] [stderr] 66 | set.insert(word.clone()); [INFO] [stderr] 67 | } [INFO] [stderr] 68 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> examples/anagrams-hashmap.rs:94:33 [INFO] [stderr] | [INFO] [stderr] 94 | let time = (secs as f64) + ((micros as f64) / 1_000_000.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(micros)` [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: unneeded return statement [INFO] [stderr] --> examples/samples/mod.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / return BufReader::new(file) [INFO] [stderr] 44 | | .lines() [INFO] [stderr] 45 | | .map(|l| l.expect("bad read")) [INFO] [stderr] 46 | | .map(|l| l.as_bytes().to_vec()) [INFO] [stderr] 47 | | .collect(); [INFO] [stderr] | |___________________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 43 | BufReader::new(file) [INFO] [stderr] 44 | .lines() [INFO] [stderr] 45 | .map(|l| l.expect("bad read")) [INFO] [stderr] 46 | .map(|l| l.as_bytes().to_vec()) [INFO] [stderr] 47 | .collect() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> examples/samples/mod.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / return BufReader::new(file) [INFO] [stderr] 44 | | .lines() [INFO] [stderr] 45 | | .map(|l| l.expect("bad read")) [INFO] [stderr] 46 | | .map(|l| l.as_bytes().to_vec()) [INFO] [stderr] 47 | | .collect(); [INFO] [stderr] | |___________________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 43 | BufReader::new(file) [INFO] [stderr] 44 | .lines() [INFO] [stderr] 45 | .map(|l| l.expect("bad read")) [INFO] [stderr] 46 | .map(|l| l.as_bytes().to_vec()) [INFO] [stderr] 47 | .collect() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "d583c6601b12bbf54e87299dfe8d9e02264c57912f24dbcca19ce0201e787266"` [INFO] running `"docker" "rm" "-f" "d583c6601b12bbf54e87299dfe8d9e02264c57912f24dbcca19ce0201e787266"` [INFO] [stdout] d583c6601b12bbf54e87299dfe8d9e02264c57912f24dbcca19ce0201e787266