[INFO] crate futures-glib 0.4.0 is already in cache [INFO] extracting crate futures-glib 0.4.0 into work/ex/clippy-test-run/sources/stable/reg/futures-glib/0.4.0 [INFO] extracting crate futures-glib 0.4.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/futures-glib/0.4.0 [INFO] validating manifest of futures-glib-0.4.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 futures-glib-0.4.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 futures-glib-0.4.0 [INFO] finished frobbing futures-glib-0.4.0 [INFO] frobbed toml for futures-glib-0.4.0 written to work/ex/clippy-test-run/sources/stable/reg/futures-glib/0.4.0/Cargo.toml [INFO] started frobbing futures-glib-0.4.0 [INFO] finished frobbing futures-glib-0.4.0 [INFO] frobbed toml for futures-glib-0.4.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/futures-glib/0.4.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 futures-glib-0.4.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/futures-glib/0.4.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] dbec753af0cca959bb81218f924aedd15b3f04aaacc24d8e20658e0440e84901 [INFO] running `"docker" "start" "-a" "dbec753af0cca959bb81218f924aedd15b3f04aaacc24d8e20658e0440e84901"` [INFO] [stderr] Compiling gio v0.4.1 [INFO] [stderr] Compiling gdk-pixbuf v0.4.0 [INFO] [stderr] Compiling cairo-rs v0.4.1 [INFO] [stderr] Compiling gdk v0.8.0 [INFO] [stderr] Checking c_vec v1.3.2 [INFO] [stderr] Compiling winapi v0.3.6 [INFO] [stderr] Compiling gtk v0.4.1 [INFO] [stderr] Compiling glib-sys v0.6.0 [INFO] [stderr] Compiling gobject-sys v0.6.0 [INFO] [stderr] Compiling gio-sys v0.6.0 [INFO] [stderr] Compiling gdk-pixbuf-sys v0.6.0 [INFO] [stderr] Compiling pango-sys v0.6.0 [INFO] [stderr] Compiling cairo-sys-rs v0.6.0 [INFO] [stderr] Compiling atk-sys v0.6.0 [INFO] [stderr] Compiling gdk-sys v0.6.0 [INFO] [stderr] Compiling gtk-sys v0.6.0 [INFO] [stderr] Checking futures-glib v0.4.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/future.rs:209:13 [INFO] [stderr] | [INFO] [stderr] 209 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/future.rs:214:13 [INFO] [stderr] | [INFO] [stderr] 214 | tx: tx, [INFO] [stderr] | ^^^^^^ help: replace it with: `tx` [INFO] [stderr] | [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/interval.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [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/interval.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | rx: rx, [INFO] [stderr] | ^^^^^^ help: replace it with: `rx` [INFO] [stderr] | [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/stack.rs:37:40 [INFO] [stderr] | [INFO] [stderr] 37 | let mut node = Box::new(Node { data: data, next: ptr::null_mut() }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [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/timeout.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [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/timeout.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | rx: rx, [INFO] [stderr] | ^^^^^^ help: replace it with: `rx` [INFO] [stderr] | [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/timeout.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | triggered: triggered, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `triggered` [INFO] [stderr] | [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/io/state.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | channel: channel, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `channel` [INFO] [stderr] | [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/io/mod.rs:320:19 [INFO] [stderr] | [INFO] [stderr] 320 | IoCondition { bits: bits } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `bits` [INFO] [stderr] | [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/error.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | Error { inner: inner } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [INFO] [stderr] | [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/net/tcp.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | channel: channel, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `channel` [INFO] [stderr] | [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/interval.rs:53:19 [INFO] [stderr] | [INFO] [stderr] 53 | const NOOP : &'static Noop = &Noop; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&Noop` [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: unneeded return statement [INFO] [stderr] --> src/lib.rs:708:5 [INFO] [stderr] | [INFO] [stderr] 708 | return TRUE [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `TRUE` [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: you should consider adding a `Default` implementation for `future::Executor` [INFO] [stderr] --> src/future.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | / pub fn new() -> Self { [INFO] [stderr] 33 | | Executor { [INFO] [stderr] 34 | | source: Source::new(Inner::new()), [INFO] [stderr] 35 | | } [INFO] [stderr] 36 | | } [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] 29 | impl Default for future::Executor { [INFO] [stderr] 30 | fn default() -> Self { [INFO] [stderr] 31 | Self::new() [INFO] [stderr] 32 | } [INFO] [stderr] 33 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::drop` with a value that implements Copy. Dropping a copy leaves the original intact. [INFO] [stderr] --> src/timeout.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | drop(tx.send(())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::drop_copy)] on by default [INFO] [stderr] note: argument has type std::result::Result<(), ()> [INFO] [stderr] --> src/timeout.rs:57:10 [INFO] [stderr] | [INFO] [stderr] 57 | drop(tx.send(())); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_copy [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/utils.rs:9:70 [INFO] [stderr] | [INFO] [stderr] 9 | duration.as_secs().saturating_mul(MILLIS_PER_SEC).saturating_add(millis as u64) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(millis)` [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: `0 as *mut _` detected. Consider using `ptr::null_mut()` [INFO] [stderr] --> src/io/mod.rs:117:29 [INFO] [stderr] | [INFO] [stderr] 117 | let mut error = 0 as *mut _; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stderr] [INFO] [stderr] warning: `0 as *mut _` detected. Consider using `ptr::null_mut()` [INFO] [stderr] --> src/io/mod.rs:163:29 [INFO] [stderr] | [INFO] [stderr] 163 | let mut error = 0 as *mut _; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stderr] [INFO] [stderr] warning: `0 as *const _` detected. Consider using `ptr::null()` [INFO] [stderr] --> src/io/mod.rs:168:76 [INFO] [stderr] | [INFO] [stderr] 168 | let encoding = encoding.as_ref().map(|c| c.as_ptr()).unwrap_or(0 as *const _); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stderr] [INFO] [stderr] warning: `0 as *mut _` detected. Consider using `ptr::null_mut()` [INFO] [stderr] --> src/io/mod.rs:225:29 [INFO] [stderr] | [INFO] [stderr] 225 | let mut error = 0 as *mut _; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stderr] [INFO] [stderr] warning: `0 as *mut _` detected. Consider using `ptr::null_mut()` [INFO] [stderr] --> src/io/mod.rs:250:29 [INFO] [stderr] | [INFO] [stderr] 250 | let mut error = 0 as *mut _; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stderr] [INFO] [stderr] warning: `0 as *mut _` detected. Consider using `ptr::null_mut()` [INFO] [stderr] --> src/io/mod.rs:262:29 [INFO] [stderr] | [INFO] [stderr] 262 | let mut error = 0 as *mut _; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `io::IoCondition` [INFO] [stderr] --> src/io/mod.rs:325:5 [INFO] [stderr] | [INFO] [stderr] 325 | / pub fn new() -> IoCondition { [INFO] [stderr] 326 | | IoCondition { [INFO] [stderr] 327 | | bits: glib_sys::GIOCondition::empty(), [INFO] [stderr] 328 | | } [INFO] [stderr] 329 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 323 | impl Default for io::IoCondition { [INFO] [stderr] 324 | fn default() -> Self { [INFO] [stderr] 325 | Self::new() [INFO] [stderr] 326 | } [INFO] [stderr] 327 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/io/mod.rs:363:13 [INFO] [stderr] | [INFO] [stderr] 363 | self.bits = self.bits | flag; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.bits |= flag` [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: manual implementation of an assign operation [INFO] [stderr] --> src/io/mod.rs:365:13 [INFO] [stderr] | [INFO] [stderr] 365 | self.bits = self.bits & !flag; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.bits &= !flag` [INFO] [stderr] | [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: passing a unit value to a function [INFO] [stderr] --> src/net/tcp.rs:231:25 [INFO] [stderr] | [INFO] [stderr] 231 | Ok(n) => Ok(n), [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 231 | Ok(n) => Ok(()), [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `MainContext` [INFO] [stderr] --> src/lib.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | / pub fn new() -> MainContext { [INFO] [stderr] 74 | | unsafe { [INFO] [stderr] 75 | | let ptr = glib_sys::g_main_context_new(); [INFO] [stderr] 76 | | assert!(!ptr.is_null()); [INFO] [stderr] 77 | | MainContext { inner: ptr } [INFO] [stderr] 78 | | } [INFO] [stderr] 79 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 71 | impl Default for MainContext { [INFO] [stderr] 72 | fn default() -> Self { [INFO] [stderr] 73 | Self::new() [INFO] [stderr] 74 | } [INFO] [stderr] 75 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `0 as *mut _` detected. Consider using `ptr::null_mut()` [INFO] [stderr] --> src/lib.rs:284:48 [INFO] [stderr] | [INFO] [stderr] 284 | let cx = cx.map(|c| c.inner).unwrap_or(0 as *mut _); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `futures-glib`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "dbec753af0cca959bb81218f924aedd15b3f04aaacc24d8e20658e0440e84901"` [INFO] running `"docker" "rm" "-f" "dbec753af0cca959bb81218f924aedd15b3f04aaacc24d8e20658e0440e84901"` [INFO] [stdout] dbec753af0cca959bb81218f924aedd15b3f04aaacc24d8e20658e0440e84901