[INFO] updating cached repository dmerejkowsky/rucp [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/dmerejkowsky/rucp [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/dmerejkowsky/rucp" "work/ex/clippy-test-run/sources/stable/gh/dmerejkowsky/rucp"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/dmerejkowsky/rucp'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/dmerejkowsky/rucp" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dmerejkowsky/rucp"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dmerejkowsky/rucp'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] e4101d7a0eaab7af2e2328a391478c9863d3cad5 [INFO] sha for GitHub repo dmerejkowsky/rucp: e4101d7a0eaab7af2e2328a391478c9863d3cad5 [INFO] validating manifest of dmerejkowsky/rucp 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 dmerejkowsky/rucp 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 dmerejkowsky/rucp [INFO] finished frobbing dmerejkowsky/rucp [INFO] frobbed toml for dmerejkowsky/rucp written to work/ex/clippy-test-run/sources/stable/gh/dmerejkowsky/rucp/Cargo.toml [INFO] started frobbing dmerejkowsky/rucp [INFO] finished frobbing dmerejkowsky/rucp [INFO] frobbed toml for dmerejkowsky/rucp written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dmerejkowsky/rucp/Cargo.toml [INFO] crate dmerejkowsky/rucp has a lockfile. skipping [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 dmerejkowsky/rucp against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/dmerejkowsky/rucp:/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] ca29535910fa99a042189ac9850fe78d556c5c68de4bc314490ec8ce58b3af4d [INFO] running `"docker" "start" "-a" "ca29535910fa99a042189ac9850fe78d556c5c68de4bc314490ec8ce58b3af4d"` [INFO] [stderr] Checking rucp v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/transfer.rs:83:21 [INFO] [stderr] | [INFO] [stderr] 83 | Ok(Transfer{steps: steps}) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `steps` [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/transfer.rs:83:21 [INFO] [stderr] | [INFO] [stderr] 83 | Ok(Transfer{steps: steps}) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `steps` [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/lib.rs:14:21 [INFO] [stderr] | [INFO] [stderr] 14 | Err(err) => return Err(err.to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(err.to_string())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:15:18 [INFO] [stderr] | [INFO] [stderr] 15 | Ok(_) => return Ok(()) [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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/transfer.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | return transfer; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `transfer` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:14:21 [INFO] [stderr] | [INFO] [stderr] 14 | Err(err) => return Err(err.to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(err.to_string())` [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/lib.rs:15:18 [INFO] [stderr] | [INFO] [stderr] 15 | Ok(_) => return Ok(()) [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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: variant is never constructed: `MkDir` [INFO] [stderr] --> src/transfer.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | MkDir(PathBuf), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `args`. [INFO] [stderr] --> src/args.rs:9:14 [INFO] [stderr] | [INFO] [stderr] 9 | for i in 1..arg_count-1 { [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] 9 | for in args.iter().take(arg_count-1).skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/transfer.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | / let full_dest_path; [INFO] [stderr] 62 | | if dest_path.is_dir() { [INFO] [stderr] 63 | | let file_name = get_file_name(&src_path)?; [INFO] [stderr] 64 | | full_dest_path = dest_path.join(file_name); [INFO] [stderr] 65 | | } else { [INFO] [stderr] 66 | | full_dest_path = dest_path; [INFO] [stderr] 67 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let full_dest_path = if dest_path.is_dir() { ..; dest_path.join(file_name) } else { dest_path };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/copy.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | buf_writer.write(&buffer[0..num_read])?; [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] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `rucp`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: variant is never constructed: `MkDir` [INFO] [stderr] --> src/transfer.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | MkDir(PathBuf), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `args`. [INFO] [stderr] --> src/args.rs:9:14 [INFO] [stderr] | [INFO] [stderr] 9 | for i in 1..arg_count-1 { [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] 9 | for in args.iter().take(arg_count-1).skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/transfer.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | / let full_dest_path; [INFO] [stderr] 62 | | if dest_path.is_dir() { [INFO] [stderr] 63 | | let file_name = get_file_name(&src_path)?; [INFO] [stderr] 64 | | full_dest_path = dest_path.join(file_name); [INFO] [stderr] 65 | | } else { [INFO] [stderr] 66 | | full_dest_path = dest_path; [INFO] [stderr] 67 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let full_dest_path = if dest_path.is_dir() { ..; dest_path.join(file_name) } else { dest_path };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/transfer.rs:128:33 [INFO] [stderr] | [INFO] [stderr] 128 | fn build_request<'a>(paths: &'a Vec<&PathBuf>) -> TransferRequest<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: change this to: `&[&PathBuf]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/transfer.rs:141:32 [INFO] [stderr] | [INFO] [stderr] 141 | fn get_transfer<'a>(paths: &'a Vec<&PathBuf>) -> Transfer { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: change this to: `&[&PathBuf]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/transfer.rs:149:32 [INFO] [stderr] | [INFO] [stderr] 149 | fn assert_error<'a>(paths: &'a Vec<&PathBuf>, path: &'a PathBuf, error: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: change this to: `&[&PathBuf]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/copy.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | buf_writer.write(&buffer[0..num_read])?; [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] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/copy.rs:39:46 [INFO] [stderr] | [INFO] [stderr] 39 | fn setup_test(tmp_path: &Path, contents: &Vec) -> (PathBuf, PathBuf) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/copy.rs:47:50 [INFO] [stderr] | [INFO] [stderr] 47 | fn check_copy(dest_path: &PathBuf, contents: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/copy.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | dest_file.read(&mut actual).expect("could not read dest"); [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] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rucp`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "ca29535910fa99a042189ac9850fe78d556c5c68de4bc314490ec8ce58b3af4d"` [INFO] running `"docker" "rm" "-f" "ca29535910fa99a042189ac9850fe78d556c5c68de4bc314490ec8ce58b3af4d"` [INFO] [stdout] ca29535910fa99a042189ac9850fe78d556c5c68de4bc314490ec8ce58b3af4d