[INFO] updating cached repository zovt/advent-of-code-2017 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/zovt/advent-of-code-2017 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/zovt/advent-of-code-2017" "work/ex/clippy-test-run/sources/stable/gh/zovt/advent-of-code-2017"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/zovt/advent-of-code-2017'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/zovt/advent-of-code-2017" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zovt/advent-of-code-2017"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zovt/advent-of-code-2017'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 399bcb68b0b93a761af7fb3dc27c05951c0cc6bb [INFO] sha for GitHub repo zovt/advent-of-code-2017: 399bcb68b0b93a761af7fb3dc27c05951c0cc6bb [INFO] validating manifest of zovt/advent-of-code-2017 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 zovt/advent-of-code-2017 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 zovt/advent-of-code-2017 [INFO] finished frobbing zovt/advent-of-code-2017 [INFO] frobbed toml for zovt/advent-of-code-2017 written to work/ex/clippy-test-run/sources/stable/gh/zovt/advent-of-code-2017/Cargo.toml [INFO] started frobbing zovt/advent-of-code-2017 [INFO] finished frobbing zovt/advent-of-code-2017 [INFO] frobbed toml for zovt/advent-of-code-2017 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zovt/advent-of-code-2017/Cargo.toml [INFO] crate zovt/advent-of-code-2017 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 zovt/advent-of-code-2017 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/gh/zovt/advent-of-code-2017:/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] 8180324c8580d7dbfa07893a800df1b9f3150f364863b1bde78ea004a98f3ac0 [INFO] running `"docker" "start" "-a" "8180324c8580d7dbfa07893a800df1b9f3150f364863b1bde78ea004a98f3ac0"` [INFO] [stderr] warning: An explicit [[bin]] section is specified in Cargo.toml which currently [INFO] [stderr] disables Cargo from automatically inferring other binary targets. [INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following [INFO] [stderr] files will be included as a binary target: [INFO] [stderr] [INFO] [stderr] * /opt/crater/workdir/src/main.rs [INFO] [stderr] [INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be [INFO] [stderr] ready to be compiled as a binary target today. You can future-proof yourself [INFO] [stderr] and disable this warning by adding `autobins = false` to your [package] [INFO] [stderr] section. You may also move the files to a location where Cargo would not [INFO] [stderr] automatically infer them to be a target, such as in subfolders. [INFO] [stderr] [INFO] [stderr] For more information on this warning you can consult [INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330 [INFO] [stderr] Checking advent-of-code v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/day3/two.rs:39:6 [INFO] [stderr] | [INFO] [stderr] 39 | if (r.0 - 1 == -r.1 && self == SpiralDirection::Right) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/day3/two.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | } else if (r.0.abs() == r.1.abs() && self != SpiralDirection::Right) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day4/two.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | return 1; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `1` [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: manual implementation of an assign operation [INFO] [stderr] --> src/day1/two.rs:9:4 [INFO] [stderr] | [INFO] [stderr] 9 | sum = sum + (fst - ('0' as u8)) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sum += (fst - ('0' as u8)) as u64` [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/day3/one.rs:43:15 [INFO] [stderr] | [INFO] [stderr] 43 | let num = if (num > ring_half) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/day1/two.rs:9:16 [INFO] [stderr] | [INFO] [stderr] 9 | sum = sum + (fst - ('0' as u8)) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(fst - ('0' as u8))` [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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/day1/two.rs:9:23 [INFO] [stderr] | [INFO] [stderr] 9 | sum = sum + (fst - ('0' as u8)) as u64; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'0' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/day1/one.rs:9:4 [INFO] [stderr] | [INFO] [stderr] 9 | sum = sum + (fst - ('0' as u8)) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sum += (fst - ('0' as u8)) as u64` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/day1/one.rs:9:16 [INFO] [stderr] | [INFO] [stderr] 9 | sum = sum + (fst - ('0' as u8)) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(fst - ('0' as u8))` [INFO] [stderr] | [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/day2/two.rs:19:3 [INFO] [stderr] | [INFO] [stderr] 19 | sum = sum + [INFO] [stderr] | _________^ [INFO] [stderr] 20 | | |nums: &Vec| -> u64 { [INFO] [stderr] 21 | | for i in 0..nums.len() { [INFO] [stderr] 22 | | for j in (0..nums.len()).rev() { [INFO] [stderr] ... | [INFO] [stderr] 32 | | 0 [INFO] [stderr] 33 | | }(&nums); [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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/day1/one.rs:9:23 [INFO] [stderr] | [INFO] [stderr] 9 | sum = sum + (fst - ('0' as u8)) as u64; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'0' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [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] help: replace it with [INFO] [stderr] | [INFO] [stderr] 19 | sum += |nums: &Vec| -> u64 { [INFO] [stderr] 20 | for i in 0..nums.len() { [INFO] [stderr] 21 | for j in (0..nums.len()).rev() { [INFO] [stderr] 22 | if i == j { [INFO] [stderr] 23 | continue; [INFO] [stderr] 24 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/day4/two.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | if let Some(_) = seen.get(w) { [INFO] [stderr] | _____________________- ^^^^^^^ [INFO] [stderr] 32 | | return 0; [INFO] [stderr] 33 | | } [INFO] [stderr] | |_____________________- help: try this: `if seen.get(w).is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/day4/two.rs:40:3 [INFO] [stderr] | [INFO] [stderr] 40 | valid_count = valid_count + inc as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `valid_count += inc as u64` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/day4/two.rs:40:31 [INFO] [stderr] | [INFO] [stderr] 40 | valid_count = valid_count + inc as u64; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(inc)` [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: variable does not need to be mutable [INFO] [stderr] --> src/day3/two.rs:86:6 [INFO] [stderr] | [INFO] [stderr] 86 | let mut spiral_coord_iter = SpiralCoordIter { [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/day3/two.rs:20:39 [INFO] [stderr] | [INFO] [stderr] 20 | .map(|o| o.map(|v| *v).unwrap_or(0)) [INFO] [stderr] | _____________________________________________^ [INFO] [stderr] 21 | | .fold(0, |acc, n| acc + n); [INFO] [stderr] | |__________________________________^ help: try: `.sum()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_fold)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/day3/two.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 20 | .map(|o| o.map(|v| *v).unwrap_or(0)) [INFO] [stderr] | ^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `o.cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/day3/two.rs:41:72 [INFO] [stderr] | [INFO] [stderr] 41 | } else if (r.0.abs() == r.1.abs() && self != SpiralDirection::Right) { [INFO] [stderr] | ______________________________________________________________________________^ [INFO] [stderr] 42 | | (r, self.cycle()) [INFO] [stderr] 43 | | } else { [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/day3/two.rs:39:58 [INFO] [stderr] | [INFO] [stderr] 39 | if (r.0 - 1 == -r.1 && self == SpiralDirection::Right) { [INFO] [stderr] | ________________________________________________________________^ [INFO] [stderr] 40 | | (r, self.cycle()) [INFO] [stderr] 41 | | } else if (r.0.abs() == r.1.abs() && self != SpiralDirection::Right) { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `advent-of-code`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/day3/two.rs:39:6 [INFO] [stderr] | [INFO] [stderr] 39 | if (r.0 - 1 == -r.1 && self == SpiralDirection::Right) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/day3/two.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | } else if (r.0.abs() == r.1.abs() && self != SpiralDirection::Right) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day4/one.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | return 1; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `1` [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] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/day6/two.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | if stdin_lock.read_line(&mut buf).expect("missing line") <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using stdin_lock.read_line(&mut buf).expect("missing line") == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `banks` [INFO] [stderr] --> src/day6/two.rs:21:12 [INFO] [stderr] | [INFO] [stderr] 21 | for i in 0..banks.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] 21 | for (i, ) in banks.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/day6/two.rs:43:25 [INFO] [stderr] | [INFO] [stderr] 43 | println!("{}", count - seen.get(&banks).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&seen[&banks]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `advent-of-code`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/day3/one.rs:43:15 [INFO] [stderr] | [INFO] [stderr] 43 | let num = if (num > ring_half) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/day4/one.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | if let Some(_) = seen.get(w) { [INFO] [stderr] | _____________________- ^^^^^^^ [INFO] [stderr] 21 | | return 0; [INFO] [stderr] 22 | | } [INFO] [stderr] | |_____________________- help: try this: `if seen.get(w).is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/day4/one.rs:29:3 [INFO] [stderr] | [INFO] [stderr] 29 | valid_count = valid_count + inc as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `valid_count += inc as u64` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/day4/one.rs:29:31 [INFO] [stderr] | [INFO] [stderr] 29 | valid_count = valid_count + inc as u64; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(inc)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/day2/two.rs:19:3 [INFO] [stderr] | [INFO] [stderr] 19 | sum = sum + [INFO] [stderr] | _________^ [INFO] [stderr] 20 | | |nums: &Vec| -> u64 { [INFO] [stderr] 21 | | for i in 0..nums.len() { [INFO] [stderr] 22 | | for j in (0..nums.len()).rev() { [INFO] [stderr] ... | [INFO] [stderr] 32 | | 0 [INFO] [stderr] 33 | | }(&nums); [INFO] [stderr] | |____________________^ [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] help: replace it with [INFO] [stderr] | [INFO] [stderr] 19 | sum += |nums: &Vec| -> u64 { [INFO] [stderr] 20 | for i in 0..nums.len() { [INFO] [stderr] 21 | for j in (0..nums.len()).rev() { [INFO] [stderr] 22 | if i == j { [INFO] [stderr] 23 | continue; [INFO] [stderr] 24 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/day3/two.rs:86:6 [INFO] [stderr] | [INFO] [stderr] 86 | let mut spiral_coord_iter = SpiralCoordIter { [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/day3/two.rs:20:39 [INFO] [stderr] | [INFO] [stderr] 20 | .map(|o| o.map(|v| *v).unwrap_or(0)) [INFO] [stderr] | _____________________________________________^ [INFO] [stderr] 21 | | .fold(0, |acc, n| acc + n); [INFO] [stderr] | |__________________________________^ help: try: `.sum()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_fold)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/day3/two.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 20 | .map(|o| o.map(|v| *v).unwrap_or(0)) [INFO] [stderr] | ^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `o.cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/day3/two.rs:41:72 [INFO] [stderr] | [INFO] [stderr] 41 | } else if (r.0.abs() == r.1.abs() && self != SpiralDirection::Right) { [INFO] [stderr] | ______________________________________________________________________________^ [INFO] [stderr] 42 | | (r, self.cycle()) [INFO] [stderr] 43 | | } else { [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/day3/two.rs:39:58 [INFO] [stderr] | [INFO] [stderr] 39 | if (r.0 - 1 == -r.1 && self == SpiralDirection::Right) { [INFO] [stderr] | ________________________________________________________________^ [INFO] [stderr] 40 | | (r, self.cycle()) [INFO] [stderr] 41 | | } else if (r.0.abs() == r.1.abs() && self != SpiralDirection::Right) { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/day6/one.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | if stdin_lock.read_line(&mut buf).expect("missing line") <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using stdin_lock.read_line(&mut buf).expect("missing line") == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `banks` [INFO] [stderr] --> src/day6/one.rs:21:12 [INFO] [stderr] | [INFO] [stderr] 21 | for i in 0..banks.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] 21 | for (i, ) in banks.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `advent-of-code`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: Could not compile `advent-of-code`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "8180324c8580d7dbfa07893a800df1b9f3150f364863b1bde78ea004a98f3ac0"` [INFO] running `"docker" "rm" "-f" "8180324c8580d7dbfa07893a800df1b9f3150f364863b1bde78ea004a98f3ac0"` [INFO] [stdout] 8180324c8580d7dbfa07893a800df1b9f3150f364863b1bde78ea004a98f3ac0