[INFO] crate huffman_rs 0.1.0 is already in cache [INFO] extracting crate huffman_rs 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/huffman_rs/0.1.0 [INFO] extracting crate huffman_rs 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/huffman_rs/0.1.0 [INFO] validating manifest of huffman_rs-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 huffman_rs-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 huffman_rs-0.1.0 [INFO] finished frobbing huffman_rs-0.1.0 [INFO] frobbed toml for huffman_rs-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/huffman_rs/0.1.0/Cargo.toml [INFO] started frobbing huffman_rs-0.1.0 [INFO] finished frobbing huffman_rs-0.1.0 [INFO] frobbed toml for huffman_rs-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/huffman_rs/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 huffman_rs-0.1.0 against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/huffman_rs/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 -Dclippy::into_iter_on_array" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 378ad86da49c40c8ad648f49e1919a82225ad06f42c6b1ee14d0ecbf76373340 [INFO] running `"docker" "start" "-a" "378ad86da49c40c8ad648f49e1919a82225ad06f42c6b1ee14d0ecbf76373340"` [INFO] [stderr] Checking huffman_rs v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/huffman/huffman_decoder.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | key: key, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/huffman/huffman_decoder.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | key: key, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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: you should consider deriving a `Default` implementation for `huffman::huffman_encoder::HuffmanEncoder` [INFO] [stderr] --> src/huffman/huffman_encoder.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | / pub fn new() -> HuffmanEncoder { [INFO] [stderr] 9 | | HuffmanEncoder { [INFO] [stderr] 10 | | result: vec![], [INFO] [stderr] 11 | | } [INFO] [stderr] 12 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/huffman/huffman_encoder.rs:19:12 [INFO] [stderr] | [INFO] [stderr] 19 | if bytes.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `bytes.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/huffman/huffman_encoder.rs:24:53 [INFO] [stderr] | [INFO] [stderr] 24 | let mut code: u32 = u32::from_str_radix(HUFFMAN_CODES[*byte as usize].clone(), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 24 | let mut code: u32 = u32::from_str_radix(&(*HUFFMAN_CODES[*byte as usize]).clone(), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 24 | let mut code: u32 = u32::from_str_radix(&str::clone(HUFFMAN_CODES[*byte as usize]), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/huffman/huffman_encoder.rs:49:49 [INFO] [stderr] | [INFO] [stderr] 49 | let code: u32 = u32::from_str_radix(HUFFMAN_CODES[256].clone(), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 49 | let code: u32 = u32::from_str_radix(&(*HUFFMAN_CODES[256]).clone(), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 49 | let code: u32 = u32::from_str_radix(&str::clone(HUFFMAN_CODES[256]), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `huffman::huffman_decoder::HuffmanDecoder` [INFO] [stderr] --> src/huffman/huffman_decoder.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | / pub fn new() -> HuffmanDecoder { [INFO] [stderr] 10 | | let huffman_tree = create_tree(); [INFO] [stderr] 11 | | HuffmanDecoder { [INFO] [stderr] 12 | | tree: huffman_tree, [INFO] [stderr] 13 | | } [INFO] [stderr] 14 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 8 | impl Default for huffman::huffman_decoder::HuffmanDecoder { [INFO] [stderr] 9 | fn default() -> Self { [INFO] [stderr] 10 | Self::new() [INFO] [stderr] 11 | } [INFO] [stderr] 12 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `HUFFMAN_CODES` [INFO] [stderr] --> src/huffman/huffman_decoder.rs:77:14 [INFO] [stderr] | [INFO] [stderr] 77 | for i in 0..HUFFMAN_CODES.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 77 | for (i, ) in HUFFMAN_CODES.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/huffman/huffman_decoder.rs:78:45 [INFO] [stderr] | [INFO] [stderr] 78 | let key: u32 = u32::from_str_radix(HUFFMAN_CODES[i].clone(), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 78 | let key: u32 = u32::from_str_radix(&(*HUFFMAN_CODES[i]).clone(), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 78 | let key: u32 = u32::from_str_radix(&str::clone(HUFFMAN_CODES[i]), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `huffman_rs`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `huffman::huffman_encoder::HuffmanEncoder` [INFO] [stderr] --> src/huffman/huffman_encoder.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | / pub fn new() -> HuffmanEncoder { [INFO] [stderr] 9 | | HuffmanEncoder { [INFO] [stderr] 10 | | result: vec![], [INFO] [stderr] 11 | | } [INFO] [stderr] 12 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/huffman/huffman_encoder.rs:19:12 [INFO] [stderr] | [INFO] [stderr] 19 | if bytes.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `bytes.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/huffman/huffman_encoder.rs:24:53 [INFO] [stderr] | [INFO] [stderr] 24 | let mut code: u32 = u32::from_str_radix(HUFFMAN_CODES[*byte as usize].clone(), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 24 | let mut code: u32 = u32::from_str_radix(&(*HUFFMAN_CODES[*byte as usize]).clone(), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 24 | let mut code: u32 = u32::from_str_radix(&str::clone(HUFFMAN_CODES[*byte as usize]), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/huffman/huffman_encoder.rs:49:49 [INFO] [stderr] | [INFO] [stderr] 49 | let code: u32 = u32::from_str_radix(HUFFMAN_CODES[256].clone(), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 49 | let code: u32 = u32::from_str_radix(&(*HUFFMAN_CODES[256]).clone(), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 49 | let code: u32 = u32::from_str_radix(&str::clone(HUFFMAN_CODES[256]), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `huffman::huffman_decoder::HuffmanDecoder` [INFO] [stderr] --> src/huffman/huffman_decoder.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | / pub fn new() -> HuffmanDecoder { [INFO] [stderr] 10 | | let huffman_tree = create_tree(); [INFO] [stderr] 11 | | HuffmanDecoder { [INFO] [stderr] 12 | | tree: huffman_tree, [INFO] [stderr] 13 | | } [INFO] [stderr] 14 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 8 | impl Default for huffman::huffman_decoder::HuffmanDecoder { [INFO] [stderr] 9 | fn default() -> Self { [INFO] [stderr] 10 | Self::new() [INFO] [stderr] 11 | } [INFO] [stderr] 12 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `HUFFMAN_CODES` [INFO] [stderr] --> src/huffman/huffman_decoder.rs:77:14 [INFO] [stderr] | [INFO] [stderr] 77 | for i in 0..HUFFMAN_CODES.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 77 | for (i, ) in HUFFMAN_CODES.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/huffman/huffman_decoder.rs:78:45 [INFO] [stderr] | [INFO] [stderr] 78 | let key: u32 = u32::from_str_radix(HUFFMAN_CODES[i].clone(), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 78 | let key: u32 = u32::from_str_radix(&(*HUFFMAN_CODES[i]).clone(), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 78 | let key: u32 = u32::from_str_radix(&str::clone(HUFFMAN_CODES[i]), 2).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `huffman_rs`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "378ad86da49c40c8ad648f49e1919a82225ad06f42c6b1ee14d0ecbf76373340"` [INFO] running `"docker" "rm" "-f" "378ad86da49c40c8ad648f49e1919a82225ad06f42c6b1ee14d0ecbf76373340"` [INFO] [stdout] 378ad86da49c40c8ad648f49e1919a82225ad06f42c6b1ee14d0ecbf76373340