[INFO] updating cached repository dewaka/aoc2018 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/dewaka/aoc2018 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/dewaka/aoc2018" "work/ex/clippy-test-run/sources/stable/gh/dewaka/aoc2018"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/dewaka/aoc2018'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/dewaka/aoc2018" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dewaka/aoc2018"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dewaka/aoc2018'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 20dff3a15cbebf9e35a62cd41eeffe688e9c0d71 [INFO] sha for GitHub repo dewaka/aoc2018: 20dff3a15cbebf9e35a62cd41eeffe688e9c0d71 [INFO] validating manifest of dewaka/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 dewaka/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 dewaka/aoc2018 [INFO] finished frobbing dewaka/aoc2018 [INFO] frobbed toml for dewaka/aoc2018 written to work/ex/clippy-test-run/sources/stable/gh/dewaka/aoc2018/Cargo.toml [INFO] started frobbing dewaka/aoc2018 [INFO] finished frobbing dewaka/aoc2018 [INFO] frobbed toml for dewaka/aoc2018 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dewaka/aoc2018/Cargo.toml [INFO] crate dewaka/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 dewaka/aoc2018 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/dewaka/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] d31ecc6181354feda4a0c53fd39542f44966392797e06bebe5932fada246fdde [INFO] running `"docker" "start" "-a" "d31ecc6181354feda4a0c53fd39542f44966392797e06bebe5932fada246fdde"` [INFO] [stderr] Checking aoc2018 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/day2.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | res [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/day2.rs:36:15 [INFO] [stderr] | [INFO] [stderr] 36 | let res = (two_count, three_count); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Ord`, `Ordering` [INFO] [stderr] --> src/day7.rs:2:16 [INFO] [stderr] | [INFO] [stderr] 2 | use std::cmp::{Ord, Ordering}; [INFO] [stderr] | ^^^ ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:67:12 [INFO] [stderr] | [INFO] [stderr] 67 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 68 | | if valid_day(day) { [INFO] [stderr] 69 | | solution_for(day); [INFO] [stderr] 70 | | } else { [INFO] [stderr] 71 | | println!("Invalid day: {}", day); [INFO] [stderr] 72 | | } [INFO] [stderr] 73 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 67 | } else if valid_day(day) { [INFO] [stderr] 68 | solution_for(day); [INFO] [stderr] 69 | } else { [INFO] [stderr] 70 | println!("Invalid day: {}", day); [INFO] [stderr] 71 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/day2.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | res [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/day2.rs:36:15 [INFO] [stderr] | [INFO] [stderr] 36 | let res = (two_count, three_count); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Ord`, `Ordering` [INFO] [stderr] --> src/day7.rs:2:16 [INFO] [stderr] | [INFO] [stderr] 2 | use std::cmp::{Ord, Ordering}; [INFO] [stderr] | ^^^ ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:67:12 [INFO] [stderr] | [INFO] [stderr] 67 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 68 | | if valid_day(day) { [INFO] [stderr] 69 | | solution_for(day); [INFO] [stderr] 70 | | } else { [INFO] [stderr] 71 | | println!("Invalid day: {}", day); [INFO] [stderr] 72 | | } [INFO] [stderr] 73 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 67 | } else if valid_day(day) { [INFO] [stderr] 68 | solution_for(day); [INFO] [stderr] 69 | } else { [INFO] [stderr] 70 | println!("Invalid day: {}", day); [INFO] [stderr] 71 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_change_from_str` [INFO] [stderr] --> src/day1.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | fn add_change_from_str(self, cstr: &str) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_changes_from_str` [INFO] [stderr] --> src/day1.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | fn add_changes_from_str(self, cstrs: &[&str]) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `from` [INFO] [stderr] --> src/day3.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | fn from(pos: (i32, i32), dim: (i32, i32)) -> Sheet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/day7.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | fn new(task: TaskName, depends_on: TaskName) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/day1.rs:28:14 [INFO] [stderr] | [INFO] [stderr] 28 | .expect(&format!("Failed to parse change: {}", cstr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Failed to parse change: {}", cstr))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/day1.rs:73:18 [INFO] [stderr] | [INFO] [stderr] 73 | .expect(&format!("could not parse change: {}", change)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("could not parse change: {}", change))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/day2.rs:25:20 [INFO] [stderr] | [INFO] [stderr] 25 | for (_, &c) in &fmap { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 25 | for &c in fmap.values() { [INFO] [stderr] | ^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/day2.rs:74:50 [INFO] [stderr] | [INFO] [stderr] 74 | .map(|(x, y)| if x == y { 0 } else { 1 }) [INFO] [stderr] | __________________________________________________^ [INFO] [stderr] 75 | | .fold(0, |acc, x| acc + x) [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day3.rs:68:27 [INFO] [stderr] | [INFO] [stderr] 68 | fn get_coords_map(claims: &Vec) -> HashMap<(i32, i32), i32> { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Claim]` [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: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/day3.rs:90:45 [INFO] [stderr] | [INFO] [stderr] 90 | .map(|&c| if c > 1 { 1 } else { 0 }) [INFO] [stderr] | _____________________________________________^ [INFO] [stderr] 91 | | .fold(0, |sum, c| sum + c) [INFO] [stderr] | |__________________________________^ help: try: `.sum()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [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/day3.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | claims: &Vec, [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Claim]` [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/day4.rs:142:25 [INFO] [stderr] | [INFO] [stderr] 142 | fn process(records: &Vec) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Record]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day4.rs:158:52 [INFO] [stderr] | [INFO] [stderr] 158 | let stat = stats.entry(id).or_insert(Stats::empty()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Stats::empty)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/day5.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | ('a' as u8..('z' as u8 + 1)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `('a' as u8..='z' as u8)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [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/day5.rs:53:6 [INFO] [stderr] | [INFO] [stderr] 53 | ('a' as u8..('z' as u8 + 1)) [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'a' [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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/day5.rs:53:18 [INFO] [stderr] | [INFO] [stderr] 53 | ('a' as u8..('z' as u8 + 1)) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'z' [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day6.rs:13:35 [INFO] [stderr] | [INFO] [stderr] 13 | fn find_closest(p: Point, points: &Vec) -> Option { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [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: this loop could be written as a `for` loop [INFO] [stderr] --> src/day6.rs:34:25 [INFO] [stderr] | [INFO] [stderr] 34 | while let Some(x) = stuff.next() { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `for x in stuff { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [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/day6.rs:57:25 [INFO] [stderr] | [INFO] [stderr] 57 | fn score_around(points: &Vec, bounds: &Bounds, out: i32) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [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: an inclusive range would be more readable [INFO] [stderr] --> src/day6.rs:59:14 [INFO] [stderr] | [INFO] [stderr] 59 | for i in bounds.min_x - out..bounds.max_x + out + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_x - out..=bounds.max_x + out` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/day6.rs:60:18 [INFO] [stderr] | [INFO] [stderr] 60 | for j in bounds.min_y - out..bounds.max_y + out + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_y - out..=bounds.max_y + out` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [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/day6.rs:73:46 [INFO] [stderr] | [INFO] [stderr] 73 | fn total_distance_to_point(p: Point, points: &Vec) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [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/day6.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | points: &Vec, [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [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: an inclusive range would be more readable [INFO] [stderr] --> src/day6.rs:87:14 [INFO] [stderr] | [INFO] [stderr] 87 | for i in bounds.min_x - around..bounds.max_x + around + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_x - around..=bounds.max_x + around` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/day6.rs:88:18 [INFO] [stderr] | [INFO] [stderr] 88 | for j in bounds.min_y - around..bounds.max_y + around + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_y - around..=bounds.max_y + around` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [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/day6.rs:100:29 [INFO] [stderr] | [INFO] [stderr] 100 | fn process_distance(points: &Vec, bounds: &Bounds) -> Option { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [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/day6.rs:119:22 [INFO] [stderr] | [INFO] [stderr] 119 | fn bounds_of(points: &Vec) -> Bounds { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [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: single-character string constant used as pattern [INFO] [stderr] --> src/day6.rs:157:45 [INFO] [stderr] | [INFO] [stderr] 157 | let parts: Vec<&str> = spoint.split(",").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/day1.rs:28:14 [INFO] [stderr] | [INFO] [stderr] 28 | .expect(&format!("Failed to parse change: {}", cstr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Failed to parse change: {}", cstr))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/day1.rs:73:18 [INFO] [stderr] | [INFO] [stderr] 73 | .expect(&format!("could not parse change: {}", change)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("could not parse change: {}", change))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/day1.rs:93:45 [INFO] [stderr] | [INFO] [stderr] 93 | assert_eq!(Frequency::new().add_changes(&vec!(1, 1, 1)), Frequency(3)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: you can use a slice directly: `&[1, 1, 1]` [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: useless use of `vec!` [INFO] [stderr] --> src/day1.rs:94:45 [INFO] [stderr] | [INFO] [stderr] 94 | assert_eq!(Frequency::new().add_changes(&vec!(1, 1, -2)), Frequency(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[1, 1, -2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/day1.rs:96:38 [INFO] [stderr] | [INFO] [stderr] 96 | Frequency::new().add_changes(&vec!(-1, -2, -3)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[-1, -2, -3]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/day1.rs:115:59 [INFO] [stderr] | [INFO] [stderr] 115 | Frequency::new().add_changes_from_str(&"+1".split(",").collect::>()), [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/day1.rs:120:67 [INFO] [stderr] | [INFO] [stderr] 120 | Frequency::new().add_changes_from_str(&"+1, +1, +1".split(",").collect::>()), [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/day1.rs:125:67 [INFO] [stderr] | [INFO] [stderr] 125 | Frequency::new().add_changes_from_str(&"+1, +1, -2".split(",").collect::>()), [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/day1.rs:130:67 [INFO] [stderr] | [INFO] [stderr] 130 | Frequency::new().add_changes_from_str(&"-1, -2, -3".split(",").collect::>()), [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/day1.rs:137:55 [INFO] [stderr] | [INFO] [stderr] 137 | assert_eq!(Frequency::new().first_repeating_value(&vec!(1, -1)), 0); [INFO] [stderr] | ^^^^^^^^^^^^ help: you can use a slice directly: `&[1, -1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/day1.rs:139:48 [INFO] [stderr] | [INFO] [stderr] 139 | Frequency::new().first_repeating_value(&vec!(3, 3, 4, -2, -4)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[3, 3, 4, -2, -4]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/day1.rs:143:48 [INFO] [stderr] | [INFO] [stderr] 143 | Frequency::new().first_repeating_value(&vec!(-6, 3, 8, 5, -6)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[-6, 3, 8, 5, -6]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/day1.rs:147:48 [INFO] [stderr] | [INFO] [stderr] 147 | Frequency::new().first_repeating_value(&vec!(7, 7, -2, -7, -4)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[7, 7, -2, -7, -4]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/day2.rs:25:20 [INFO] [stderr] | [INFO] [stderr] 25 | for (_, &c) in &fmap { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 25 | for &c in fmap.values() { [INFO] [stderr] | ^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/day2.rs:74:50 [INFO] [stderr] | [INFO] [stderr] 74 | .map(|(x, y)| if x == y { 0 } else { 1 }) [INFO] [stderr] | __________________________________________________^ [INFO] [stderr] 75 | | .fold(0, |acc, x| acc + x) [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day3.rs:68:27 [INFO] [stderr] | [INFO] [stderr] 68 | fn get_coords_map(claims: &Vec) -> HashMap<(i32, i32), i32> { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Claim]` [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: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/day3.rs:90:45 [INFO] [stderr] | [INFO] [stderr] 90 | .map(|&c| if c > 1 { 1 } else { 0 }) [INFO] [stderr] | _____________________________________________^ [INFO] [stderr] 91 | | .fold(0, |sum, c| sum + c) [INFO] [stderr] | |__________________________________^ help: try: `.sum()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [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/day3.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | claims: &Vec, [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Claim]` [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/day4.rs:142:25 [INFO] [stderr] | [INFO] [stderr] 142 | fn process(records: &Vec) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Record]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day4.rs:158:52 [INFO] [stderr] | [INFO] [stderr] 158 | let stat = stats.entry(id).or_insert(Stats::empty()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Stats::empty)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/day5.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | ('a' as u8..('z' as u8 + 1)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `('a' as u8..='z' as u8)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [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/day5.rs:53:6 [INFO] [stderr] | [INFO] [stderr] 53 | ('a' as u8..('z' as u8 + 1)) [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'a' [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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/day5.rs:53:18 [INFO] [stderr] | [INFO] [stderr] 53 | ('a' as u8..('z' as u8 + 1)) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'z' [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day6.rs:13:35 [INFO] [stderr] | [INFO] [stderr] 13 | fn find_closest(p: Point, points: &Vec) -> Option { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [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: this loop could be written as a `for` loop [INFO] [stderr] --> src/day6.rs:34:25 [INFO] [stderr] | [INFO] [stderr] 34 | while let Some(x) = stuff.next() { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `for x in stuff { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [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/day6.rs:57:25 [INFO] [stderr] | [INFO] [stderr] 57 | fn score_around(points: &Vec, bounds: &Bounds, out: i32) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [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: an inclusive range would be more readable [INFO] [stderr] --> src/day6.rs:59:14 [INFO] [stderr] | [INFO] [stderr] 59 | for i in bounds.min_x - out..bounds.max_x + out + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_x - out..=bounds.max_x + out` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/day6.rs:60:18 [INFO] [stderr] | [INFO] [stderr] 60 | for j in bounds.min_y - out..bounds.max_y + out + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_y - out..=bounds.max_y + out` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [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/day6.rs:73:46 [INFO] [stderr] | [INFO] [stderr] 73 | fn total_distance_to_point(p: Point, points: &Vec) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [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/day6.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | points: &Vec, [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [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: an inclusive range would be more readable [INFO] [stderr] --> src/day6.rs:87:14 [INFO] [stderr] | [INFO] [stderr] 87 | for i in bounds.min_x - around..bounds.max_x + around + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_x - around..=bounds.max_x + around` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/day6.rs:88:18 [INFO] [stderr] | [INFO] [stderr] 88 | for j in bounds.min_y - around..bounds.max_y + around + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_y - around..=bounds.max_y + around` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [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/day6.rs:100:29 [INFO] [stderr] | [INFO] [stderr] 100 | fn process_distance(points: &Vec, bounds: &Bounds) -> Option { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [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/day6.rs:119:22 [INFO] [stderr] | [INFO] [stderr] 119 | fn bounds_of(points: &Vec) -> Bounds { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [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: single-character string constant used as pattern [INFO] [stderr] --> src/day6.rs:157:45 [INFO] [stderr] | [INFO] [stderr] 157 | let parts: Vec<&str> = spoint.split(",").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.02s [INFO] running `"docker" "inspect" "d31ecc6181354feda4a0c53fd39542f44966392797e06bebe5932fada246fdde"` [INFO] running `"docker" "rm" "-f" "d31ecc6181354feda4a0c53fd39542f44966392797e06bebe5932fada246fdde"` [INFO] [stdout] d31ecc6181354feda4a0c53fd39542f44966392797e06bebe5932fada246fdde