[INFO] crate rsnappy 0.1.0 is already in cache [INFO] extracting crate rsnappy 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/rsnappy/0.1.0 [INFO] extracting crate rsnappy 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rsnappy/0.1.0 [INFO] validating manifest of rsnappy-0.1.0 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 rsnappy-0.1.0 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 rsnappy-0.1.0 [INFO] finished frobbing rsnappy-0.1.0 [INFO] frobbed toml for rsnappy-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/rsnappy/0.1.0/Cargo.toml [INFO] started frobbing rsnappy-0.1.0 [INFO] finished frobbing rsnappy-0.1.0 [INFO] frobbed toml for rsnappy-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rsnappy/0.1.0/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 rsnappy-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/rsnappy/0.1.0:/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] cbe7f58e99b04e7ca02e41cb6f54305bdd67ffd67c21e6c93a8d38ee33c522e8 [INFO] running `"docker" "start" "-a" "cbe7f58e99b04e7ca02e41cb6f54305bdd67ffd67c21e6c93a8d38ee33c522e8"` [INFO] [stderr] Compiling rsnappy v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/decompress.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | reader: reader, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/decompress.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | reader: reader, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/decompress.rs:184:9 [INFO] [stderr] | [INFO] [stderr] 184 | return r; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `r` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/decompress.rs:201:23 [INFO] [stderr] | [INFO] [stderr] 201 | const MASKS: &'static [u32] = &[0, 0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0xFFFFFFFF]; [INFO] [stderr] | -^^^^^^^------ help: consider removing `'static`: `&[u32]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/decompress.rs:201:44 [INFO] [stderr] | [INFO] [stderr] 201 | const MASKS: &'static [u32] = &[0, 0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0xFFFFFFFF]; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_00FF` [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/decompress.rs:201:56 [INFO] [stderr] | [INFO] [stderr] 201 | const MASKS: &'static [u32] = &[0, 0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0xFFFFFFFF]; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/decompress.rs:201:68 [INFO] [stderr] | [INFO] [stderr] 201 | const MASKS: &'static [u32] = &[0, 0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0xFFFFFFFF]; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00FF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/decompress.rs:201:80 [INFO] [stderr] | [INFO] [stderr] 201 | const MASKS: &'static [u32] = &[0, 0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0xFFFFFFFF]; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/decompress.rs:210:9 [INFO] [stderr] | [INFO] [stderr] 210 | return u16::from_le(x); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `u16::from_le(x)` [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: unnecessary parentheses around `for` head expression [INFO] [stderr] --> src/decompress.rs:269:22 [INFO] [stderr] | [INFO] [stderr] 269 | for i in (0..len as usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/decompress.rs:184:9 [INFO] [stderr] | [INFO] [stderr] 184 | return r; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `r` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/decompress.rs:201:23 [INFO] [stderr] | [INFO] [stderr] 201 | const MASKS: &'static [u32] = &[0, 0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0xFFFFFFFF]; [INFO] [stderr] | -^^^^^^^------ help: consider removing `'static`: `&[u32]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/decompress.rs:201:44 [INFO] [stderr] | [INFO] [stderr] 201 | const MASKS: &'static [u32] = &[0, 0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0xFFFFFFFF]; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_00FF` [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/decompress.rs:201:56 [INFO] [stderr] | [INFO] [stderr] 201 | const MASKS: &'static [u32] = &[0, 0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0xFFFFFFFF]; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/decompress.rs:201:68 [INFO] [stderr] | [INFO] [stderr] 201 | const MASKS: &'static [u32] = &[0, 0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0xFFFFFFFF]; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00FF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/decompress.rs:201:80 [INFO] [stderr] | [INFO] [stderr] 201 | const MASKS: &'static [u32] = &[0, 0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0xFFFFFFFF]; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/decompress.rs:210:9 [INFO] [stderr] | [INFO] [stderr] 210 | return u16::from_le(x); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `u16::from_le(x)` [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: unnecessary parentheses around `for` head expression [INFO] [stderr] --> src/decompress.rs:269:22 [INFO] [stderr] | [INFO] [stderr] 269 | for i in (0..len as usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compress.rs:139:13 [INFO] [stderr] | [INFO] [stderr] 139 | return Some(queue); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(queue)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compress.rs:144:13 [INFO] [stderr] | [INFO] [stderr] 144 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/compress.rs:158:27 [INFO] [stderr] | [INFO] [stderr] 158 | (key.wrapping_mul(0x27d4eb2d) >> self.range_shift) as usize [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x27d4_eb2d` [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/decompress.rs:293:83 [INFO] [stderr] | [INFO] [stderr] 293 | assert_eq!(read_uncompressed_length(&mut Cursor::new(&inp[..])).unwrap(), 2097150); [INFO] [stderr] | ^^^^^^^ help: consider: `2_097_150` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compress.rs:139:13 [INFO] [stderr] | [INFO] [stderr] 139 | return Some(queue); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(queue)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compress.rs:144:13 [INFO] [stderr] | [INFO] [stderr] 144 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/compress.rs:158:27 [INFO] [stderr] | [INFO] [stderr] 158 | (key.wrapping_mul(0x27d4eb2d) >> self.range_shift) as usize [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x27d4_eb2d` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compress.rs:395:5 [INFO] [stderr] | [INFO] [stderr] 395 | return matched; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `matched` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compress.rs:395:5 [INFO] [stderr] | [INFO] [stderr] 395 | return matched; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `matched` [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/compress.rs:475:30 [INFO] [stderr] | [INFO] [stderr] 475 | write_varint(&mut v, 2097150).unwrap(); [INFO] [stderr] | ^^^^^^^ help: consider: `2_097_150` [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: digits grouped inconsistently by underscores [INFO] [stderr] --> src/compress.rs:484:28 [INFO] [stderr] | [INFO] [stderr] 484 | assert_eq!(out[0], 0b000110_00); [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b0001_1000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/compress.rs:493:33 [INFO] [stderr] | [INFO] [stderr] 493 | assert_eq!(&out[..2], &[0b111100_00, (literal.len() - 1) as u8]); [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1111_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/compress.rs:503:33 [INFO] [stderr] | [INFO] [stderr] 503 | assert_eq!(&out[..5], &[0b111111_00, 0x01, 0x00, 0x00, 0x01]); [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1111_1100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/compress.rs:511:32 [INFO] [stderr] | [INFO] [stderr] 511 | assert_eq!(&out[..], &[0b100111_10, 0x60, 0xEA]); [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1001_1110` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [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: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decompress.rs:54:30 [INFO] [stderr] | [INFO] [stderr] 54 | (b.as_ptr(), b.as_ptr().offset(b.len() as isize)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.as_ptr().add(b.len())` [INFO] [stderr] ... [INFO] [stderr] 78 | let (b, be) = read_new_buffer!(self); [INFO] [stderr] | ---------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decompress.rs:54:30 [INFO] [stderr] | [INFO] [stderr] 54 | (b.as_ptr(), b.as_ptr().offset(b.len() as isize)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.as_ptr().add(b.len())` [INFO] [stderr] ... [INFO] [stderr] 95 | let (newbuf, newbuf_end) = read_new_buffer!(self, [INFO] [stderr] | ________________________________________________- [INFO] [stderr] 96 | | return Err(FormatError("EOF while reading tag"))); [INFO] [stderr] | |_____________________________________________________________________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decompress.rs:99:54 [INFO] [stderr] | [INFO] [stderr] 99 | ptr::copy_nonoverlapping(newbuf, self.tmp.as_mut_ptr().offset(buf_len as isize), to_read); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.tmp.as_mut_ptr().add(buf_len)` [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/decompress.rs:104:32 [INFO] [stderr] | [INFO] [stderr] 104 | self.buf_end = self.buf.offset(tag_size as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buf.add(tag_size)` [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/decompress.rs:110:32 [INFO] [stderr] | [INFO] [stderr] 110 | self.buf_end = self.buf.offset(buf_len as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buf.add(buf_len)` [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: bit mask could be simplified with a call to `trailing_zeros` [INFO] [stderr] --> src/decompress.rs:123:16 [INFO] [stderr] | [INFO] [stderr] 123 | if c & 0x03 == 0 { // literal [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `c.trailing_zeros() >= 2` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::verbose_bit_mask)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/decompress.rs:125:21 [INFO] [stderr] | [INFO] [stderr] 125 | ((c >> 2) as u32) + 1 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(c >> 2)` [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: length comparison to zero [INFO] [stderr] --> src/decompress.rs:141:34 [INFO] [stderr] | [INFO] [stderr] 141 | Ok(b) if b.len() == 0 => { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `b.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: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decompress.rs:146:53 [INFO] [stderr] | [INFO] [stderr] 146 | self.buf_end = unsafe { b.as_ptr().offset(b.len() as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.as_ptr().add(b.len())` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/decompress.rs:158:35 [INFO] [stderr] | [INFO] [stderr] 158 | let offset = (((c & 0xE0) as u32) << 3) | self.read(1)[0] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(c & 0xE0)` [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/decompress.rs:158:63 [INFO] [stderr] | [INFO] [stderr] 158 | let offset = (((c & 0xE0) as u32) << 3) | self.read(1)[0] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.read(1)[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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/decompress.rs:162:34 [INFO] [stderr] | [INFO] [stderr] 162 | let offset = self.read_u16_le() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.read_u16_le())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decompress.rs:189:29 [INFO] [stderr] | [INFO] [stderr] 189 | self.buf = unsafe { self.buf.offset(n as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buf.add(n)` [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] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const u32`) [INFO] [stderr] --> src/decompress.rs:202:17 [INFO] [stderr] | [INFO] [stderr] 202 | let p = self.buf as *const u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const u16`) [INFO] [stderr] --> src/decompress.rs:208:17 [INFO] [stderr] | [INFO] [stderr] 208 | let p = self.read(2).as_ptr() as *const u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/decompress.rs:230:20 [INFO] [stderr] | [INFO] [stderr] 230 | Ok(buf) if buf.len() == 0 => return Err(FormatError("premature EOF")), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `buf.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/decompress.rs:234:27 [INFO] [stderr] | [INFO] [stderr] 234 | result |= ((c & 0x7F) as u32) << shift; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(c & 0x7F)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const u64`) [INFO] [stderr] --> src/decompress.rs:261:27 [INFO] [stderr] | [INFO] [stderr] 261 | let src = self.as_ptr().offset(start as isize) as *const u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decompress.rs:261:27 [INFO] [stderr] | [INFO] [stderr] 261 | let src = self.as_ptr().offset(start as isize) as *const u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.as_ptr().add(start)` [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] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut u64`) [INFO] [stderr] --> src/decompress.rs:262:27 [INFO] [stderr] | [INFO] [stderr] 262 | let dst = self.as_mut_ptr().offset(self.len() as isize) as *mut u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decompress.rs:262:27 [INFO] [stderr] | [INFO] [stderr] 262 | let dst = self.as_mut_ptr().offset(self.len() as isize) as *mut u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.as_mut_ptr().add(self.len())` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/compress.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | / fn iter<'a>(&'a self) -> Iter<'a, u16> { [INFO] [stderr] 72 | | self.queue[..self.len()].iter() [INFO] [stderr] 73 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] error: index out of bounds: the len is 3 but the index is 3 [INFO] [stderr] --> src/compress.rs:83:17 [INFO] [stderr] | [INFO] [stderr] 83 | self.queue[3] = self.queue[2]; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(const_err)] on by default [INFO] [stderr] [INFO] [stderr] error: index out of bounds: the len is 3 but the index is 3 [INFO] [stderr] --> src/compress.rs:87:33 [INFO] [stderr] | [INFO] [stderr] 87 | self.queue[4] = self.queue[3]; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: index out of bounds: the len is 3 but the index is 4 [INFO] [stderr] --> src/compress.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | self.queue[4] = self.queue[3]; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: index out of bounds: the len is 3 but the index is 3 [INFO] [stderr] --> src/compress.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | self.queue[3] = self.queue[2]; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/compress.rs:102:12 [INFO] [stderr] | [INFO] [stderr] 102 | fn len(&self) -> usize { self.len as usize } [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const u32`) [INFO] [stderr] --> src/compress.rs:134:38 [INFO] [stderr] | [INFO] [stderr] 134 | let key = unsafe { ptr::read(key.as_ptr() as *const u32) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/compress.rs:215:47 [INFO] [stderr] | [INFO] [stderr] 215 | debug_assert!(inp.available().unwrap() <= ::std::u32::MAX as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(::std::u32::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/compress.rs:218:34 [INFO] [stderr] | [INFO] [stderr] 218 | let max_block_len = cmp::min(options.block_size as u32, uncompressed_length); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(options.block_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/compress.rs:225:26 [INFO] [stderr] | [INFO] [stderr] 225 | Ok(b) if b.len() == 0 => return Ok(()), [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `b.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/compress.rs:316:9 [INFO] [stderr] | [INFO] [stderr] 316 | try!(out.write(&[tag, low_len])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/compress.rs:320:9 [INFO] [stderr] | [INFO] [stderr] 320 | try!(out.write(&[tag])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/compress.rs:332:9 [INFO] [stderr] | [INFO] [stderr] 332 | try!(out.write(&[tag])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/compress.rs:345:9 [INFO] [stderr] | [INFO] [stderr] 345 | try!(out.write(&ds[..count + 1])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/compress.rs:345:28 [INFO] [stderr] | [INFO] [stderr] 345 | try!(out.write(&ds[..count + 1])); [INFO] [stderr] | ^^^^^^^^^^^ help: use: `..=count` [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: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/compress.rs:357:24 [INFO] [stderr] | [INFO] [stderr] 357 | let s2_limit = block.as_ptr().offset(block.len() as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `block.as_ptr().add(block.len())` [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] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const u64`) [INFO] [stderr] --> src/compress.rs:368:55 [INFO] [stderr] | [INFO] [stderr] 368 | unsafe fn load64(p: *const u8) -> u64 { ptr::read(p as *const u64) } [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/compress.rs:424:5 [INFO] [stderr] | [INFO] [stderr] 424 | try!(out.write(s)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/compress.rs:457:5 [INFO] [stderr] | [INFO] [stderr] 457 | try!(out.write(&ds[..nbytes])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/zero_array.rs:60:24 [INFO] [stderr] | [INFO] [stderr] 60 | let p = calloc(size as size_t, mem::size_of::() as size_t); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to 16 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rsnappy`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decompress.rs:54:30 [INFO] [stderr] | [INFO] [stderr] 54 | (b.as_ptr(), b.as_ptr().offset(b.len() as isize)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.as_ptr().add(b.len())` [INFO] [stderr] ... [INFO] [stderr] 78 | let (b, be) = read_new_buffer!(self); [INFO] [stderr] | ---------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decompress.rs:54:30 [INFO] [stderr] | [INFO] [stderr] 54 | (b.as_ptr(), b.as_ptr().offset(b.len() as isize)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.as_ptr().add(b.len())` [INFO] [stderr] ... [INFO] [stderr] 95 | let (newbuf, newbuf_end) = read_new_buffer!(self, [INFO] [stderr] | ________________________________________________- [INFO] [stderr] 96 | | return Err(FormatError("EOF while reading tag"))); [INFO] [stderr] | |_____________________________________________________________________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decompress.rs:99:54 [INFO] [stderr] | [INFO] [stderr] 99 | ptr::copy_nonoverlapping(newbuf, self.tmp.as_mut_ptr().offset(buf_len as isize), to_read); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.tmp.as_mut_ptr().add(buf_len)` [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/decompress.rs:104:32 [INFO] [stderr] | [INFO] [stderr] 104 | self.buf_end = self.buf.offset(tag_size as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buf.add(tag_size)` [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/decompress.rs:110:32 [INFO] [stderr] | [INFO] [stderr] 110 | self.buf_end = self.buf.offset(buf_len as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buf.add(buf_len)` [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: bit mask could be simplified with a call to `trailing_zeros` [INFO] [stderr] --> src/decompress.rs:123:16 [INFO] [stderr] | [INFO] [stderr] 123 | if c & 0x03 == 0 { // literal [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `c.trailing_zeros() >= 2` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::verbose_bit_mask)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/decompress.rs:125:21 [INFO] [stderr] | [INFO] [stderr] 125 | ((c >> 2) as u32) + 1 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(c >> 2)` [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: length comparison to zero [INFO] [stderr] --> src/decompress.rs:141:34 [INFO] [stderr] | [INFO] [stderr] 141 | Ok(b) if b.len() == 0 => { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `b.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: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decompress.rs:146:53 [INFO] [stderr] | [INFO] [stderr] 146 | self.buf_end = unsafe { b.as_ptr().offset(b.len() as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.as_ptr().add(b.len())` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/decompress.rs:158:35 [INFO] [stderr] | [INFO] [stderr] 158 | let offset = (((c & 0xE0) as u32) << 3) | self.read(1)[0] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(c & 0xE0)` [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/decompress.rs:158:63 [INFO] [stderr] | [INFO] [stderr] 158 | let offset = (((c & 0xE0) as u32) << 3) | self.read(1)[0] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.read(1)[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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/decompress.rs:162:34 [INFO] [stderr] | [INFO] [stderr] 162 | let offset = self.read_u16_le() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.read_u16_le())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decompress.rs:189:29 [INFO] [stderr] | [INFO] [stderr] 189 | self.buf = unsafe { self.buf.offset(n as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buf.add(n)` [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] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const u32`) [INFO] [stderr] --> src/decompress.rs:202:17 [INFO] [stderr] | [INFO] [stderr] 202 | let p = self.buf as *const u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const u16`) [INFO] [stderr] --> src/decompress.rs:208:17 [INFO] [stderr] | [INFO] [stderr] 208 | let p = self.read(2).as_ptr() as *const u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/decompress.rs:230:20 [INFO] [stderr] | [INFO] [stderr] 230 | Ok(buf) if buf.len() == 0 => return Err(FormatError("premature EOF")), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `buf.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/decompress.rs:234:27 [INFO] [stderr] | [INFO] [stderr] 234 | result |= ((c & 0x7F) as u32) << shift; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(c & 0x7F)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const u64`) [INFO] [stderr] --> src/decompress.rs:261:27 [INFO] [stderr] | [INFO] [stderr] 261 | let src = self.as_ptr().offset(start as isize) as *const u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decompress.rs:261:27 [INFO] [stderr] | [INFO] [stderr] 261 | let src = self.as_ptr().offset(start as isize) as *const u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.as_ptr().add(start)` [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] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut u64`) [INFO] [stderr] --> src/decompress.rs:262:27 [INFO] [stderr] | [INFO] [stderr] 262 | let dst = self.as_mut_ptr().offset(self.len() as isize) as *mut u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decompress.rs:262:27 [INFO] [stderr] | [INFO] [stderr] 262 | let dst = self.as_mut_ptr().offset(self.len() as isize) as *mut u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.as_mut_ptr().add(self.len())` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/compress.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | / fn iter<'a>(&'a self) -> Iter<'a, u16> { [INFO] [stderr] 72 | | self.queue[..self.len()].iter() [INFO] [stderr] 73 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] error: index out of bounds: the len is 3 but the index is 3 [INFO] [stderr] --> src/compress.rs:83:17 [INFO] [stderr] | [INFO] [stderr] 83 | self.queue[3] = self.queue[2]; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(const_err)] on by default [INFO] [stderr] [INFO] [stderr] error: index out of bounds: the len is 3 but the index is 3 [INFO] [stderr] --> src/compress.rs:87:33 [INFO] [stderr] | [INFO] [stderr] 87 | self.queue[4] = self.queue[3]; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: index out of bounds: the len is 3 but the index is 4 [INFO] [stderr] --> src/compress.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | self.queue[4] = self.queue[3]; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: index out of bounds: the len is 3 but the index is 3 [INFO] [stderr] --> src/compress.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | self.queue[3] = self.queue[2]; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/compress.rs:102:12 [INFO] [stderr] | [INFO] [stderr] 102 | fn len(&self) -> usize { self.len as usize } [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const u32`) [INFO] [stderr] --> src/compress.rs:134:38 [INFO] [stderr] | [INFO] [stderr] 134 | let key = unsafe { ptr::read(key.as_ptr() as *const u32) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/compress.rs:215:47 [INFO] [stderr] | [INFO] [stderr] 215 | debug_assert!(inp.available().unwrap() <= ::std::u32::MAX as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(::std::u32::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/compress.rs:218:34 [INFO] [stderr] | [INFO] [stderr] 218 | let max_block_len = cmp::min(options.block_size as u32, uncompressed_length); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(options.block_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/compress.rs:225:26 [INFO] [stderr] | [INFO] [stderr] 225 | Ok(b) if b.len() == 0 => return Ok(()), [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `b.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/compress.rs:316:9 [INFO] [stderr] | [INFO] [stderr] 316 | try!(out.write(&[tag, low_len])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/compress.rs:320:9 [INFO] [stderr] | [INFO] [stderr] 320 | try!(out.write(&[tag])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/compress.rs:332:9 [INFO] [stderr] | [INFO] [stderr] 332 | try!(out.write(&[tag])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/compress.rs:345:9 [INFO] [stderr] | [INFO] [stderr] 345 | try!(out.write(&ds[..count + 1])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/compress.rs:345:28 [INFO] [stderr] | [INFO] [stderr] 345 | try!(out.write(&ds[..count + 1])); [INFO] [stderr] | ^^^^^^^^^^^ help: use: `..=count` [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: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/compress.rs:357:24 [INFO] [stderr] | [INFO] [stderr] 357 | let s2_limit = block.as_ptr().offset(block.len() as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `block.as_ptr().add(block.len())` [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] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const u64`) [INFO] [stderr] --> src/compress.rs:368:55 [INFO] [stderr] | [INFO] [stderr] 368 | unsafe fn load64(p: *const u8) -> u64 { ptr::read(p as *const u64) } [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/compress.rs:424:5 [INFO] [stderr] | [INFO] [stderr] 424 | try!(out.write(s)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/compress.rs:457:5 [INFO] [stderr] | [INFO] [stderr] 457 | try!(out.write(&ds[..nbytes])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/zero_array.rs:60:24 [INFO] [stderr] | [INFO] [stderr] 60 | let p = calloc(size as size_t, mem::size_of::() as size_t); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to 16 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rsnappy`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "cbe7f58e99b04e7ca02e41cb6f54305bdd67ffd67c21e6c93a8d38ee33c522e8"` [INFO] running `"docker" "rm" "-f" "cbe7f58e99b04e7ca02e41cb6f54305bdd67ffd67c21e6c93a8d38ee33c522e8"` [INFO] [stdout] cbe7f58e99b04e7ca02e41cb6f54305bdd67ffd67c21e6c93a8d38ee33c522e8