[INFO] updating cached repository ygunayer/aoc2018 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/ygunayer/aoc2018 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/ygunayer/aoc2018" "work/ex/clippy-test-run/sources/stable/gh/ygunayer/aoc2018"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/ygunayer/aoc2018'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/ygunayer/aoc2018" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ygunayer/aoc2018"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ygunayer/aoc2018'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] c78d93b170860b59ee92be1d56222e03c6086e99 [INFO] sha for GitHub repo ygunayer/aoc2018: c78d93b170860b59ee92be1d56222e03c6086e99 [INFO] validating manifest of ygunayer/aoc2018 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 ygunayer/aoc2018 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 ygunayer/aoc2018 [INFO] finished frobbing ygunayer/aoc2018 [INFO] frobbed toml for ygunayer/aoc2018 written to work/ex/clippy-test-run/sources/stable/gh/ygunayer/aoc2018/Cargo.toml [INFO] started frobbing ygunayer/aoc2018 [INFO] finished frobbing ygunayer/aoc2018 [INFO] frobbed toml for ygunayer/aoc2018 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ygunayer/aoc2018/Cargo.toml [INFO] crate ygunayer/aoc2018 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 ygunayer/aoc2018 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/ygunayer/aoc2018:/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] 0769039c3e765b07ebfc6d65b0f9909479aba120fc77e4bffdf32e3eaf8c19ea [INFO] running `"docker" "start" "-a" "0769039c3e765b07ebfc6d65b0f9909479aba120fc77e4bffdf32e3eaf8c19ea"` [INFO] [stderr] Checking levenshtein v1.0.3 [INFO] [stderr] Checking itertools v0.7.11 [INFO] [stderr] Checking aoc2018 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #[macro_use] extern crate itertools; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::Debug` [INFO] [stderr] --> src/util/collections.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::fmt::Debug; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `futures::Future` [INFO] [stderr] --> src/solutions/common.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use futures::Future; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::num::ParseIntError` [INFO] [stderr] --> src/solutions/day02.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::num::ParseIntError; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/solutions/day02.rs:87:20 [INFO] [stderr] | [INFO] [stderr] 87 | if (begin >= cnt) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #[macro_use] extern crate itertools; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::Debug` [INFO] [stderr] --> src/util/collections.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::fmt::Debug; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `futures::Future` [INFO] [stderr] --> src/solutions/common.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use futures::Future; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::num::ParseIntError` [INFO] [stderr] --> src/solutions/day02.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::num::ParseIntError; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/solutions/day02.rs:87:20 [INFO] [stderr] | [INFO] [stderr] 87 | if (begin >= cnt) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/util/string.rs:6:14 [INFO] [stderr] | [INFO] [stderr] 6 | for c in s.chars().into_iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `s.chars()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/util/string.rs:6:14 [INFO] [stderr] | [INFO] [stderr] 6 | for c in s.chars().into_iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `s.chars()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter_mut() and will not move the Vec [INFO] [stderr] --> src/solutions/day01.rs:88:34 [INFO] [stderr] | [INFO] [stderr] 88 | let result = numbers.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter_mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/solutions/day01.rs:107:54 [INFO] [stderr] | [INFO] [stderr] 107 | line.and_then(|st| st.parse::().map_err(|e| as_io_error(e))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `as_io_error` [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter_mut() and will not move the Vec [INFO] [stderr] --> src/solutions/day01.rs:88:34 [INFO] [stderr] | [INFO] [stderr] 88 | let result = numbers.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter_mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/solutions/day01.rs:107:54 [INFO] [stderr] | [INFO] [stderr] 107 | line.and_then(|st| st.parse::().map_err(|e| as_io_error(e))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `as_io_error` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter_mut() and will not move the HashMap [INFO] [stderr] --> src/solutions/day02.rs:25:27 [INFO] [stderr] | [INFO] [stderr] 25 | for (c, i) in map.into_iter() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter_mut` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [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/solutions/day02.rs:114:40 [INFO] [stderr] | [INFO] [stderr] 114 | 1 => Some((a.clone().clone(), b.clone().clone())), [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter_mut() and will not move the HashMap [INFO] [stderr] --> src/solutions/day02.rs:25:27 [INFO] [stderr] | [INFO] [stderr] 25 | for (c, i) in map.into_iter() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter_mut` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [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/solutions/day02.rs:114:40 [INFO] [stderr] | [INFO] [stderr] 114 | 1 => Some((a.clone().clone(), b.clone().clone())), [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] 114 | 1 => Some((&(*a).clone().clone(), b.clone().clone())), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 114 | 1 => Some((&std::string::String::clone(a).clone(), b.clone().clone())), [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/solutions/day02.rs:114:59 [INFO] [stderr] | [INFO] [stderr] 114 | 1 => Some((a.clone().clone(), b.clone().clone())), [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] 114 | 1 => Some((a.clone().clone(), &(*b).clone().clone())), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 114 | 1 => Some((a.clone().clone(), &std::string::String::clone(b).clone())), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/solutions/day02.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | result.map(|chars| println!("Actual solution for #2 for day 2 is {:?}", chars)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(chars) = result { $ crate :: io :: _print ( format_args_nl ! ( $ ( $ arg ) * ) ) ; }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [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] 114 | 1 => Some((&(*a).clone().clone(), b.clone().clone())), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 114 | 1 => Some((&std::string::String::clone(a).clone(), b.clone().clone())), [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/solutions/day02.rs:114:59 [INFO] [stderr] | [INFO] [stderr] 114 | 1 => Some((a.clone().clone(), b.clone().clone())), [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] 114 | 1 => Some((a.clone().clone(), &(*b).clone().clone())), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 114 | 1 => Some((a.clone().clone(), &std::string::String::clone(b).clone())), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/solutions/day02.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | result.map(|chars| println!("Actual solution for #2 for day 2 is {:?}", chars)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(chars) = result { $ crate :: io :: _print ( format_args_nl ! ( $ ( $ arg ) * ) ) ; }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `aoc2018`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: Could not compile `aoc2018`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "0769039c3e765b07ebfc6d65b0f9909479aba120fc77e4bffdf32e3eaf8c19ea"` [INFO] running `"docker" "rm" "-f" "0769039c3e765b07ebfc6d65b0f9909479aba120fc77e4bffdf32e3eaf8c19ea"` [INFO] [stdout] 0769039c3e765b07ebfc6d65b0f9909479aba120fc77e4bffdf32e3eaf8c19ea