[INFO] cloning repository https://github.com/FruitPunchSamurai1961/advent_of_code_2023 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/FruitPunchSamurai1961/advent_of_code_2023" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFruitPunchSamurai1961%2Fadvent_of_code_2023", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFruitPunchSamurai1961%2Fadvent_of_code_2023'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 043ac9fd341491a807f8ddc1fe83f654ed5e1c7e [INFO] linting FruitPunchSamurai1961/advent_of_code_2023 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFruitPunchSamurai1961%2Fadvent_of_code_2023" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/FruitPunchSamurai1961/advent_of_code_2023 [INFO] finished tweaking git repo https://github.com/FruitPunchSamurai1961/advent_of_code_2023 [INFO] tweaked toml for git repo https://github.com/FruitPunchSamurai1961/advent_of_code_2023 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/FruitPunchSamurai1961/advent_of_code_2023 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/FruitPunchSamurai1961/advent_of_code_2023 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded clap v4.4.18 [INFO] [stderr] Downloaded clap_builder v4.4.18 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4deec342df0e2da35053f118c1031bae8ccae263ba04bac002aa283e782e3aa2 [INFO] running `Command { std: "docker" "start" "-a" "4deec342df0e2da35053f118c1031bae8ccae263ba04bac002aa283e782e3aa2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4deec342df0e2da35053f118c1031bae8ccae263ba04bac002aa283e782e3aa2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4deec342df0e2da35053f118c1031bae8ccae263ba04bac002aa283e782e3aa2", kill_on_drop: false }` [INFO] [stdout] 4deec342df0e2da35053f118c1031bae8ccae263ba04bac002aa283e782e3aa2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d31a9de55fe9186833ad36e1bdc97b2f31bd3127652cbe3574b06e1867243f3e [INFO] running `Command { std: "docker" "start" "-a" "d31a9de55fe9186833ad36e1bdc97b2f31bd3127652cbe3574b06e1867243f3e", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.78 [INFO] [stderr] Checking anstyle-query v1.0.2 [INFO] [stderr] Checking clap_lex v0.6.0 [INFO] [stderr] Checking anstyle-parse v0.2.3 [INFO] [stderr] Checking anstream v0.6.11 [INFO] [stderr] Checking clap_builder v4.4.18 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Compiling syn v2.0.48 [INFO] [stderr] Compiling clap_derive v4.4.7 [INFO] [stderr] Checking clap v4.4.18 [INFO] [stderr] Checking advent_of_code_2023 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_1.rs:20:21 [INFO] [stdout] | [INFO] [stdout] 20 | .filter(|x| x.is_digit(10)) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `x.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day_2.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | return self.blue * self.green * self.red; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 - return self.blue * self.green * self.red; [INFO] [stdout] 13 + self.blue * self.green * self.red [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_3.rs:30:63 [INFO] [stdout] | [INFO] [stdout] 30 | ... if !hash_set.contains(&(outer_idx, inner_idx)) && val.is_digit(10) && has_neighbor_symbol(inner_idx as i64, outer_idx as i64, ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `val.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_3.rs:30:139 [INFO] [stdout] | [INFO] [stdout] 30 | ...hbor_symbol(inner_idx as i64, outer_idx as i64, &arr) { [INFO] [stdout] | ^^^^ help: change this to: `arr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day_3.rs:44:95 [INFO] [stdout] | [INFO] [stdout] 44 | if 0 <= x && x < n && 0 <= y && y < m && !arr[x as usize][y as usize].is_digit(10) && !(arr[x as usize][y as usize] == '.') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(arr[x as usize][y as usize] != '.')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_3.rs:38:61 [INFO] [stdout] | [INFO] [stdout] 38 | fn has_neighbor_symbol(inner_idx: i64, outer_idx: i64, arr: &Vec>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 38 - fn has_neighbor_symbol(inner_idx: i64, outer_idx: i64, arr: &Vec>) -> bool { [INFO] [stdout] 38 + fn has_neighbor_symbol(inner_idx: i64, outer_idx: i64, arr: &[Vec]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_3.rs:44:51 [INFO] [stdout] | [INFO] [stdout] 44 | if 0 <= x && x < n && 0 <= y && y < m && !arr[x as usize][y as usize].is_digit(10) && !(arr[x as usize][y as usize] == '.') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `arr[x as usize][y as usize].is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_3.rs:51:61 [INFO] [stdout] | [INFO] [stdout] 51 | fn get_full_number(outer_idx: usize, inner_idx: usize, arr: &Vec, hash_set: &mut HashSet<(usize, usize)>) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 51 - fn get_full_number(outer_idx: usize, inner_idx: usize, arr: &Vec, hash_set: &mut HashSet<(usize, usize)>) -> u64 { [INFO] [stdout] 51 + fn get_full_number(outer_idx: usize, inner_idx: usize, arr: &[char], hash_set: &mut HashSet<(usize, usize)>) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_3.rs:55:38 [INFO] [stdout] | [INFO] [stdout] 55 | while (start as i64 - 1) >= 0 && arr[start - 1].is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `arr[start - 1].is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_3.rs:61:30 [INFO] [stdout] | [INFO] [stdout] 61 | while end < arr.len() && arr[end].is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `arr[end].is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idx` is used to index `arr` [INFO] [stdout] --> src/day_3.rs:65:16 [INFO] [stdout] | [INFO] [stdout] 65 | for idx in start..end { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 65 - for idx in start..end { [INFO] [stdout] 65 + for (idx, ) in arr.iter().enumerate().take(end).skip(start) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_3.rs:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | if !val.is_digit(10) && *val != '.' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `val.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_3.rs:78:78 [INFO] [stdout] | [INFO] [stdout] 78 | answer += get_gear_ratio(inner_idx as i64, outer_idx as i64, &arr); [INFO] [stdout] | ^^^^ help: change this to: `arr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day_3.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | return answer; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 100 - return answer; [INFO] [stdout] 100 + answer [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_3.rs:85:56 [INFO] [stdout] | [INFO] [stdout] 85 | fn get_gear_ratio(inner_idx: i64, outer_idx: i64, arr: &Vec>) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 85 - fn get_gear_ratio(inner_idx: i64, outer_idx: i64, arr: &Vec>) -> u64 { [INFO] [stdout] 85 + fn get_gear_ratio(inner_idx: i64, outer_idx: i64, arr: &[Vec]) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_3.rs:94:99 [INFO] [stdout] | [INFO] [stdout] 94 | ... as usize)) && arr[x as usize][y as usize].is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `arr[x as usize][y as usize].is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/helper.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | .filter(|x| x.is_digit(10)) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `x.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helper.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | return num; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 24 - return num; [INFO] [stdout] 24 + num [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day_5.rs:61:32 [INFO] [stdout] | [INFO] [stdout] 61 | fn parse_input(input: &str) -> (Vec<(u64, u64)>, Vec<(u64, u64)>, HashMap) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/day_5.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | while let Some(line) = lines.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for line in lines` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] = note: `#[warn(clippy::while_let_on_iterator)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/day_5.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | current_section.push_str("\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `current_section.push('\n')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day_5.rs:140:5 [INFO] [stdout] | [INFO] [stdout] 140 | return get_lowest_from_ranges(&location_range); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 140 - return get_lowest_from_ranges(&location_range); [INFO] [stdout] 140 + get_lowest_from_ranges(&location_range) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_6.rs:26:45 [INFO] [stdout] | [INFO] [stdout] 26 | let part_one_races = get_part_one_races(&input); [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_6.rs:27:44 [INFO] [stdout] | [INFO] [stdout] 27 | let part_two_races = get_part_two_race(&input); [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found call to `str::trim` before `str::split_whitespace` [INFO] [stdout] --> src/day_6.rs:44:10 [INFO] [stdout] | [INFO] [stdout] 44 | .trim() [INFO] [stdout] | __________^ [INFO] [stdout] 45 | | .split_whitespace() [INFO] [stdout] | |_________^ help: remove `trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trim_split_whitespace [INFO] [stdout] = note: `#[warn(clippy::trim_split_whitespace)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found call to `str::trim` before `str::split_whitespace` [INFO] [stdout] --> src/day_6.rs:50:10 [INFO] [stdout] | [INFO] [stdout] 50 | .trim() [INFO] [stdout] | __________^ [INFO] [stdout] 51 | | .split_whitespace() [INFO] [stdout] | |_________^ help: remove `trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trim_split_whitespace [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/day_6.rs:56:51 [INFO] [stdout] | [INFO] [stdout] 56 | for (time, distance) in times.into_iter().zip(distances.into_iter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 56 - for (time, distance) in times.into_iter().zip(distances.into_iter()) { [INFO] [stdout] 56 + for (time, distance) in times.into_iter().zip(distances) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found call to `str::trim` before `str::split_whitespace` [INFO] [stdout] --> src/day_6.rs:70:10 [INFO] [stdout] | [INFO] [stdout] 70 | .trim() [INFO] [stdout] | __________^ [INFO] [stdout] 71 | | .split_whitespace() [INFO] [stdout] | |_________^ help: remove `trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trim_split_whitespace [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found call to `str::trim` before `str::split_whitespace` [INFO] [stdout] --> src/day_6.rs:79:10 [INFO] [stdout] | [INFO] [stdout] 79 | .trim() [INFO] [stdout] | __________^ [INFO] [stdout] 80 | | .split_whitespace() [INFO] [stdout] | |_________^ help: remove `trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trim_split_whitespace [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_6.rs:95:26 [INFO] [stdout] | [INFO] [stdout] 95 | fn solve_part_one(races: &Vec) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 95 - fn solve_part_one(races: &Vec) -> u64 { [INFO] [stdout] 95 + fn solve_part_one(races: &[Race]) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FIVE` contains a capitalized acronym [INFO] [stdout] --> src/day_7.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | FIVE = 1, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Five` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FOUR` contains a capitalized acronym [INFO] [stdout] --> src/day_7.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | FOUR = 2, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Four` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FULL` contains a capitalized acronym [INFO] [stdout] --> src/day_7.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | FULL = 3, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Full` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `THREE` contains a capitalized acronym [INFO] [stdout] --> src/day_7.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | THREE = 4, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Three` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `TWO` contains a capitalized acronym [INFO] [stdout] --> src/day_7.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | TWO = 5, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Two` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ONE` contains a capitalized acronym [INFO] [stdout] --> src/day_7.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | ONE = 6, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `One` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `HIGH` contains a capitalized acronym [INFO] [stdout] --> src/day_7.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | HIGH = 7, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `High` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_1.rs:20:21 [INFO] [stdout] | [INFO] [stdout] 20 | .filter(|x| x.is_digit(10)) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `x.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/day_7.rs:65:20 [INFO] [stdout] | [INFO] [stdout] 65 | if counts.iter().any(|&x| x == 4) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `counts.contains(&4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/day_7.rs:72:20 [INFO] [stdout] | [INFO] [stdout] 72 | if counts.iter().any(|&x| x == 3) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `counts.contains(&3)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day_2.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | return self.blue * self.green * self.red; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 - return self.blue * self.green * self.red; [INFO] [stdout] 13 + self.blue * self.green * self.red [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> src/day_7.rs:148:1 [INFO] [stdout] | [INFO] [stdout] 148 | / impl PartialOrd for CamelCard { [INFO] [stdout] 149 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 150 | | match self.kind.cmp(&other.kind) { [INFO] [stdout] 151 | | Ordering::Less => { Some(Ordering::Less) } [INFO] [stdout] ... | [INFO] [stdout] 165 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 149 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 150 - match self.kind.cmp(&other.kind) { [INFO] [stdout] 151 - Ordering::Less => { Some(Ordering::Less) } [INFO] [stdout] 152 - Ordering::Equal => { [INFO] [stdout] 153 - for (self_strength, other_strength) in self.label_strength.iter().zip(other.label_strength.iter()) { [INFO] [stdout] 154 - match self_strength.cmp(other_strength) { [INFO] [stdout] 155 - Ordering::Less => return Some(Ordering::Less), [INFO] [stdout] 156 - Ordering::Greater => return Some(Ordering::Greater), [INFO] [stdout] 157 - Ordering::Equal => continue, [INFO] [stdout] 158 - } [INFO] [stdout] 159 - } [INFO] [stdout] 160 - Some(self.bid.cmp(&other.bid)) [INFO] [stdout] 161 - } [INFO] [stdout] 162 - Ordering::Greater => { Some(Ordering::Greater) } [INFO] [stdout] 163 - } [INFO] [stdout] 164 - } [INFO] [stdout] 149 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `rank` is used as a loop counter [INFO] [stdout] --> src/day_7.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | for card in camel_cards.camel_cards.iter().rev() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (rank, card) in (1..).zip(camel_cards.camel_cards.iter().rev())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day_8.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | return 0; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 72 - return 0; [INFO] [stdout] 72 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `children.get(0)` [INFO] [stdout] --> src/day_8.rs:98:34 [INFO] [stdout] | [INFO] [stdout] 98 | let left_child = children.get(0).and_then(|&child| nodes.get(child)).cloned(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `children.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_3.rs:30:63 [INFO] [stdout] | [INFO] [stdout] 30 | ... if !hash_set.contains(&(outer_idx, inner_idx)) && val.is_digit(10) && has_neighbor_symbol(inner_idx as i64, outer_idx as i64, ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `val.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_3.rs:30:139 [INFO] [stdout] | [INFO] [stdout] 30 | ...hbor_symbol(inner_idx as i64, outer_idx as i64, &arr) { [INFO] [stdout] | ^^^^ help: change this to: `arr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day_3.rs:44:95 [INFO] [stdout] | [INFO] [stdout] 44 | if 0 <= x && x < n && 0 <= y && y < m && !arr[x as usize][y as usize].is_digit(10) && !(arr[x as usize][y as usize] == '.') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(arr[x as usize][y as usize] != '.')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_3.rs:38:61 [INFO] [stdout] | [INFO] [stdout] 38 | fn has_neighbor_symbol(inner_idx: i64, outer_idx: i64, arr: &Vec>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 38 - fn has_neighbor_symbol(inner_idx: i64, outer_idx: i64, arr: &Vec>) -> bool { [INFO] [stdout] 38 + fn has_neighbor_symbol(inner_idx: i64, outer_idx: i64, arr: &[Vec]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_3.rs:44:51 [INFO] [stdout] | [INFO] [stdout] 44 | if 0 <= x && x < n && 0 <= y && y < m && !arr[x as usize][y as usize].is_digit(10) && !(arr[x as usize][y as usize] == '.') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `arr[x as usize][y as usize].is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_3.rs:51:61 [INFO] [stdout] | [INFO] [stdout] 51 | fn get_full_number(outer_idx: usize, inner_idx: usize, arr: &Vec, hash_set: &mut HashSet<(usize, usize)>) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 51 - fn get_full_number(outer_idx: usize, inner_idx: usize, arr: &Vec, hash_set: &mut HashSet<(usize, usize)>) -> u64 { [INFO] [stdout] 51 + fn get_full_number(outer_idx: usize, inner_idx: usize, arr: &[char], hash_set: &mut HashSet<(usize, usize)>) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_3.rs:55:38 [INFO] [stdout] | [INFO] [stdout] 55 | while (start as i64 - 1) >= 0 && arr[start - 1].is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `arr[start - 1].is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_3.rs:61:30 [INFO] [stdout] | [INFO] [stdout] 61 | while end < arr.len() && arr[end].is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `arr[end].is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idx` is used to index `arr` [INFO] [stdout] --> src/day_3.rs:65:16 [INFO] [stdout] | [INFO] [stdout] 65 | for idx in start..end { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 65 - for idx in start..end { [INFO] [stdout] 65 + for (idx, ) in arr.iter().enumerate().take(end).skip(start) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_3.rs:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | if !val.is_digit(10) && *val != '.' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `val.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_3.rs:78:78 [INFO] [stdout] | [INFO] [stdout] 78 | answer += get_gear_ratio(inner_idx as i64, outer_idx as i64, &arr); [INFO] [stdout] | ^^^^ help: change this to: `arr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day_3.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | return answer; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 100 - return answer; [INFO] [stdout] 100 + answer [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_3.rs:85:56 [INFO] [stdout] | [INFO] [stdout] 85 | fn get_gear_ratio(inner_idx: i64, outer_idx: i64, arr: &Vec>) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 85 - fn get_gear_ratio(inner_idx: i64, outer_idx: i64, arr: &Vec>) -> u64 { [INFO] [stdout] 85 + fn get_gear_ratio(inner_idx: i64, outer_idx: i64, arr: &[Vec]) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_3.rs:94:99 [INFO] [stdout] | [INFO] [stdout] 94 | ... as usize)) && arr[x as usize][y as usize].is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `arr[x as usize][y as usize].is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/helper.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | .filter(|x| x.is_digit(10)) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `x.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helper.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | return num; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 24 - return num; [INFO] [stdout] 24 + num [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day_5.rs:61:32 [INFO] [stdout] | [INFO] [stdout] 61 | fn parse_input(input: &str) -> (Vec<(u64, u64)>, Vec<(u64, u64)>, HashMap) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/day_5.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | while let Some(line) = lines.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for line in lines` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] = note: `#[warn(clippy::while_let_on_iterator)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/day_5.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | current_section.push_str("\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `current_section.push('\n')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day_5.rs:140:5 [INFO] [stdout] | [INFO] [stdout] 140 | return get_lowest_from_ranges(&location_range); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 140 - return get_lowest_from_ranges(&location_range); [INFO] [stdout] 140 + get_lowest_from_ranges(&location_range) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_6.rs:26:45 [INFO] [stdout] | [INFO] [stdout] 26 | let part_one_races = get_part_one_races(&input); [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_6.rs:27:44 [INFO] [stdout] | [INFO] [stdout] 27 | let part_two_races = get_part_two_race(&input); [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found call to `str::trim` before `str::split_whitespace` [INFO] [stdout] --> src/day_6.rs:44:10 [INFO] [stdout] | [INFO] [stdout] 44 | .trim() [INFO] [stdout] | __________^ [INFO] [stdout] 45 | | .split_whitespace() [INFO] [stdout] | |_________^ help: remove `trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trim_split_whitespace [INFO] [stdout] = note: `#[warn(clippy::trim_split_whitespace)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found call to `str::trim` before `str::split_whitespace` [INFO] [stdout] --> src/day_6.rs:50:10 [INFO] [stdout] | [INFO] [stdout] 50 | .trim() [INFO] [stdout] | __________^ [INFO] [stdout] 51 | | .split_whitespace() [INFO] [stdout] | |_________^ help: remove `trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trim_split_whitespace [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/day_6.rs:56:51 [INFO] [stdout] | [INFO] [stdout] 56 | for (time, distance) in times.into_iter().zip(distances.into_iter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 56 - for (time, distance) in times.into_iter().zip(distances.into_iter()) { [INFO] [stdout] 56 + for (time, distance) in times.into_iter().zip(distances) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found call to `str::trim` before `str::split_whitespace` [INFO] [stdout] --> src/day_6.rs:70:10 [INFO] [stdout] | [INFO] [stdout] 70 | .trim() [INFO] [stdout] | __________^ [INFO] [stdout] 71 | | .split_whitespace() [INFO] [stdout] | |_________^ help: remove `trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trim_split_whitespace [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found call to `str::trim` before `str::split_whitespace` [INFO] [stdout] --> src/day_6.rs:79:10 [INFO] [stdout] | [INFO] [stdout] 79 | .trim() [INFO] [stdout] | __________^ [INFO] [stdout] 80 | | .split_whitespace() [INFO] [stdout] | |_________^ help: remove `trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trim_split_whitespace [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_6.rs:95:26 [INFO] [stdout] | [INFO] [stdout] 95 | fn solve_part_one(races: &Vec) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 95 - fn solve_part_one(races: &Vec) -> u64 { [INFO] [stdout] 95 + fn solve_part_one(races: &[Race]) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FIVE` contains a capitalized acronym [INFO] [stdout] --> src/day_7.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | FIVE = 1, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Five` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FOUR` contains a capitalized acronym [INFO] [stdout] --> src/day_7.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | FOUR = 2, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Four` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FULL` contains a capitalized acronym [INFO] [stdout] --> src/day_7.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | FULL = 3, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Full` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `THREE` contains a capitalized acronym [INFO] [stdout] --> src/day_7.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | THREE = 4, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Three` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `TWO` contains a capitalized acronym [INFO] [stdout] --> src/day_7.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | TWO = 5, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Two` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ONE` contains a capitalized acronym [INFO] [stdout] --> src/day_7.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | ONE = 6, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `One` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `HIGH` contains a capitalized acronym [INFO] [stdout] --> src/day_7.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | HIGH = 7, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `High` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/day_7.rs:65:20 [INFO] [stdout] | [INFO] [stdout] 65 | if counts.iter().any(|&x| x == 4) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `counts.contains(&4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/day_7.rs:72:20 [INFO] [stdout] | [INFO] [stdout] 72 | if counts.iter().any(|&x| x == 3) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `counts.contains(&3)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> src/day_7.rs:148:1 [INFO] [stdout] | [INFO] [stdout] 148 | / impl PartialOrd for CamelCard { [INFO] [stdout] 149 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 150 | | match self.kind.cmp(&other.kind) { [INFO] [stdout] 151 | | Ordering::Less => { Some(Ordering::Less) } [INFO] [stdout] ... | [INFO] [stdout] 165 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 149 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 150 - match self.kind.cmp(&other.kind) { [INFO] [stdout] 151 - Ordering::Less => { Some(Ordering::Less) } [INFO] [stdout] 152 - Ordering::Equal => { [INFO] [stdout] 153 - for (self_strength, other_strength) in self.label_strength.iter().zip(other.label_strength.iter()) { [INFO] [stdout] 154 - match self_strength.cmp(other_strength) { [INFO] [stdout] 155 - Ordering::Less => return Some(Ordering::Less), [INFO] [stdout] 156 - Ordering::Greater => return Some(Ordering::Greater), [INFO] [stdout] 157 - Ordering::Equal => continue, [INFO] [stdout] 158 - } [INFO] [stdout] 159 - } [INFO] [stdout] 160 - Some(self.bid.cmp(&other.bid)) [INFO] [stdout] 161 - } [INFO] [stdout] 162 - Ordering::Greater => { Some(Ordering::Greater) } [INFO] [stdout] 163 - } [INFO] [stdout] 164 - } [INFO] [stdout] 149 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `rank` is used as a loop counter [INFO] [stdout] --> src/day_7.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | for card in camel_cards.camel_cards.iter().rev() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (rank, card) in (1..).zip(camel_cards.camel_cards.iter().rev())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day_8.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | return 0; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 72 - return 0; [INFO] [stdout] 72 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `children.get(0)` [INFO] [stdout] --> src/day_8.rs:98:34 [INFO] [stdout] | [INFO] [stdout] 98 | let left_child = children.get(0).and_then(|&child| nodes.get(child)).cloned(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `children.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/main.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | let days; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `days` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 14 ~ [INFO] [stdout] 15 | [INFO] [stdout] 16 ~ let days = if !args.days.is_empty() { [INFO] [stdout] 17 ~ args.days [INFO] [stdout] 18 | } else { [INFO] [stdout] 19 ~ (1..=25).collect() [INFO] [stdout] 20 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/main.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | let days; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `days` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 14 ~ [INFO] [stdout] 15 | [INFO] [stdout] 16 ~ let days = if !args.days.is_empty() { [INFO] [stdout] 17 ~ args.days [INFO] [stdout] 18 | } else { [INFO] [stdout] 19 ~ (1..=25).collect() [INFO] [stdout] 20 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.50s [INFO] running `Command { std: "docker" "inspect" "d31a9de55fe9186833ad36e1bdc97b2f31bd3127652cbe3574b06e1867243f3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d31a9de55fe9186833ad36e1bdc97b2f31bd3127652cbe3574b06e1867243f3e", kill_on_drop: false }` [INFO] [stdout] d31a9de55fe9186833ad36e1bdc97b2f31bd3127652cbe3574b06e1867243f3e