[INFO] crate daemonize 0.3.0 is already in cache [INFO] extracting crate daemonize 0.3.0 into work/ex/clippy-test-run/sources/stable/reg/daemonize/0.3.0 [INFO] extracting crate daemonize 0.3.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/daemonize/0.3.0 [INFO] validating manifest of daemonize-0.3.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 daemonize-0.3.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 daemonize-0.3.0 [INFO] finished frobbing daemonize-0.3.0 [INFO] frobbed toml for daemonize-0.3.0 written to work/ex/clippy-test-run/sources/stable/reg/daemonize/0.3.0/Cargo.toml [INFO] started frobbing daemonize-0.3.0 [INFO] finished frobbing daemonize-0.3.0 [INFO] frobbed toml for daemonize-0.3.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/daemonize/0.3.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 daemonize-0.3.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/daemonize/0.3.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] 0d0d2c5edfa07cf5e4230c4fd9675ee96b7d2c77a4b261439f2d530f3f16aa02 [INFO] running `"docker" "start" "-a" "0d0d2c5edfa07cf5e4230c4fd9675ee96b7d2c77a4b261439f2d530f3f16aa02"` [INFO] [stderr] Checking daemonize v0.3.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/lib.rs:435:28 [INFO] [stderr] | [INFO] [stderr] 435 | tryret!(close(fd), (), DaemonizeError::RedirectStreams); [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/lib.rs:438:47 [INFO] [stderr] | [INFO] [stderr] 438 | tryret!(dup2(devnull_fd, fd), (), DaemonizeError::RedirectStreams); [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/lib.rs:442:43 [INFO] [stderr] | [INFO] [stderr] 442 | tryret!(dup2(raw_fd, fd), (), DaemonizeError::RedirectStreams); [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/lib.rs:452:32 [INFO] [stderr] | [INFO] [stderr] 452 | tryret!(close(devnull_fd), (), DaemonizeError::RedirectStreams); [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/lib.rs:435:28 [INFO] [stderr] | [INFO] [stderr] 435 | tryret!(close(fd), (), DaemonizeError::RedirectStreams); [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/lib.rs:438:47 [INFO] [stderr] | [INFO] [stderr] 438 | tryret!(dup2(devnull_fd, fd), (), DaemonizeError::RedirectStreams); [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/lib.rs:442:43 [INFO] [stderr] | [INFO] [stderr] 442 | tryret!(dup2(raw_fd, fd), (), DaemonizeError::RedirectStreams); [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/lib.rs:452:32 [INFO] [stderr] | [INFO] [stderr] 452 | tryret!(close(devnull_fd), (), DaemonizeError::RedirectStreams); [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `Daemonize<()>` [INFO] [stderr] --> src/lib.rs:276:5 [INFO] [stderr] | [INFO] [stderr] 276 | / pub fn new() -> Self { [INFO] [stderr] 277 | | Daemonize { [INFO] [stderr] 278 | | directory: Path::new("/").to_owned(), [INFO] [stderr] 279 | | pid_file: None, [INFO] [stderr] ... | [INFO] [stderr] 289 | | } [INFO] [stderr] 290 | | } [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] 274 | impl Default for Daemonize<()> { [INFO] [stderr] 275 | fn default() -> Self { [INFO] [stderr] 276 | Self::new() [INFO] [stderr] 277 | } [INFO] [stderr] 278 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/lib.rs:429:27 [INFO] [stderr] | [INFO] [stderr] 429 | let devnull_fd = open(transmute(b"/dev/null\0"), libc::O_RDWR); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b"/dev/null\0" as *const [u8; 10] as *const i8` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/lib.rs:515:18 [INFO] [stderr] | [INFO] [stderr] 515 | if write(fd, transmute(pid_c.as_ptr()), pid_length) < pid_length as isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `pid_c.as_ptr() as *const libc::c_void` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/ffi.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | (u16::max_value() - 1) as libc::uid_t [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(u16::max_value() - 1)` [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: you should consider adding a `Default` implementation for `Daemonize<()>` [INFO] [stderr] --> src/lib.rs:276:5 [INFO] [stderr] | [INFO] [stderr] 276 | / pub fn new() -> Self { [INFO] [stderr] 277 | | Daemonize { [INFO] [stderr] 278 | | directory: Path::new("/").to_owned(), [INFO] [stderr] 279 | | pid_file: None, [INFO] [stderr] ... | [INFO] [stderr] 289 | | } [INFO] [stderr] 290 | | } [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] 274 | impl Default for Daemonize<()> { [INFO] [stderr] 275 | fn default() -> Self { [INFO] [stderr] 276 | Self::new() [INFO] [stderr] 277 | } [INFO] [stderr] 278 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/lib.rs:429:27 [INFO] [stderr] | [INFO] [stderr] 429 | let devnull_fd = open(transmute(b"/dev/null\0"), libc::O_RDWR); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b"/dev/null\0" as *const [u8; 10] as *const i8` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/lib.rs:515:18 [INFO] [stderr] | [INFO] [stderr] 515 | if write(fd, transmute(pid_c.as_ptr()), pid_length) < pid_length as isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `pid_c.as_ptr() as *const libc::c_void` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_chroot.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | let ref chroot = args[1]; [INFO] [stderr] | ----^^^^^^^^^^----------- help: try: `let chroot = &args[1];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_chroot.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | let ref file = args[2]; [INFO] [stderr] | ----^^^^^^^^----------- help: try: `let file = &args[2];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_chdir.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | let ref chdir = args[1]; [INFO] [stderr] | ----^^^^^^^^^----------- help: try: `let chdir = &args[1];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_chdir.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | let ref file = args[2]; [INFO] [stderr] | ----^^^^^^^^----------- help: try: `let file = &args[2];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_redirect_streams.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | let ref stdout = *args[1]; [INFO] [stderr] | ----^^^^^^^^^^------------ help: try: `let stdout = &(*args[1]);` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_redirect_streams.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | let ref stderr = *args[2]; [INFO] [stderr] | ----^^^^^^^^^^------------ help: try: `let stderr = &(*args[2]);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_uid_gid.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | let ref user = *args[1]; [INFO] [stderr] | ----^^^^^^^^------------ help: try: `let user = &(*args[1]);` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_uid_gid.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | let ref group = *args[2]; [INFO] [stderr] | ----^^^^^^^^^------------ help: try: `let group = &(*args[2]);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_uid_gid.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | let ref file = *args[3]; [INFO] [stderr] | ----^^^^^^^^------------ help: try: `let file = &(*args[3]);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_pid.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | let ref pid = args[1]; [INFO] [stderr] | ----^^^^^^^----------- help: try: `let pid = &args[1];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> tests/tests.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | for file in vec![&first_result, &second_result] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[&first_result, &second_result]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_double_run.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | let ref pid = args[1]; [INFO] [stderr] | ----^^^^^^^----------- help: try: `let pid = &args[1];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_double_run.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | let ref result_file = args[2]; [INFO] [stderr] | ----^^^^^^^^^^^^^^^----------- help: try: `let result_file = &args[2];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_chown_pid.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | let ref user = *args[1]; [INFO] [stderr] | ----^^^^^^^^------------ help: try: `let user = &(*args[1]);` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_chown_pid.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | let ref group = *args[2]; [INFO] [stderr] | ----^^^^^^^^^------------ help: try: `let group = &(*args[2]);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/test_chown_pid.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | let ref pid = *args[3]; [INFO] [stderr] | ----^^^^^^^------------ help: try: `let pid = &(*args[3]);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.45s [INFO] running `"docker" "inspect" "0d0d2c5edfa07cf5e4230c4fd9675ee96b7d2c77a4b261439f2d530f3f16aa02"` [INFO] running `"docker" "rm" "-f" "0d0d2c5edfa07cf5e4230c4fd9675ee96b7d2c77a4b261439f2d530f3f16aa02"` [INFO] [stdout] 0d0d2c5edfa07cf5e4230c4fd9675ee96b7d2c77a4b261439f2d530f3f16aa02