[INFO] cloning repository https://github.com/zoldseges/aoc2021 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zoldseges/aoc2021" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzoldseges%2Faoc2021", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzoldseges%2Faoc2021'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7ed0323be493021f44ad8d1a324e594e9ca87bb2 [INFO] linting zoldseges/aoc2021 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzoldseges%2Faoc2021" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/zoldseges/aoc2021 [INFO] finished tweaking git repo https://github.com/zoldseges/aoc2021 [INFO] tweaked toml for git repo https://github.com/zoldseges/aoc2021 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/zoldseges/aoc2021 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/zoldseges/aoc2021 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 71272f5a3a36ea5d02e6ef357454967a5403ea86cf3f7cb7e892ef271369ef16 [INFO] running `Command { std: "docker" "start" "-a" "71272f5a3a36ea5d02e6ef357454967a5403ea86cf3f7cb7e892ef271369ef16", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "71272f5a3a36ea5d02e6ef357454967a5403ea86cf3f7cb7e892ef271369ef16", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "71272f5a3a36ea5d02e6ef357454967a5403ea86cf3f7cb7e892ef271369ef16", kill_on_drop: false }` [INFO] [stdout] 71272f5a3a36ea5d02e6ef357454967a5403ea86cf3f7cb7e892ef271369ef16 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] b3a27b40e994e3825234b55dbb47f209483b56d05052891b2c80f689c78ecd1d [INFO] running `Command { std: "docker" "start" "-a" "b3a27b40e994e3825234b55dbb47f209483b56d05052891b2c80f689c78ecd1d", kill_on_drop: false }` [INFO] [stderr] Checking aoc2021 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: value assigned to `base` is never read [INFO] [stdout] --> src/puzzles/day14/mod.rs:22:32 [INFO] [stdout] | [INFO] [stdout] 22 | let mut base: String = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `from` is never read [INFO] [stdout] --> src/puzzles/day14/mod.rs:28:28 [INFO] [stdout] | [INFO] [stdout] 28 | let mut from = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/puzzles/day10/mod.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | Opening(char), [INFO] [stdout] | ------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 45 - Opening(char), [INFO] [stdout] 45 + Opening(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Input` is never constructed [INFO] [stdout] --> src/puzzles/day14/mod.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | struct Input { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/puzzles/day14/mod.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 20 | impl Input { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 21 | fn new(input: &str) -> Input { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/utils.rs:22:6 [INFO] [stdout] | [INFO] [stdout] 22 | / if col < self.cols && [INFO] [stdout] 23 | | row < self.rows{ [INFO] [stdout] 24 | | true [INFO] [stdout] ... | [INFO] [stdout] 27 | | false [INFO] [stdout] 28 | | } [INFO] [stdout] | |_________^ help: you can reduce it to: `col < self.cols && row < self.rows` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils.rs:79:3 [INFO] [stdout] | [INFO] [stdout] 79 | return Some(res); [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] 79 - return Some(res); [INFO] [stdout] 79 + Some(res) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils.rs:81:3 [INFO] [stdout] | [INFO] [stdout] 81 | return None; [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] 81 - return None; [INFO] [stdout] 81 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day02/mod.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | String::from(format!("{}", pos[0] * pos[1])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}", pos[0] * pos[1])` [INFO] [stdout] | [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] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day02/mod.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | String::from(format!("{}", pos[0] * pos[1])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}", pos[0] * pos[1])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/puzzles/day03/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | let gamma; [INFO] [stdout] | ^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 48 | gamma = bin_vec_to_dec(gamma_vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [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 `gamma` here [INFO] [stdout] | [INFO] [stdout] 22 ~ [INFO] [stdout] 23 | let epsilon; [INFO] [stdout] ... [INFO] [stdout] 47 | } [INFO] [stdout] 48 ~ let gamma = bin_vec_to_dec(gamma_vec); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/puzzles/day03/mod.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | let epsilon; [INFO] [stdout] | ^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 49 | epsilon = bin_vec_to_dec(epsilon_vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `epsilon` here [INFO] [stdout] | [INFO] [stdout] 23 ~ [INFO] [stdout] 24 | [INFO] [stdout] ... [INFO] [stdout] 48 | gamma = bin_vec_to_dec(gamma_vec); [INFO] [stdout] 49 ~ let epsilon = bin_vec_to_dec(epsilon_vec); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/puzzles/day03/mod.rs:105:2 [INFO] [stdout] | [INFO] [stdout] 105 | expect(&(format!("couldn't convert {} to decimal", &res_string))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("couldn't convert {} to decimal", &res_string))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `base` is never read [INFO] [stdout] --> src/puzzles/day14/mod.rs:22:32 [INFO] [stdout] | [INFO] [stdout] 22 | let mut base: String = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `from` is never read [INFO] [stdout] --> src/puzzles/day14/mod.rs:28:28 [INFO] [stdout] | [INFO] [stdout] 28 | let mut from = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/puzzles/day14/mod.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | let input = Input::new(get_input()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a new box [INFO] [stdout] --> src/puzzles/day03/mod.rs:125:11 [INFO] [stdout] | [INFO] [stdout] 125 | 0 => self.left_0 = Box::new(Some(new)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace existing content with inner value instead: `*self.left_0 = Some(new)` [INFO] [stdout] | [INFO] [stdout] = note: this creates a needless allocation [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#replace_box [INFO] [stdout] = note: `#[warn(clippy::replace_box)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a new box [INFO] [stdout] --> src/puzzles/day03/mod.rs:126:11 [INFO] [stdout] | [INFO] [stdout] 126 | 1 => self.right_1 = Box::new(Some(new)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace existing content with inner value instead: `*self.right_1 = Some(new)` [INFO] [stdout] | [INFO] [stdout] = note: this creates a needless allocation [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#replace_box [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/puzzles/day10/mod.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | Opening(char), [INFO] [stdout] | ------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 45 - Opening(char), [INFO] [stdout] 45 + Opening(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `base` and `rules` are never read [INFO] [stdout] --> src/puzzles/day14/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 15 | struct Input { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 16 | base: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 17 | rules: HashMap, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/puzzles/day03/mod.rs:175:5 [INFO] [stdout] | [INFO] [stdout] 175 | if value.to_owned() == 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day04/mod.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | Some(String::from(format!("{}", sum * draw))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}", sum * draw)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day04/mod.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | Some(String::from(format!("{}", sum * draw))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}", sum * draw)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/puzzles/day04/mod.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | (Vec, Vec<[[i32; 5]; 5]>, 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 if-then-else expression returns a bool literal [INFO] [stdout] --> src/utils.rs:22:6 [INFO] [stdout] | [INFO] [stdout] 22 | / if col < self.cols && [INFO] [stdout] 23 | | row < self.rows{ [INFO] [stdout] 24 | | true [INFO] [stdout] ... | [INFO] [stdout] 27 | | false [INFO] [stdout] 28 | | } [INFO] [stdout] | |_________^ help: you can reduce it to: `col < self.cols && row < self.rows` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `board` [INFO] [stdout] --> src/puzzles/day04/mod.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | for i in 0..5 { [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] 32 - for i in 0..5 { [INFO] [stdout] 32 + for (i, ) in board.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `board` [INFO] [stdout] --> src/puzzles/day04/mod.rs:50:14 [INFO] [stdout] | [INFO] [stdout] 50 | for i in 0..5 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 50 - for i in 0..5 { [INFO] [stdout] 50 + for in &board { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils.rs:79:3 [INFO] [stdout] | [INFO] [stdout] 79 | return Some(res); [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] 79 - return Some(res); [INFO] [stdout] 79 + Some(res) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils.rs:81:3 [INFO] [stdout] | [INFO] [stdout] 81 | return None; [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] 81 - return None; [INFO] [stdout] 81 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `board` [INFO] [stdout] --> src/puzzles/day04/mod.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | for i in 0..5 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 56 - for i in 0..5 { [INFO] [stdout] 56 + for in &board { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/puzzles/day04/mod.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | / (Vec, [INFO] [stdout] 68 | | Vec<[[i32; 5]; 5]>, [INFO] [stdout] 69 | | 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] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/puzzles/day04/mod.rs:81:2 [INFO] [stdout] | [INFO] [stdout] 81 | / match hashmap.get(&draw){ [INFO] [stdout] 82 | | Some(vec) => { [INFO] [stdout] 83 | | for (board_no, y, x) in vec { [INFO] [stdout] 84 | | boards[*board_no][*y][*x] = -1; [INFO] [stdout] ... | [INFO] [stdout] 99 | | None => (), [INFO] [stdout] 100 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 81 ~ if let Some(vec) = hashmap.get(&draw) { [INFO] [stdout] 82 ~ for (board_no, y, x) in vec { [INFO] [stdout] 83 ~ boards[*board_no][*y][*x] = -1; [INFO] [stdout] 84 ~ if check_win(boards[*board_no], (*board_no, *y, *x)) { [INFO] [stdout] 85 ~ winning_boards.insert(*board_no); [INFO] [stdout] 86 ~ sum = sum_board(boards[*board_no]); [INFO] [stdout] 87 ~ l_draw = draw; [INFO] [stdout] 88 ~ if first_winning { [INFO] [stdout] 89 ~ break; [INFO] [stdout] 90 ~ } else { [INFO] [stdout] 91 ~ if win_set_len == winning_boards.len() { [INFO] [stdout] 92 ~ break; [INFO] [stdout] 93 ~ } [INFO] [stdout] 94 ~ } [INFO] [stdout] 95 ~ } [INFO] [stdout] 96 ~ } [INFO] [stdout] 97 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day05/mod.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | Some(String::from(format!("{}", [INFO] [stdout] | __________^ [INFO] [stdout] 11 | | get_solution(true, input)))) [INFO] [stdout] | |_____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 10 ~ Some(format!("{}", [INFO] [stdout] 11 ~ get_solution(true, input))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day05/mod.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | Some(String::from(format!("{}", [INFO] [stdout] | __________^ [INFO] [stdout] 17 | | get_solution(false, input)))) [INFO] [stdout] | |______________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 16 ~ Some(format!("{}", [INFO] [stdout] 17 ~ get_solution(false, input))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day06/mod.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | Some(String::from(format!( [INFO] [stdout] | __________^ [INFO] [stdout] 9 | | "{}", no_fishes_after_n_days(&fishes, 80)))) [INFO] [stdout] | |_______________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 8 ~ Some(format!( [INFO] [stdout] 9 ~ "{}", no_fishes_after_n_days(&fishes, 80))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day06/mod.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | Some(String::from(format!( [INFO] [stdout] | __________^ [INFO] [stdout] 16 | | "{}", no_fishes_after_n_days(&fishes, 256)))) [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 15 ~ Some(format!( [INFO] [stdout] 16 ~ "{}", no_fishes_after_n_days(&fishes, 256))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day07/mod.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | Some(String::from(format!( [INFO] [stdout] | __________^ [INFO] [stdout] 10 | | "{}", pos.0))) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 9 ~ Some(format!( [INFO] [stdout] 10 ~ "{}", pos.0)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day07/mod.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | Some(String::from(format!( [INFO] [stdout] | __________^ [INFO] [stdout] 18 | | "{}", pos.0))) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 17 ~ Some(format!( [INFO] [stdout] 18 ~ "{}", pos.0)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day07/mod.rs:31:2 [INFO] [stdout] | [INFO] [stdout] 31 | 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] 31 - return 0; [INFO] [stdout] 31 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day07/mod.rs:33:2 [INFO] [stdout] | [INFO] [stdout] 33 | return input + steping_function(input - 1); [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] 33 - return input + steping_function(input - 1); [INFO] [stdout] 33 + input + steping_function(input - 1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting the result of `i32::abs()` to u32 [INFO] [stdout] --> src/puzzles/day07/mod.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | tmp.0 += (i as i32 - *pos as i32).abs() as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(i as i32 - *pos as i32).unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] = note: `#[warn(clippy::cast_abs_to_unsigned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting the result of `i32::abs()` to u32 [INFO] [stdout] --> src/puzzles/day07/mod.rs:50:29 [INFO] [stdout] | [INFO] [stdout] 50 | tmp.0 += steping_function((i as i32 - *pos as i32).abs() as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(i as i32 - *pos as i32).unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day08/mod.rs:58:10 [INFO] [stdout] | [INFO] [stdout] 58 | Some(String::from(format!( [INFO] [stdout] | __________^ [INFO] [stdout] 59 | | "{}", get_solution_p1(input)))) [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 58 ~ Some(format!( [INFO] [stdout] 59 ~ "{}", get_solution_p1(input))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day08/mod.rs:64:10 [INFO] [stdout] | [INFO] [stdout] 64 | Some(String::from(format!( [INFO] [stdout] | __________^ [INFO] [stdout] 65 | | "{}", get_solution_p2(input)))) [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 64 ~ Some(format!( [INFO] [stdout] 65 ~ "{}", get_solution_p2(input))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day02/mod.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | String::from(format!("{}", pos[0] * pos[1])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}", pos[0] * pos[1])` [INFO] [stdout] | [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] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day02/mod.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | String::from(format!("{}", pos[0] * pos[1])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}", pos[0] * pos[1])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/puzzles/day03/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | let gamma; [INFO] [stdout] | ^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 48 | gamma = bin_vec_to_dec(gamma_vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [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 `gamma` here [INFO] [stdout] | [INFO] [stdout] 22 ~ [INFO] [stdout] 23 | let epsilon; [INFO] [stdout] ... [INFO] [stdout] 47 | } [INFO] [stdout] 48 ~ let gamma = bin_vec_to_dec(gamma_vec); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/puzzles/day03/mod.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | let epsilon; [INFO] [stdout] | ^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 49 | epsilon = bin_vec_to_dec(epsilon_vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `epsilon` here [INFO] [stdout] | [INFO] [stdout] 23 ~ [INFO] [stdout] 24 | [INFO] [stdout] ... [INFO] [stdout] 48 | gamma = bin_vec_to_dec(gamma_vec); [INFO] [stdout] 49 ~ let epsilon = bin_vec_to_dec(epsilon_vec); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/puzzles/day03/mod.rs:105:2 [INFO] [stdout] | [INFO] [stdout] 105 | expect(&(format!("couldn't convert {} to decimal", &res_string))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("couldn't convert {} to decimal", &res_string))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day10/mod.rs:10:2 [INFO] [stdout] | [INFO] [stdout] 10 | return Some(SOLUTIONS.0.to_string()); [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] 10 - return Some(SOLUTIONS.0.to_string()); [INFO] [stdout] 10 + Some(SOLUTIONS.0.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day10/mod.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | return Some(SOLUTIONS.1.to_string()); [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] 19 - return Some(SOLUTIONS.1.to_string()); [INFO] [stdout] 19 + Some(SOLUTIONS.1.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a new box [INFO] [stdout] --> src/puzzles/day03/mod.rs:125:11 [INFO] [stdout] | [INFO] [stdout] 125 | 0 => self.left_0 = Box::new(Some(new)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace existing content with inner value instead: `*self.left_0 = Some(new)` [INFO] [stdout] | [INFO] [stdout] = note: this creates a needless allocation [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#replace_box [INFO] [stdout] = note: `#[warn(clippy::replace_box)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a new box [INFO] [stdout] --> src/puzzles/day03/mod.rs:126:11 [INFO] [stdout] | [INFO] [stdout] 126 | 1 => self.right_1 = Box::new(Some(new)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace existing content with inner value instead: `*self.right_1 = Some(new)` [INFO] [stdout] | [INFO] [stdout] = note: this creates a needless allocation [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#replace_box [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/puzzles/day10/mod.rs:78:10 [INFO] [stdout] | [INFO] [stdout] 78 | if !(vec.pop() == Some(t)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(vec.pop() != Some(t))` [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: this creates an owned instance just for comparison [INFO] [stdout] --> src/puzzles/day03/mod.rs:175:5 [INFO] [stdout] | [INFO] [stdout] 175 | if value.to_owned() == 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day04/mod.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | Some(String::from(format!("{}", sum * draw))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}", sum * draw)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day04/mod.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | Some(String::from(format!("{}", sum * draw))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}", sum * draw)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/puzzles/day04/mod.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | (Vec, Vec<[[i32; 5]; 5]>, 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: the loop variable `i` is used to index `board` [INFO] [stdout] --> src/puzzles/day04/mod.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | for i in 0..5 { [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] 32 - for i in 0..5 { [INFO] [stdout] 32 + for (i, ) in board.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/puzzles/day13/mod.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | if let Some(_) = line.find(",") { [INFO] [stdout] | -------^^^^^^^----------------- help: try: `if line.find(",").is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/puzzles/day13/mod.rs:35:16 [INFO] [stdout] | [INFO] [stdout] 35 | } else if let Some(_) = line.find("=") { [INFO] [stdout] | -------^^^^^^^----------------- help: try: `if line.find("=").is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `board` [INFO] [stdout] --> src/puzzles/day04/mod.rs:50:14 [INFO] [stdout] | [INFO] [stdout] 50 | for i in 0..5 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 50 - for i in 0..5 { [INFO] [stdout] 50 + for in &board { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/puzzles/day13/mod.rs:40:13 [INFO] [stdout] | [INFO] [stdout] 40 | if let Some(_) = line.find("x") { [INFO] [stdout] | -------^^^^^^^----------------- help: try: `if line.find("x").is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `board` [INFO] [stdout] --> src/puzzles/day04/mod.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | for i in 0..5 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 56 - for i in 0..5 { [INFO] [stdout] 56 + for in &board { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/puzzles/day04/mod.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | / (Vec, [INFO] [stdout] 68 | | Vec<[[i32; 5]; 5]>, [INFO] [stdout] 69 | | 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] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/puzzles/day04/mod.rs:81:2 [INFO] [stdout] | [INFO] [stdout] 81 | / match hashmap.get(&draw){ [INFO] [stdout] 82 | | Some(vec) => { [INFO] [stdout] 83 | | for (board_no, y, x) in vec { [INFO] [stdout] 84 | | boards[*board_no][*y][*x] = -1; [INFO] [stdout] ... | [INFO] [stdout] 99 | | None => (), [INFO] [stdout] 100 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 81 ~ if let Some(vec) = hashmap.get(&draw) { [INFO] [stdout] 82 ~ for (board_no, y, x) in vec { [INFO] [stdout] 83 ~ boards[*board_no][*y][*x] = -1; [INFO] [stdout] 84 ~ if check_win(boards[*board_no], (*board_no, *y, *x)) { [INFO] [stdout] 85 ~ winning_boards.insert(*board_no); [INFO] [stdout] 86 ~ sum = sum_board(boards[*board_no]); [INFO] [stdout] 87 ~ l_draw = draw; [INFO] [stdout] 88 ~ if first_winning { [INFO] [stdout] 89 ~ break; [INFO] [stdout] 90 ~ } else { [INFO] [stdout] 91 ~ if win_set_len == winning_boards.len() { [INFO] [stdout] 92 ~ break; [INFO] [stdout] 93 ~ } [INFO] [stdout] 94 ~ } [INFO] [stdout] 95 ~ } [INFO] [stdout] 96 ~ } [INFO] [stdout] 97 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day13/mod.rs:97:6 [INFO] [stdout] | [INFO] [stdout] 97 | return Ordering::Equal; [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] 97 - return Ordering::Equal; [INFO] [stdout] 97 + Ordering::Equal [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/puzzles/day14/mod.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | while let Some(t) = lines.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for t 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: unnecessary use of `get(&72).is_none()` [INFO] [stdout] --> src/puzzles/day04/mod.rs:143:18 [INFO] [stdout] | [INFO] [stdout] 143 | assert!(hashmap.get(&72).is_none()); [INFO] [stdout] | --------^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!hashmap.contains_key(&72)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day05/mod.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | Some(String::from(format!("{}", [INFO] [stdout] | __________^ [INFO] [stdout] 11 | | get_solution(true, input)))) [INFO] [stdout] | |_____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 10 ~ Some(format!("{}", [INFO] [stdout] 11 ~ get_solution(true, input))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day05/mod.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | Some(String::from(format!("{}", [INFO] [stdout] | __________^ [INFO] [stdout] 17 | | get_solution(false, input)))) [INFO] [stdout] | |______________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 16 ~ Some(format!("{}", [INFO] [stdout] 17 ~ get_solution(false, input))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/lib.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 40 | let vec = get_puzzles::get_puzzles(); [INFO] [stdout] | ------------------------------------- unnecessary `let` binding [INFO] [stdout] 41 | vec [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 40 ~ [INFO] [stdout] 41 ~ get_puzzles::get_puzzles() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/puzzles/day08/mod.rs:99:23 [INFO] [stdout] | [INFO] [stdout] 99 | fn parse_input(input: &str) -> Vec { [INFO] [stdout] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 99 | fn parse_input(input: &str) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/puzzles/day08/mod.rs:107:22 [INFO] [stdout] | [INFO] [stdout] 107 | fn parse_line(input: &str) -> Line { [INFO] [stdout] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 107 | fn parse_line(input: &str) -> Line<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/puzzles/day10/mod.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | return Some(SOLUTIONS.0.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/puzzles/day10/mod.rs:19:22 [INFO] [stdout] | [INFO] [stdout] 19 | return Some(SOLUTIONS.1.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/puzzles/day10/mod.rs:60:26 [INFO] [stdout] | [INFO] [stdout] 60 | fn parse_line(input: &str) -> Line { [INFO] [stdout] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 60 | fn parse_line(input: &str) -> Line<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/puzzles/day10/mod.rs:64:27 [INFO] [stdout] | [INFO] [stdout] 64 | fn parse_lines(input: &str) -> Vec { [INFO] [stdout] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 64 | fn parse_lines(input: &str) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/puzzles/day12/mod.rs:20:23 [INFO] [stdout] | [INFO] [stdout] 20 | fn parse_input(input: &str) -> Graph { [INFO] [stdout] | ^^^^ ^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 20 | fn parse_input(input: &str) -> Graph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day06/mod.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | Some(String::from(format!( [INFO] [stdout] | __________^ [INFO] [stdout] 9 | | "{}", no_fishes_after_n_days(&fishes, 80)))) [INFO] [stdout] | |_______________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 8 ~ Some(format!( [INFO] [stdout] 9 ~ "{}", no_fishes_after_n_days(&fishes, 80))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day06/mod.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | Some(String::from(format!( [INFO] [stdout] | __________^ [INFO] [stdout] 16 | | "{}", no_fishes_after_n_days(&fishes, 256)))) [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 15 ~ Some(format!( [INFO] [stdout] 16 ~ "{}", no_fishes_after_n_days(&fishes, 256))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the function `no_fishes_after_n_days` doesn't need a mutable reference [INFO] [stdout] --> src/puzzles/day06/mod.rs:59:40 [INFO] [stdout] | [INFO] [stdout] 59 | assert_eq!(26, no_fishes_after_n_days(&mut fishes, 18)); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 59 - assert_eq!(26, no_fishes_after_n_days(&mut fishes, 18)); [INFO] [stdout] 59 + assert_eq!(26, no_fishes_after_n_days(&fishes, 18)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the function `no_fishes_after_n_days` doesn't need a mutable reference [INFO] [stdout] --> src/puzzles/day06/mod.rs:60:42 [INFO] [stdout] | [INFO] [stdout] 60 | assert_eq!(5934, no_fishes_after_n_days(&mut fishes, 80)); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 60 - assert_eq!(5934, no_fishes_after_n_days(&mut fishes, 80)); [INFO] [stdout] 60 + assert_eq!(5934, no_fishes_after_n_days(&fishes, 80)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the function `no_fishes_after_n_days` doesn't need a mutable reference [INFO] [stdout] --> src/puzzles/day06/mod.rs:66:49 [INFO] [stdout] | [INFO] [stdout] 66 | assert_eq!(26984457539, no_fishes_after_n_days(&mut fishes, 256)); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 66 - assert_eq!(26984457539, no_fishes_after_n_days(&mut fishes, 256)); [INFO] [stdout] 66 + assert_eq!(26984457539, no_fishes_after_n_days(&fishes, 256)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day07/mod.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | Some(String::from(format!( [INFO] [stdout] | __________^ [INFO] [stdout] 10 | | "{}", pos.0))) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 9 ~ Some(format!( [INFO] [stdout] 10 ~ "{}", pos.0)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day07/mod.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | Some(String::from(format!( [INFO] [stdout] | __________^ [INFO] [stdout] 18 | | "{}", pos.0))) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 17 ~ Some(format!( [INFO] [stdout] 18 ~ "{}", pos.0)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day07/mod.rs:31:2 [INFO] [stdout] | [INFO] [stdout] 31 | 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] 31 - return 0; [INFO] [stdout] 31 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day07/mod.rs:33:2 [INFO] [stdout] | [INFO] [stdout] 33 | return input + steping_function(input - 1); [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] 33 - return input + steping_function(input - 1); [INFO] [stdout] 33 + input + steping_function(input - 1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting the result of `i32::abs()` to u32 [INFO] [stdout] --> src/puzzles/day07/mod.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | tmp.0 += (i as i32 - *pos as i32).abs() as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(i as i32 - *pos as i32).unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] = note: `#[warn(clippy::cast_abs_to_unsigned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting the result of `i32::abs()` to u32 [INFO] [stdout] --> src/puzzles/day07/mod.rs:50:29 [INFO] [stdout] | [INFO] [stdout] 50 | tmp.0 += steping_function((i as i32 - *pos as i32).abs() as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(i as i32 - *pos as i32).unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting the result of `i32::abs()` to u32 [INFO] [stdout] --> src/puzzles/day07/mod.rs:80:34 [INFO] [stdout] | [INFO] [stdout] 80 | assert_eq!(66, steping_function((5 as i32 - 16 as i32).abs() as u32)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(5 as i32 - 16 as i32).unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `i32` is unnecessary [INFO] [stdout] --> src/puzzles/day07/mod.rs:80:35 [INFO] [stdout] | [INFO] [stdout] 80 | assert_eq!(66, steping_function((5 as i32 - 16 as i32).abs() as u32)); [INFO] [stdout] | ^^^^^^^^ help: try: `5_i32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `i32` is unnecessary [INFO] [stdout] --> src/puzzles/day07/mod.rs:80:46 [INFO] [stdout] | [INFO] [stdout] 80 | assert_eq!(66, steping_function((5 as i32 - 16 as i32).abs() as u32)); [INFO] [stdout] | ^^^^^^^^^ help: try: `16_i32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day08/mod.rs:58:10 [INFO] [stdout] | [INFO] [stdout] 58 | Some(String::from(format!( [INFO] [stdout] | __________^ [INFO] [stdout] 59 | | "{}", get_solution_p1(input)))) [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 58 ~ Some(format!( [INFO] [stdout] 59 ~ "{}", get_solution_p1(input))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/puzzles/day08/mod.rs:64:10 [INFO] [stdout] | [INFO] [stdout] 64 | Some(String::from(format!( [INFO] [stdout] | __________^ [INFO] [stdout] 65 | | "{}", get_solution_p2(input)))) [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 64 ~ Some(format!( [INFO] [stdout] 65 ~ "{}", get_solution_p2(input))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day10/mod.rs:10:2 [INFO] [stdout] | [INFO] [stdout] 10 | return Some(SOLUTIONS.0.to_string()); [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] 10 - return Some(SOLUTIONS.0.to_string()); [INFO] [stdout] 10 + Some(SOLUTIONS.0.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day10/mod.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | return Some(SOLUTIONS.1.to_string()); [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] 19 - return Some(SOLUTIONS.1.to_string()); [INFO] [stdout] 19 + Some(SOLUTIONS.1.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/puzzles/day10/mod.rs:78:10 [INFO] [stdout] | [INFO] [stdout] 78 | if !(vec.pop() == Some(t)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(vec.pop() != Some(t))` [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: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/puzzles/day13/mod.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | if let Some(_) = line.find(",") { [INFO] [stdout] | -------^^^^^^^----------------- help: try: `if line.find(",").is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/puzzles/day13/mod.rs:35:16 [INFO] [stdout] | [INFO] [stdout] 35 | } else if let Some(_) = line.find("=") { [INFO] [stdout] | -------^^^^^^^----------------- help: try: `if line.find("=").is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/puzzles/day13/mod.rs:40:13 [INFO] [stdout] | [INFO] [stdout] 40 | if let Some(_) = line.find("x") { [INFO] [stdout] | -------^^^^^^^----------------- help: try: `if line.find("x").is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day13/mod.rs:97:6 [INFO] [stdout] | [INFO] [stdout] 97 | return Ordering::Equal; [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] 97 - return Ordering::Equal; [INFO] [stdout] 97 + Ordering::Equal [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/puzzles/day14/mod.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | while let Some(t) = lines.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for t 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: returning the result of a `let` binding from a block [INFO] [stdout] --> src/lib.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 40 | let vec = get_puzzles::get_puzzles(); [INFO] [stdout] | ------------------------------------- unnecessary `let` binding [INFO] [stdout] 41 | vec [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 40 ~ [INFO] [stdout] 41 ~ get_puzzles::get_puzzles() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> src/main.rs:16:44 [INFO] [stdout] | [INFO] [stdout] 16 | Some(s) => println!("{:9}{} {}", ' ', "Part 1:", s), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stdout] = note: `#[warn(clippy::print_literal)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 16 - Some(s) => println!("{:9}{} {}", ' ', "Part 1:", s), [INFO] [stdout] 16 + Some(s) => println!("{:9}Part 1: {}", ' ', s), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> src/main.rs:17:41 [INFO] [stdout] | [INFO] [stdout] 17 | None => println!("{:9}{} {}", ' ', "Part 1:", "Unsolved"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 17 - None => println!("{:9}{} {}", ' ', "Part 1:", "Unsolved"), [INFO] [stdout] 17 + None => println!("{:9}Part 1: Unsolved", ' '), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/puzzles/day08/mod.rs:99:23 [INFO] [stdout] | [INFO] [stdout] 99 | fn parse_input(input: &str) -> Vec { [INFO] [stdout] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 99 | fn parse_input(input: &str) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/puzzles/day08/mod.rs:107:22 [INFO] [stdout] | [INFO] [stdout] 107 | fn parse_line(input: &str) -> Line { [INFO] [stdout] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 107 | fn parse_line(input: &str) -> Line<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/puzzles/day10/mod.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | return Some(SOLUTIONS.0.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> src/main.rs:20:44 [INFO] [stdout] | [INFO] [stdout] 20 | Some(s) => println!("{:9}{} {}", ' ', "Part 2:", s), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 20 - Some(s) => println!("{:9}{} {}", ' ', "Part 2:", s), [INFO] [stdout] 20 + Some(s) => println!("{:9}Part 2: {}", ' ', s), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/puzzles/day10/mod.rs:19:22 [INFO] [stdout] | [INFO] [stdout] 19 | return Some(SOLUTIONS.1.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/puzzles/day10/mod.rs:60:26 [INFO] [stdout] | [INFO] [stdout] 60 | fn parse_line(input: &str) -> Line { [INFO] [stdout] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 60 | fn parse_line(input: &str) -> Line<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/puzzles/day10/mod.rs:64:27 [INFO] [stdout] | [INFO] [stdout] 64 | fn parse_lines(input: &str) -> Vec { [INFO] [stdout] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 64 | fn parse_lines(input: &str) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> src/main.rs:21:41 [INFO] [stdout] | [INFO] [stdout] 21 | None => println!("{:9}{} {}", ' ', "Part 2:", "Unsolved"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 21 - None => println!("{:9}{} {}", ' ', "Part 2:", "Unsolved"), [INFO] [stdout] 21 + None => println!("{:9}Part 2: Unsolved", ' '), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/puzzles/day12/mod.rs:20:23 [INFO] [stdout] | [INFO] [stdout] 20 | fn parse_input(input: &str) -> Graph { [INFO] [stdout] | ^^^^ ^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 20 | fn parse_input(input: &str) -> Graph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> src/main.rs:16:44 [INFO] [stdout] | [INFO] [stdout] 16 | Some(s) => println!("{:9}{} {}", ' ', "Part 1:", s), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stdout] = note: `#[warn(clippy::print_literal)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 16 - Some(s) => println!("{:9}{} {}", ' ', "Part 1:", s), [INFO] [stdout] 16 + Some(s) => println!("{:9}Part 1: {}", ' ', s), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> src/main.rs:17:41 [INFO] [stdout] | [INFO] [stdout] 17 | None => println!("{:9}{} {}", ' ', "Part 1:", "Unsolved"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 17 - None => println!("{:9}{} {}", ' ', "Part 1:", "Unsolved"), [INFO] [stdout] 17 + None => println!("{:9}Part 1: Unsolved", ' '), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> src/main.rs:20:44 [INFO] [stdout] | [INFO] [stdout] 20 | Some(s) => println!("{:9}{} {}", ' ', "Part 2:", s), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 20 - Some(s) => println!("{:9}{} {}", ' ', "Part 2:", s), [INFO] [stdout] 20 + Some(s) => println!("{:9}Part 2: {}", ' ', s), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> src/main.rs:21:41 [INFO] [stdout] | [INFO] [stdout] 21 | None => println!("{:9}{} {}", ' ', "Part 2:", "Unsolved"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 21 - None => println!("{:9}{} {}", ' ', "Part 2:", "Unsolved"), [INFO] [stdout] 21 + None => println!("{:9}Part 2: Unsolved", ' '), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.81s [INFO] running `Command { std: "docker" "inspect" "b3a27b40e994e3825234b55dbb47f209483b56d05052891b2c80f689c78ecd1d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b3a27b40e994e3825234b55dbb47f209483b56d05052891b2c80f689c78ecd1d", kill_on_drop: false }` [INFO] [stdout] b3a27b40e994e3825234b55dbb47f209483b56d05052891b2c80f689c78ecd1d