[INFO] crate rar 0.2.0 is already in cache [INFO] extracting crate rar 0.2.0 into work/ex/clippy-test-run/sources/stable/reg/rar/0.2.0 [INFO] extracting crate rar 0.2.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rar/0.2.0 [INFO] validating manifest of rar-0.2.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 rar-0.2.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 rar-0.2.0 [INFO] finished frobbing rar-0.2.0 [INFO] frobbed toml for rar-0.2.0 written to work/ex/clippy-test-run/sources/stable/reg/rar/0.2.0/Cargo.toml [INFO] started frobbing rar-0.2.0 [INFO] finished frobbing rar-0.2.0 [INFO] frobbed toml for rar-0.2.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rar/0.2.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 rar-0.2.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/rar/0.2.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] 0edfe0d8d8c2154e65774ebca6469b3ac5b88893caf389d2a66e04b6b9e6c712 [INFO] running `"docker" "start" "-a" "0edfe0d8d8c2154e65774ebca6469b3ac5b88893caf389d2a66e04b6b9e6c712"` [INFO] [stderr] Checking rar v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/file_block.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | compression: compression, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `compression` [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/file_block.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | compression: compression, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `compression` [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: long literal lacking separators [INFO] [stderr] --> src/extra_block.rs:164:26 [INFO] [stderr] | [INFO] [stderr] 164 | let t = (t / 10000000) - 11644473600; [INFO] [stderr] | ^^^^^^^^ help: consider: `10_000_000` [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/extra_block.rs:164:38 [INFO] [stderr] | [INFO] [stderr] 164 | let t = (t / 10000000) - 11644473600; [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `11_644_473_600` [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/util.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | return [b1, b2, b3, b4, b5, b6, b7, b8]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `[b1, b2, b3, b4, b5, b6, b7, b8]` [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: long literal lacking separators [INFO] [stderr] --> src/head_block.rs:61:32 [INFO] [stderr] | [INFO] [stderr] 61 | let mut h = HeadBlock::new(4091642603, 11, Typ::MainArchive, flags); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `4_091_642_603` [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/head_block.rs:159:33 [INFO] [stderr] | [INFO] [stderr] 159 | let header = HeadBlock::new(4091642603, 11, Typ::MainArchive, flags); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `4_091_642_603` [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/archive_block.rs:68:30 [INFO] [stderr] | [INFO] [stderr] 68 | head: HeadBlock::new(4091642603, 11, ::head_block::Typ::MainArchive, flags), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `4_091_642_603` [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/file_block.rs:142:30 [INFO] [stderr] | [INFO] [stderr] 142 | head: HeadBlock::new(2349697250, 36, ::head_block::Typ::File, flags), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_349_697_250` [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/file_block.rs:147:19 [INFO] [stderr] | [INFO] [stderr] 147 | data_crc: 2482150091, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_482_150_091` [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/file_block.rs:193:30 [INFO] [stderr] | [INFO] [stderr] 193 | head: HeadBlock::new(1002517598, 43, ::head_block::Typ::File, flags), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_002_517_598` [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/file_block.rs:195:24 [INFO] [stderr] | [INFO] [stderr] 195 | unpacked_size: 2149083, [INFO] [stderr] | ^^^^^^^ help: consider: `2_149_083` [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/file_block.rs:198:19 [INFO] [stderr] | [INFO] [stderr] 198 | data_crc: 2494669946, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_494_669_946` [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/file_block.rs:206:31 [INFO] [stderr] | [INFO] [stderr] 206 | arc.head.data_area_size = 2149083; [INFO] [stderr] | ^^^^^^^ help: consider: `2_149_083` [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/file_block.rs:326:40 [INFO] [stderr] | [INFO] [stderr] 326 | assert_eq!(data.get_directonary(), 131072); [INFO] [stderr] | ^^^^^^ help: consider: `131_072` [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/file_block.rs:328:40 [INFO] [stderr] | [INFO] [stderr] 328 | assert_eq!(data.get_directonary(), 4194304); [INFO] [stderr] | ^^^^^^^ help: consider: `4_194_304` [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/extra_block.rs:164:26 [INFO] [stderr] | [INFO] [stderr] 164 | let t = (t / 10000000) - 11644473600; [INFO] [stderr] | ^^^^^^^^ help: consider: `10_000_000` [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/extra_block.rs:164:38 [INFO] [stderr] | [INFO] [stderr] 164 | let t = (t / 10000000) - 11644473600; [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `11_644_473_600` [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/end_block.rs:43:30 [INFO] [stderr] | [INFO] [stderr] 43 | head: HeadBlock::new(494360145, 3, ::head_block::Typ::EndArchive, flags), [INFO] [stderr] | ^^^^^^^^^ help: consider: `494_360_145` [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/util.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | return [b1, b2, b3, b4, b5, b6, b7, b8]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `[b1, b2, b3, b4, b5, b6, b7, b8]` [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: long literal lacking separators [INFO] [stderr] --> src/util.rs:38:26 [INFO] [stderr] | [INFO] [stderr] 38 | assert_eq!(split_u64(0x00000000), [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:39:26 [INFO] [stderr] | [INFO] [stderr] 39 | assert_eq!(split_u64(0x000000FF), [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF]); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_00FF` [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/util.rs:40:26 [INFO] [stderr] | [INFO] [stderr] 40 | assert_eq!(split_u64(0x0000FF00), [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00]); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_FF00` [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/util.rs:41:26 [INFO] [stderr] | [INFO] [stderr] 41 | assert_eq!(split_u64(0x00FF0000), [0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00]); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00FF_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:42:26 [INFO] [stderr] | [INFO] [stderr] 42 | assert_eq!(split_u64(0xFF000000), [0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00]); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFF00_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:43:26 [INFO] [stderr] | [INFO] [stderr] 43 | assert_eq!(split_u64(0x0F0F0F0F), [0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x0F]); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0F0F_0F0F` [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:180:52 [INFO] [stderr] | [INFO] [stderr] 180 | assert_eq!(archive.files[0].unpacked_size, 2149083); [INFO] [stderr] | ^^^^^^^ help: consider: `2_149_083` [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:208:52 [INFO] [stderr] | [INFO] [stderr] 208 | assert_eq!(archive.files[0].unpacked_size, 2149083); [INFO] [stderr] | ^^^^^^^ help: consider: `2_149_083` [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:234:52 [INFO] [stderr] | [INFO] [stderr] 234 | assert_eq!(archive.files[0].unpacked_size, 2149083); [INFO] [stderr] | ^^^^^^^ help: consider: `2_149_083` [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/file_block.rs:271:5 [INFO] [stderr] | [INFO] [stderr] 271 | / fn parse(inp: &[u8]) -> nom::IResult<&[u8], Compression> { [INFO] [stderr] 272 | | // get the vint [INFO] [stderr] 273 | | let (inp, raw) = vint(inp)?; [INFO] [stderr] 274 | | [INFO] [stderr] ... | [INFO] [stderr] 292 | | Ok((inp, c.1)) [INFO] [stderr] 293 | | } [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: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/file_block.rs:297:15 [INFO] [stderr] | [INFO] [stderr] 297 | 128 * (self.dictonary as f32).exp2() as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(self.dictonary)` [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/extra_block.rs:27:15 [INFO] [stderr] | [INFO] [stderr] 27 | while inp.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!inp.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/extra_block.rs:160:55 [INFO] [stderr] | [INFO] [stderr] 160 | let t = NaiveDateTime::from_timestamp_opt(t as i64, 0); [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(t)` [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/rar_reader.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | / let mut len = buf.len(); [INFO] [stderr] 43 | | [INFO] [stderr] 44 | | // when the buffer is bigger than the need to seek [INFO] [stderr] 45 | | // we shrink the buffer. Otherwiese we would seek to much. [INFO] [stderr] 46 | | if buf.len() > amt as usize { [INFO] [stderr] 47 | | len = amt as usize; [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let len = if buf.len() > amt as usize { amt as usize } else { buf.len() };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/file_writer.rs:38:12 [INFO] [stderr] | [INFO] [stderr] 38 | if len <= 0 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using len == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/extractor.rs:34:12 [INFO] [stderr] | [INFO] [stderr] 34 | if new_byte_count <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using new_byte_count == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | let x = x.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/vint.rs:12:43 [INFO] [stderr] | [INFO] [stderr] 12 | let coll = v.1.iter().map(|x| split_vint(x.clone()).1 as u64).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(split_vint(x.clone()).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: using `clone` on a `Copy` type [INFO] [stderr] --> src/vint.rs:12:54 [INFO] [stderr] | [INFO] [stderr] 12 | let coll = v.1.iter().map(|x| split_vint(x.clone()).1 as u64).collect::>(); [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/vint.rs:18:23 [INFO] [stderr] | [INFO] [stderr] 18 | out = split_vint(f.1[0]).1 as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(split_vint(f.1[0]).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: manual implementation of an assign operation [INFO] [stderr] --> src/vint.rs:27:17 [INFO] [stderr] | [INFO] [stderr] 27 | out = out << 7; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `out <<= 7` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/vint.rs:45:11 [INFO] [stderr] | [INFO] [stderr] 45 | out = take_one(input)?.1[0] as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(take_one(input)?.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: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | / loop { [INFO] [stderr] 65 | | // Check if the next is a file [INFO] [stderr] 66 | | match reader.exec_nom_parser(file_block::FileBlock::parse) { [INFO] [stderr] 67 | | Ok(mut f) => { [INFO] [stderr] ... | [INFO] [stderr] 103 | | } [INFO] [stderr] 104 | | } [INFO] [stderr] | |_________^ help: try: `while let Ok(mut f) = reader.exec_nom_parser(file_block::FileBlock::parse) { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rar`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: the function has a cyclomatic complexity of 31 [INFO] [stderr] --> src/file_block.rs:271:5 [INFO] [stderr] | [INFO] [stderr] 271 | / fn parse(inp: &[u8]) -> nom::IResult<&[u8], Compression> { [INFO] [stderr] 272 | | // get the vint [INFO] [stderr] 273 | | let (inp, raw) = vint(inp)?; [INFO] [stderr] 274 | | [INFO] [stderr] ... | [INFO] [stderr] 292 | | Ok((inp, c.1)) [INFO] [stderr] 293 | | } [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: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/file_block.rs:297:15 [INFO] [stderr] | [INFO] [stderr] 297 | 128 * (self.dictonary as f32).exp2() as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(self.dictonary)` [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/extra_block.rs:27:15 [INFO] [stderr] | [INFO] [stderr] 27 | while inp.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!inp.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/extra_block.rs:160:55 [INFO] [stderr] | [INFO] [stderr] 160 | let t = NaiveDateTime::from_timestamp_opt(t as i64, 0); [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(t)` [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/rar_reader.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | / let mut len = buf.len(); [INFO] [stderr] 43 | | [INFO] [stderr] 44 | | // when the buffer is bigger than the need to seek [INFO] [stderr] 45 | | // we shrink the buffer. Otherwiese we would seek to much. [INFO] [stderr] 46 | | if buf.len() > amt as usize { [INFO] [stderr] 47 | | len = amt as usize; [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let len = if buf.len() > amt as usize { amt as usize } else { buf.len() };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/file_writer.rs:38:12 [INFO] [stderr] | [INFO] [stderr] 38 | if len <= 0 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using len == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/extractor.rs:34:12 [INFO] [stderr] | [INFO] [stderr] 34 | if new_byte_count <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using new_byte_count == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | let x = x.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/vint.rs:12:43 [INFO] [stderr] | [INFO] [stderr] 12 | let coll = v.1.iter().map(|x| split_vint(x.clone()).1 as u64).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(split_vint(x.clone()).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: using `clone` on a `Copy` type [INFO] [stderr] --> src/vint.rs:12:54 [INFO] [stderr] | [INFO] [stderr] 12 | let coll = v.1.iter().map(|x| split_vint(x.clone()).1 as u64).collect::>(); [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/vint.rs:18:23 [INFO] [stderr] | [INFO] [stderr] 18 | out = split_vint(f.1[0]).1 as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(split_vint(f.1[0]).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: manual implementation of an assign operation [INFO] [stderr] --> src/vint.rs:27:17 [INFO] [stderr] | [INFO] [stderr] 27 | out = out << 7; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `out <<= 7` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/vint.rs:45:11 [INFO] [stderr] | [INFO] [stderr] 45 | out = take_one(input)?.1[0] as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(take_one(input)?.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: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | / loop { [INFO] [stderr] 65 | | // Check if the next is a file [INFO] [stderr] 66 | | match reader.exec_nom_parser(file_block::FileBlock::parse) { [INFO] [stderr] 67 | | Ok(mut f) => { [INFO] [stderr] ... | [INFO] [stderr] 103 | | } [INFO] [stderr] 104 | | } [INFO] [stderr] | |_________^ help: try: `while let Ok(mut f) = reader.exec_nom_parser(file_block::FileBlock::parse) { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rar`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "0edfe0d8d8c2154e65774ebca6469b3ac5b88893caf389d2a66e04b6b9e6c712"` [INFO] running `"docker" "rm" "-f" "0edfe0d8d8c2154e65774ebca6469b3ac5b88893caf389d2a66e04b6b9e6c712"` [INFO] [stdout] 0edfe0d8d8c2154e65774ebca6469b3ac5b88893caf389d2a66e04b6b9e6c712