[INFO] cloning repository https://github.com/petrusjt/advent-of-code-2022 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/petrusjt/advent-of-code-2022" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpetrusjt%2Fadvent-of-code-2022", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpetrusjt%2Fadvent-of-code-2022'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ae7057683eb7ec1745077ebaf7a1349fe6103d45 [INFO] linting petrusjt/advent-of-code-2022 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpetrusjt%2Fadvent-of-code-2022" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/petrusjt/advent-of-code-2022 [INFO] finished tweaking git repo https://github.com/petrusjt/advent-of-code-2022 [INFO] tweaked toml for git repo https://github.com/petrusjt/advent-of-code-2022 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/petrusjt/advent-of-code-2022 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/petrusjt/advent-of-code-2022 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 memchr v2.7.1 [INFO] [stderr] Downloaded aho-corasick v1.1.2 [INFO] [stderr] Downloaded regex v1.10.2 [INFO] [stderr] Downloaded regex-syntax v0.8.2 [INFO] [stderr] Downloaded regex-automata v0.4.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] fd2cbb6a284ed90e7e73ca7d34a822303df7b2eb01b0cc092db8ac5d9fc2bf7e [INFO] running `Command { std: "docker" "start" "-a" "fd2cbb6a284ed90e7e73ca7d34a822303df7b2eb01b0cc092db8ac5d9fc2bf7e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fd2cbb6a284ed90e7e73ca7d34a822303df7b2eb01b0cc092db8ac5d9fc2bf7e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fd2cbb6a284ed90e7e73ca7d34a822303df7b2eb01b0cc092db8ac5d9fc2bf7e", kill_on_drop: false }` [INFO] [stdout] fd2cbb6a284ed90e7e73ca7d34a822303df7b2eb01b0cc092db8ac5d9fc2bf7e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 9efb2b8372e0f95a5ee3048dbb341f7674bd7d3723140eb4564110c58684af43 [INFO] running `Command { std: "docker" "start" "-a" "9efb2b8372e0f95a5ee3048dbb341f7674bd7d3723140eb4564110c58684af43", kill_on_drop: false }` [INFO] [stderr] Checking memchr v2.7.1 [INFO] [stderr] Checking regex-syntax v0.8.2 [INFO] [stderr] Checking aho-corasick v1.1.2 [INFO] [stderr] Checking regex-automata v0.4.3 [INFO] [stderr] Checking regex v1.10.2 [INFO] [stderr] Checking hello-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: name `ROCK` contains a capitalized acronym [INFO] [stdout] --> src/day2/rock_paper_scissors.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | ROCK = 1, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Rock` [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 `PAPER` contains a capitalized acronym [INFO] [stdout] --> src/day2/rock_paper_scissors.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | PAPER = 2, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Paper` [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 `SCISSORS` contains a capitalized acronym [INFO] [stdout] --> src/day2/rock_paper_scissors.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | SCISSORS = 3, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Scissors` [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: unneeded `return` statement [INFO] [stdout] --> src/day2/rock_paper_scissors.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | return Err("Invalid type"); [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] 21 - return Err("Invalid type"); [INFO] [stdout] 21 + Err("Invalid type") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day2/util.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | return (y as i32) + 6; [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] 11 - return (y as i32) + 6; [INFO] [stdout] 11 + (y as i32) + 6 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day2.rs:15:13 [INFO] [stdout] | [INFO] [stdout] 15 | / return (RockPaperScissors::get_from_string(iter.next().unwrap()), [INFO] [stdout] 16 | | RockPaperScissors::get_from_string(iter.next().unwrap())); [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] 15 ~ (RockPaperScissors::get_from_string(iter.next().unwrap()), [INFO] [stdout] 16 ~ RockPaperScissors::get_from_string(iter.next().unwrap())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day3.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | return ans; [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] 27 - return ans; [INFO] [stdout] 27 + ans [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day3.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return map; [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] 40 - return map; [INFO] [stdout] 40 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day4.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | return (get_range_from_section(section1), get_range_from_section(section2)) [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] 27 - return (get_range_from_section(section1), get_range_from_section(section2)) [INFO] [stdout] 27 + (get_range_from_section(section1), get_range_from_section(section2)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day4.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / (range1.begin <= range2.begin && range2.begin <= range1.end [INFO] [stdout] 44 | | || range1.begin <= range2.begin && range2.end <= range1.end) [INFO] [stdout] | |________________________________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 43 - (range1.begin <= range2.begin && range2.begin <= range1.end [INFO] [stdout] 44 - || range1.begin <= range2.begin && range2.end <= range1.end) [INFO] [stdout] 43 + !(range1.begin > range2.begin || range2.begin > range1.end && range2.end > range1.end) [INFO] [stdout] | [INFO] [stdout] 43 - (range1.begin <= range2.begin && range2.begin <= range1.end [INFO] [stdout] 44 - || range1.begin <= range2.begin && range2.end <= range1.end) [INFO] [stdout] 43 + (range2.end <= range1.end || range2.begin <= range1.end) && range1.begin <= range2.begin [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day4.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | || (range2.begin <= range1.begin && range1.begin <= range2.end [INFO] [stdout] | ____________^ [INFO] [stdout] 46 | | || range2.begin <= range1.begin && range1.end <= range2.end) [INFO] [stdout] | |________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 45 - || (range2.begin <= range1.begin && range1.begin <= range2.end [INFO] [stdout] 46 - || range2.begin <= range1.begin && range1.end <= range2.end) [INFO] [stdout] 45 + || !(range2.begin > range1.begin || range1.begin > range2.end && range1.end > range2.end) [INFO] [stdout] | [INFO] [stdout] 45 - || (range2.begin <= range1.begin && range1.begin <= range2.end [INFO] [stdout] 46 - || range2.begin <= range1.begin && range1.end <= range2.end) [INFO] [stdout] 45 + || (range1.end <= range2.end || range1.begin <= range2.end) && range2.begin <= range1.begin [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day5.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | return transposed; [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] 37 - return transposed; [INFO] [stdout] 37 + transposed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day5.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | / return commands.split("\n") [INFO] [stdout] 42 | | .filter(|&command| !command.is_empty()) [INFO] [stdout] 43 | | .map(parse_command) [INFO] [stdout] 44 | | .collect(); [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] 41 ~ commands.split("\n") [INFO] [stdout] 42 + .filter(|&command| !command.is_empty()) [INFO] [stdout] 43 + .map(parse_command) [INFO] [stdout] 44 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day5.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | return (command_numbers[0], command_numbers[1], command_numbers[2]) [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] 53 - return (command_numbers[0], command_numbers[1], command_numbers[2]) [INFO] [stdout] 53 + (command_numbers[0], command_numbers[1], command_numbers[2]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/day5.rs:49:10 [INFO] [stdout] | [INFO] [stdout] 49 | .filter(|&line| line.parse::().is_ok()) [INFO] [stdout] | __________^ [INFO] [stdout] 50 | | .map(|num| num.parse::().unwrap()) [INFO] [stdout] | |_________________________________________________^ help: try: `filter_map(|num| num.parse::().ok())` [INFO] [stdout] | [INFO] [stdout] note: the suggestion might change the behavior of the program when merging `filter` and `map`, because this expression potentially contains side effects and will only execute once [INFO] [stdout] --> src/day5.rs:49:25 [INFO] [stdout] | [INFO] [stdout] 49 | .filter(|&line| line.parse::().is_ok()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map [INFO] [stdout] = note: `#[warn(clippy::manual_filter_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day5.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | / return state.iter() [INFO] [stdout] 58 | | .map(|s| s.last().unwrap()) [INFO] [stdout] 59 | | .collect(); [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] 57 ~ state.iter() [INFO] [stdout] 58 + .map(|s| s.last().unwrap()) [INFO] [stdout] 59 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/day5.rs:56:25 [INFO] [stdout] | [INFO] [stdout] 56 | fn get_top_items(state: &mut Vec>) -> String { [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] 56 - fn get_top_items(state: &mut Vec>) -> String { [INFO] [stdout] 56 + fn get_top_items(state: &mut [Vec]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day5.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | return state; [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] 70 - return state; [INFO] [stdout] 70 + state [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day5.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | return state; [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] 83 - return state; [INFO] [stdout] 83 + state [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day6.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | 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] 23 - return 0; [INFO] [stdout] 23 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day6.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | 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] 45 - return 0; [INFO] [stdout] 45 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | return visible_trees; [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 visible_trees; [INFO] [stdout] 24 + visible_trees [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | / return is_tree_visible_from_up(&tree_map, &y, &x) [INFO] [stdout] 29 | | || is_tree_visible_from_down(&tree_map, &y, &x) [INFO] [stdout] 30 | | || is_tree_visible_from_left(&tree_map[y], &x) [INFO] [stdout] 31 | | || is_tree_visible_from_right(&tree_map[y], &x); [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] 28 ~ is_tree_visible_from_up(&tree_map, &y, &x) [INFO] [stdout] 29 + || is_tree_visible_from_down(&tree_map, &y, &x) [INFO] [stdout] 30 + || is_tree_visible_from_left(&tree_map[y], &x) [INFO] [stdout] 31 ~ || is_tree_visible_from_right(&tree_map[y], &x) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day8.rs:28:36 [INFO] [stdout] | [INFO] [stdout] 28 | return is_tree_visible_from_up(&tree_map, &y, &x) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `tree_map` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day8.rs:29:38 [INFO] [stdout] | [INFO] [stdout] 29 | || is_tree_visible_from_down(&tree_map, &y, &x) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `tree_map` [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/day8.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | return true; [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] 41 - return true; [INFO] [stdout] 41 + true [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/day8.rs:34:38 [INFO] [stdout] | [INFO] [stdout] 34 | fn is_tree_visible_from_up(tree_map: &Vec>, y: &usize, x: &usize) -> 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] help: change this to [INFO] [stdout] | [INFO] [stdout] 34 - fn is_tree_visible_from_up(tree_map: &Vec>, y: &usize, x: &usize) -> bool { [INFO] [stdout] 34 + fn is_tree_visible_from_up(tree_map: &[Vec], y: &usize, x: &usize) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `tree_map` [INFO] [stdout] --> src/day8.rs:36:14 [INFO] [stdout] | [INFO] [stdout] 36 | for i in 0..*y { [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 [INFO] [stdout] | [INFO] [stdout] 36 - for i in 0..*y { [INFO] [stdout] 36 + for in tree_map.iter().take(*y) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | return true; [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] 51 - return true; [INFO] [stdout] 51 + true [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/day8.rs:44:40 [INFO] [stdout] | [INFO] [stdout] 44 | fn is_tree_visible_from_down(tree_map: &Vec>, y: &usize, x: &usize) -> 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] help: change this to [INFO] [stdout] | [INFO] [stdout] 44 - fn is_tree_visible_from_down(tree_map: &Vec>, y: &usize, x: &usize) -> bool { [INFO] [stdout] 44 + fn is_tree_visible_from_down(tree_map: &[Vec], y: &usize, x: &usize) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `tree_map` [INFO] [stdout] --> src/day8.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | for i in (y + 1)..tree_map.len() { [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] 46 - for i in (y + 1)..tree_map.len() { [INFO] [stdout] 46 + for in tree_map.iter().skip((y + 1)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | return true; [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] 61 - return true; [INFO] [stdout] 61 + true [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/day8.rs:54:35 [INFO] [stdout] | [INFO] [stdout] 54 | fn is_tree_visible_from_left(row: &Vec, x: &usize) -> 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] help: change this to [INFO] [stdout] | [INFO] [stdout] 54 - fn is_tree_visible_from_left(row: &Vec, x: &usize) -> bool { [INFO] [stdout] 54 + fn is_tree_visible_from_left(row: &[u32], x: &usize) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `row` [INFO] [stdout] --> src/day8.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | for i in 0..*x { [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..*x { [INFO] [stdout] 56 + for in row.iter().take(*x) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | return true; [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] 71 - return true; [INFO] [stdout] 71 + true [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/day8.rs:64:36 [INFO] [stdout] | [INFO] [stdout] 64 | fn is_tree_visible_from_right(row: &Vec, x: &usize) -> 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] help: change this to [INFO] [stdout] | [INFO] [stdout] 64 - fn is_tree_visible_from_right(row: &Vec, x: &usize) -> bool { [INFO] [stdout] 64 + fn is_tree_visible_from_right(row: &[u32], x: &usize) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `row` [INFO] [stdout] --> src/day8.rs:66:14 [INFO] [stdout] | [INFO] [stdout] 66 | for i in (x + 1)..row.len() { [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] 66 - for i in (x + 1)..row.len() { [INFO] [stdout] 66 + for in row.iter().skip((x + 1)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | return *scenic_scores.iter().max().unwrap(); [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] 95 - return *scenic_scores.iter().max().unwrap(); [INFO] [stdout] 95 + *scenic_scores.iter().max().unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | / return get_scenic_score_from_up(&tree_map, &y, &x) [INFO] [stdout] 100 | | * get_scenic_score_from_down(&tree_map, &y, &x) [INFO] [stdout] 101 | | * get_scenic_score_from_left(&tree_map[y], &x) [INFO] [stdout] 102 | | * get_scenic_score_from_right(&tree_map[y], &x); [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] 99 ~ get_scenic_score_from_up(&tree_map, &y, &x) [INFO] [stdout] 100 + * get_scenic_score_from_down(&tree_map, &y, &x) [INFO] [stdout] 101 + * get_scenic_score_from_left(&tree_map[y], &x) [INFO] [stdout] 102 ~ * get_scenic_score_from_right(&tree_map[y], &x) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day8.rs:99:37 [INFO] [stdout] | [INFO] [stdout] 99 | return get_scenic_score_from_up(&tree_map, &y, &x) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `tree_map` [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/day8.rs:100:38 [INFO] [stdout] | [INFO] [stdout] 100 | * get_scenic_score_from_down(&tree_map, &y, &x) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `tree_map` [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/day8.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | return *y as u32; [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] 112 - return *y as u32; [INFO] [stdout] 112 + *y as u32 [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/day8.rs:105:39 [INFO] [stdout] | [INFO] [stdout] 105 | fn get_scenic_score_from_up(tree_map: &Vec>, y: &usize, x: &usize) -> u32 { [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] 105 - fn get_scenic_score_from_up(tree_map: &Vec>, y: &usize, x: &usize) -> u32 { [INFO] [stdout] 105 + fn get_scenic_score_from_up(tree_map: &[Vec], y: &usize, x: &usize) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:122:5 [INFO] [stdout] | [INFO] [stdout] 122 | return (tree_map.len() - 1 - y) as u32; [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] 122 - return (tree_map.len() - 1 - y) as u32; [INFO] [stdout] 122 + (tree_map.len() - 1 - y) as u32 [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/day8.rs:115:41 [INFO] [stdout] | [INFO] [stdout] 115 | fn get_scenic_score_from_down(tree_map: &Vec>, y: &usize, x: &usize) -> u32 { [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] 115 - fn get_scenic_score_from_down(tree_map: &Vec>, y: &usize, x: &usize) -> u32 { [INFO] [stdout] 115 + fn get_scenic_score_from_down(tree_map: &[Vec], y: &usize, x: &usize) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `tree_map` [INFO] [stdout] --> src/day8.rs:117:14 [INFO] [stdout] | [INFO] [stdout] 117 | for i in (y + 1)..tree_map.len() { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 117 - for i in (y + 1)..tree_map.len() { [INFO] [stdout] 117 + for (i, ) in tree_map.iter().enumerate().skip((y + 1)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | return *x as u32; [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] 132 - return *x as u32; [INFO] [stdout] 132 + *x as u32 [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/day8.rs:125:36 [INFO] [stdout] | [INFO] [stdout] 125 | fn get_scenic_score_from_left(row: &Vec, x: &usize) -> u32 { [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] 125 - fn get_scenic_score_from_left(row: &Vec, x: &usize) -> u32 { [INFO] [stdout] 125 + fn get_scenic_score_from_left(row: &[u32], x: &usize) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:142:5 [INFO] [stdout] | [INFO] [stdout] 142 | return (row.len() - 1 - x) as u32; [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] 142 - return (row.len() - 1 - x) as u32; [INFO] [stdout] 142 + (row.len() - 1 - x) as u32 [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/day8.rs:135:37 [INFO] [stdout] | [INFO] [stdout] 135 | fn get_scenic_score_from_right(row: &Vec, x: &usize) -> u32 { [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] 135 - fn get_scenic_score_from_right(row: &Vec, x: &usize) -> u32 { [INFO] [stdout] 135 + fn get_scenic_score_from_right(row: &[u32], x: &usize) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `row` [INFO] [stdout] --> src/day8.rs:137:14 [INFO] [stdout] | [INFO] [stdout] 137 | for i in (x + 1)..row.len() { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 137 - for i in (x + 1)..row.len() { [INFO] [stdout] 137 + for (i, ) in row.iter().enumerate().skip((x + 1)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9/utils.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | return Position { x: 0, y: 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] 12 - return Position { x: 0, y: 0 }; [INFO] [stdout] 12 + Position { x: 0, y: 0 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9/utils.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | return Position { x, y }; [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] 15 - return Position { x, y }; [INFO] [stdout] 15 + Position { x, y } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9/utils.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | / return match direction { [INFO] [stdout] 20 | | "U" => Position::from(self.x, self.y + 1), [INFO] [stdout] 21 | | "D" => Position::from(self.x, self.y - 1), [INFO] [stdout] 22 | | "L" => Position::from(self.x - 1, self.y), [INFO] [stdout] 23 | | "R" => Position::from(self.x + 1, self.y), [INFO] [stdout] 24 | | _ => {panic!("Unknown direction: {}", direction)} [INFO] [stdout] 25 | | } [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 ~ match direction { [INFO] [stdout] 20 + "U" => Position::from(self.x, self.y + 1), [INFO] [stdout] 21 + "D" => Position::from(self.x, self.y - 1), [INFO] [stdout] 22 + "L" => Position::from(self.x - 1, self.y), [INFO] [stdout] 23 + "R" => Position::from(self.x + 1, self.y), [INFO] [stdout] 24 + _ => {panic!("Unknown direction: {}", direction)} [INFO] [stdout] 25 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9/utils.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | / return Box::from( [INFO] [stdout] 37 | | Head { [INFO] [stdout] 38 | | position: Position { x: 0, y: 0}, [INFO] [stdout] 39 | | tail: Tail::new(), [INFO] [stdout] 40 | | } [INFO] [stdout] 41 | | ) [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] 36 ~ Box::from( [INFO] [stdout] 37 + Head { [INFO] [stdout] 38 + position: Position { x: 0, y: 0}, [INFO] [stdout] 39 + tail: Tail::new(), [INFO] [stdout] 40 + } [INFO] [stdout] 41 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9/utils.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | / return Box::from( [INFO] [stdout] 60 | | Head2 { [INFO] [stdout] 61 | | position: Position { x: 0, y: 0}, [INFO] [stdout] 62 | | tails: vec![ [INFO] [stdout] ... | [INFO] [stdout] 68 | | ) [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] 59 ~ Box::from( [INFO] [stdout] 60 + Head2 { [INFO] [stdout] 61 + position: Position { x: 0, y: 0}, [INFO] [stdout] 62 + tails: vec![ [INFO] [stdout] 63 + Tail::new(), // The original tail [INFO] [stdout] 64 + Tail::new(), Tail::new(), Tail::new(), Tail::new(), [INFO] [stdout] 65 + Tail::new(), Tail::new(), Tail::new(), Tail::new(), [INFO] [stdout] 66 + ] [INFO] [stdout] 67 + } [INFO] [stdout] 68 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9/utils.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | / return Tail { [INFO] [stdout] 91 | | position: starting_position, [INFO] [stdout] 92 | | visited_positions: HashSet::from([starting_position]) [INFO] [stdout] 93 | | }; [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] 90 ~ Tail { [INFO] [stdout] 91 + position: starting_position, [INFO] [stdout] 92 + visited_positions: HashSet::from([starting_position]) [INFO] [stdout] 93 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> src/day9/utils.rs:97:32 [INFO] [stdout] | [INFO] [stdout] 97 | let current_position = self.position.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.position` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> src/day9/utils.rs:127:39 [INFO] [stdout] | [INFO] [stdout] 127 | self.visited_positions.insert(self.position.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.position` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | return (command_raw[0], command_raw[1].trim().parse::().unwrap()); [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] 13 - return (command_raw[0], command_raw[1].trim().parse::().unwrap()); [INFO] [stdout] 13 + (command_raw[0], command_raw[1].trim().parse::().unwrap()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | return head.tail.visited_positions.len() as u32; [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] 25 - return head.tail.visited_positions.len() as u32; [INFO] [stdout] 25 + head.tail.visited_positions.len() as u32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | return (command_raw[0], command_raw[1].trim().parse::().unwrap()); [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] 35 - return (command_raw[0], command_raw[1].trim().parse::().unwrap()); [INFO] [stdout] 35 + (command_raw[0], command_raw[1].trim().parse::().unwrap()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | return head.tails.last().unwrap().visited_positions.len() as u32; [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] 47 - return head.tails.last().unwrap().visited_positions.len() as u32; [INFO] [stdout] 47 + head.tails.last().unwrap().visited_positions.len() as u32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day10.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return signal_strength; [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] 40 - return signal_strength; [INFO] [stdout] 40 + signal_strength [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/day10.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | .map(|x| { [INFO] [stdout] | __________^ [INFO] [stdout] 13 | | if *x != "noop" { [INFO] [stdout] 14 | | return vec!["noop", x]; [INFO] [stdout] ... | [INFO] [stdout] 17 | | }) [INFO] [stdout] 18 | | .flatten() [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] = note: `#[warn(clippy::map_flatten)]` on by default [INFO] [stdout] help: try replacing `map` with `flat_map` and remove the `.flatten()` [INFO] [stdout] | [INFO] [stdout] 12 ~ .flat_map(|x| { [INFO] [stdout] 13 + if *x != "noop" { [INFO] [stdout] 14 + return vec!["noop", x]; [INFO] [stdout] 15 + } [INFO] [stdout] 16 + return vec![x]; [INFO] [stdout] 17 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day10.rs:16:13 [INFO] [stdout] | [INFO] [stdout] 16 | return vec![x]; [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] 16 - return vec![x]; [INFO] [stdout] 16 + vec![x] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `cycle` is used as a loop counter [INFO] [stdout] --> src/day10.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | for command in extended_commands { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (cycle, command) in (1..).zip(extended_commands.into_iter())` [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/day10.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | return image; [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] 85 - return image; [INFO] [stdout] 85 + image [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/day10.rs:52:10 [INFO] [stdout] | [INFO] [stdout] 52 | .map(|x| { [INFO] [stdout] | __________^ [INFO] [stdout] 53 | | if *x != "noop" { [INFO] [stdout] 54 | | return vec!["noop", x]; [INFO] [stdout] ... | [INFO] [stdout] 57 | | }) [INFO] [stdout] 58 | | .flatten() [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] help: try replacing `map` with `flat_map` and remove the `.flatten()` [INFO] [stdout] | [INFO] [stdout] 52 ~ .flat_map(|x| { [INFO] [stdout] 53 + if *x != "noop" { [INFO] [stdout] 54 + return vec!["noop", x]; [INFO] [stdout] 55 + } [INFO] [stdout] 56 + return vec![x]; [INFO] [stdout] 57 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day10.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | return vec![x]; [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] 56 - return vec![x]; [INFO] [stdout] 56 + vec![x] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ROCK` contains a capitalized acronym [INFO] [stdout] --> src/day2/rock_paper_scissors.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | ROCK = 1, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Rock` [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 `PAPER` contains a capitalized acronym [INFO] [stdout] --> src/day2/rock_paper_scissors.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | PAPER = 2, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Paper` [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 `SCISSORS` contains a capitalized acronym [INFO] [stdout] --> src/day2/rock_paper_scissors.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | SCISSORS = 3, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Scissors` [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: the variable `cycle` is used as a loop counter [INFO] [stdout] --> src/day10.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | for command in extended_commands { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (cycle, command) in (1..).zip(extended_commands.into_iter())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/day10.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | image.push_str("#"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `image.push('#')` [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/day2/rock_paper_scissors.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | return Err("Invalid type"); [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] 21 - return Err("Invalid type"); [INFO] [stdout] 21 + Err("Invalid type") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/day10.rs:69:13 [INFO] [stdout] | [INFO] [stdout] 69 | image.push_str("."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `image.push('.')` [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day2/util.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | return (y as i32) + 6; [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] 11 - return (y as i32) + 6; [INFO] [stdout] 11 + (y as i32) + 6 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/day10.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | image.push_str("\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `image.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11/monkey.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | / return Monkey { [INFO] [stdout] 15 | | items: split_unparsed[1].split(":") [INFO] [stdout] 16 | | .collect::>()[1].trim().split(",") [INFO] [stdout] 17 | | .map(|y| y.trim().parse::().unwrap()) [INFO] [stdout] ... | [INFO] [stdout] 21 | | inspection_count: 0 [INFO] [stdout] 22 | | }; [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] 14 ~ Monkey { [INFO] [stdout] 15 + items: split_unparsed[1].split(":") [INFO] [stdout] 16 + .collect::>()[1].trim().split(",") [INFO] [stdout] 17 + .map(|y| y.trim().parse::().unwrap()) [INFO] [stdout] 18 + .collect(), [INFO] [stdout] 19 + operation: Operation::from(split_unparsed[2]), [INFO] [stdout] 20 + test: Test::from(split_unparsed[3..].to_vec()), [INFO] [stdout] 21 + inspection_count: 0 [INFO] [stdout] 22 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day2.rs:15:13 [INFO] [stdout] | [INFO] [stdout] 15 | / return (RockPaperScissors::get_from_string(iter.next().unwrap()), [INFO] [stdout] 16 | | RockPaperScissors::get_from_string(iter.next().unwrap())); [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] 15 ~ (RockPaperScissors::get_from_string(iter.next().unwrap()), [INFO] [stdout] 16 ~ RockPaperScissors::get_from_string(iter.next().unwrap())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/day11/monkey.rs:25:50 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn inspect_and_throw(&mut self, monkeys: &mut Vec, is_part_1: bool, modulo: i32) { [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] 25 - pub fn inspect_and_throw(&mut self, monkeys: &mut Vec, is_part_1: bool, modulo: i32) { [INFO] [stdout] 25 + pub fn inspect_and_throw(&mut self, monkeys: &mut [Monkey], is_part_1: bool, modulo: i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11/operation.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | / return if operand2 == "old" { [INFO] [stdout] 14 | | Operation { [INFO] [stdout] 15 | | operation_type, [INFO] [stdout] 16 | | operand2: None, [INFO] [stdout] ... | [INFO] [stdout] 23 | | } [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] 13 ~ if operand2 == "old" { [INFO] [stdout] 14 + Operation { [INFO] [stdout] 15 + operation_type, [INFO] [stdout] 16 + operand2: None, [INFO] [stdout] 17 + } [INFO] [stdout] 18 + } else { [INFO] [stdout] 19 + Operation { [INFO] [stdout] 20 + operation_type, [INFO] [stdout] 21 + operand2: Some(operand2.trim().parse::().unwrap()), [INFO] [stdout] 22 + } [INFO] [stdout] 23 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day3.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | return ans; [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] 27 - return ans; [INFO] [stdout] 27 + ans [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.operand2` after checking its variant with `is_some` [INFO] [stdout] --> src/day11/operation.rs:28:49 [INFO] [stdout] | [INFO] [stdout] 27 | return if self.operand2.is_some() { [INFO] [stdout] | -------------------------- help: try: `if let Some() = self.operand2` [INFO] [stdout] 28 | let operand2_unwrapped = i128::from(self.operand2.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day3.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return map; [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] 40 - return map; [INFO] [stdout] 40 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11/operation.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | / return if self.operand2.is_some() { [INFO] [stdout] 28 | | let operand2_unwrapped = i128::from(self.operand2.unwrap()); [INFO] [stdout] 29 | | match self.operation_type { [INFO] [stdout] 30 | | Add => value + operand2_unwrapped, [INFO] [stdout] ... | [INFO] [stdout] 38 | | } [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] 27 ~ if self.operand2.is_some() { [INFO] [stdout] 28 + let operand2_unwrapped = i128::from(self.operand2.unwrap()); [INFO] [stdout] 29 + match self.operation_type { [INFO] [stdout] 30 + Add => value + operand2_unwrapped, [INFO] [stdout] 31 + Multiply => value * operand2_unwrapped [INFO] [stdout] 32 + } [INFO] [stdout] 33 + } else { [INFO] [stdout] 34 + match self.operation_type { [INFO] [stdout] 35 + Add => value + value, [INFO] [stdout] 36 + Multiply => value * value [INFO] [stdout] 37 + } [INFO] [stdout] 38 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11/operation.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | / return match operation_type { [INFO] [stdout] 50 | | "+" => Add, [INFO] [stdout] 51 | | "*" => Multiply, [INFO] [stdout] 52 | | _ => panic!("Unknown OperationType: {}", operation_type) [INFO] [stdout] 53 | | } [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] 49 ~ match operation_type { [INFO] [stdout] 50 + "+" => Add, [INFO] [stdout] 51 + "*" => Multiply, [INFO] [stdout] 52 + _ => panic!("Unknown OperationType: {}", operation_type) [INFO] [stdout] 53 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11/test.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | / return Test { [INFO] [stdout] 13 | | divisor: re.find(test_unparsed[0]).unwrap().as_str().parse::().unwrap(), [INFO] [stdout] 14 | | true_branch: re.find(test_unparsed[1]).unwrap().as_str().parse::().unwrap(), [INFO] [stdout] 15 | | false_branch: re.find(test_unparsed[2]).unwrap().as_str().parse::().unwrap() [INFO] [stdout] 16 | | }; [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] 12 ~ Test { [INFO] [stdout] 13 + divisor: re.find(test_unparsed[0]).unwrap().as_str().parse::().unwrap(), [INFO] [stdout] 14 + true_branch: re.find(test_unparsed[1]).unwrap().as_str().parse::().unwrap(), [INFO] [stdout] 15 + false_branch: re.find(test_unparsed[2]).unwrap().as_str().parse::().unwrap() [INFO] [stdout] 16 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day4.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | return (get_range_from_section(section1), get_range_from_section(section2)) [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] 27 - return (get_range_from_section(section1), get_range_from_section(section2)) [INFO] [stdout] 27 + (get_range_from_section(section1), get_range_from_section(section2)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11/test.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | / return if value % i128::from(self.divisor) == 0 { [INFO] [stdout] 21 | | self.true_branch [INFO] [stdout] 22 | | } else { [INFO] [stdout] 23 | | self.false_branch [INFO] [stdout] 24 | | }; [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] 20 ~ if value % i128::from(self.divisor) == 0 { [INFO] [stdout] 21 + self.true_branch [INFO] [stdout] 22 + } else { [INFO] [stdout] 23 + self.false_branch [INFO] [stdout] 24 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day4.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / (range1.begin <= range2.begin && range2.begin <= range1.end [INFO] [stdout] 44 | | || range1.begin <= range2.begin && range2.end <= range1.end) [INFO] [stdout] | |________________________________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 43 - (range1.begin <= range2.begin && range2.begin <= range1.end [INFO] [stdout] 44 - || range1.begin <= range2.begin && range2.end <= range1.end) [INFO] [stdout] 43 + !(range1.begin > range2.begin || range2.begin > range1.end && range2.end > range1.end) [INFO] [stdout] | [INFO] [stdout] 43 - (range1.begin <= range2.begin && range2.begin <= range1.end [INFO] [stdout] 44 - || range1.begin <= range2.begin && range2.end <= range1.end) [INFO] [stdout] 43 + (range2.end <= range1.end || range2.begin <= range1.end) && range1.begin <= range2.begin [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day4.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | || (range2.begin <= range1.begin && range1.begin <= range2.end [INFO] [stdout] | ____________^ [INFO] [stdout] 46 | | || range2.begin <= range1.begin && range1.end <= range2.end) [INFO] [stdout] | |________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 45 - || (range2.begin <= range1.begin && range1.begin <= range2.end [INFO] [stdout] 46 - || range2.begin <= range1.begin && range1.end <= range2.end) [INFO] [stdout] 45 + || !(range2.begin > range1.begin || range1.begin > range2.end && range1.end > range2.end) [INFO] [stdout] | [INFO] [stdout] 45 - || (range2.begin <= range1.begin && range1.begin <= range2.end [INFO] [stdout] 46 - || range2.begin <= range1.begin && range1.end <= range2.end) [INFO] [stdout] 45 + || (range1.end <= range2.end || range1.begin <= range2.end) && range2.begin <= range1.begin [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | return reverse_inspection_count_vec[0] * reverse_inspection_count_vec[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] 39 - return reverse_inspection_count_vec[0] * reverse_inspection_count_vec[1]; [INFO] [stdout] 39 + reverse_inspection_count_vec[0] * reverse_inspection_count_vec[1] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day5.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | return transposed; [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] 37 - return transposed; [INFO] [stdout] 37 + transposed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | return i128::from(*reverse_inspection_count_vec[0]) * i128::from(*reverse_inspection_count_vec[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] 71 - return i128::from(*reverse_inspection_count_vec[0]) * i128::from(*reverse_inspection_count_vec[1]); [INFO] [stdout] 71 + i128::from(*reverse_inspection_count_vec[0]) * i128::from(*reverse_inspection_count_vec[1]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day5.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | / return commands.split("\n") [INFO] [stdout] 42 | | .filter(|&command| !command.is_empty()) [INFO] [stdout] 43 | | .map(parse_command) [INFO] [stdout] 44 | | .collect(); [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] 41 ~ commands.split("\n") [INFO] [stdout] 42 + .filter(|&command| !command.is_empty()) [INFO] [stdout] 43 + .map(parse_command) [INFO] [stdout] 44 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day5.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | return (command_numbers[0], command_numbers[1], command_numbers[2]) [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] 53 - return (command_numbers[0], command_numbers[1], command_numbers[2]) [INFO] [stdout] 53 + (command_numbers[0], command_numbers[1], command_numbers[2]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/day5.rs:49:10 [INFO] [stdout] | [INFO] [stdout] 49 | .filter(|&line| line.parse::().is_ok()) [INFO] [stdout] | __________^ [INFO] [stdout] 50 | | .map(|num| num.parse::().unwrap()) [INFO] [stdout] | |_________________________________________________^ help: try: `filter_map(|num| num.parse::().ok())` [INFO] [stdout] | [INFO] [stdout] note: the suggestion might change the behavior of the program when merging `filter` and `map`, because this expression potentially contains side effects and will only execute once [INFO] [stdout] --> src/day5.rs:49:25 [INFO] [stdout] | [INFO] [stdout] 49 | .filter(|&line| line.parse::().is_ok()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map [INFO] [stdout] = note: `#[warn(clippy::manual_filter_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day5.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | / return state.iter() [INFO] [stdout] 58 | | .map(|s| s.last().unwrap()) [INFO] [stdout] 59 | | .collect(); [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] 57 ~ state.iter() [INFO] [stdout] 58 + .map(|s| s.last().unwrap()) [INFO] [stdout] 59 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/day5.rs:56:25 [INFO] [stdout] | [INFO] [stdout] 56 | fn get_top_items(state: &mut Vec>) -> String { [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] 56 - fn get_top_items(state: &mut Vec>) -> String { [INFO] [stdout] 56 + fn get_top_items(state: &mut [Vec]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | return Position { x: pos.0, y: pos.1, path_length: 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] 14 - return Position { x: pos.0, y: pos.1, path_length: 0 }; [INFO] [stdout] 14 + Position { x: pos.0, y: pos.1, path_length: 0 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | return Position { x: self.x, y: self.y - 1, path_length: self.path_length + 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] 18 - return Position { x: self.x, y: self.y - 1, path_length: self.path_length + 1 }; [INFO] [stdout] 18 + Position { x: self.x, y: self.y - 1, path_length: self.path_length + 1 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | return Position { x: self.x, y: self.y + 1, path_length: self.path_length + 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] 22 - return Position { x: self.x, y: self.y + 1, path_length: self.path_length + 1 }; [INFO] [stdout] 22 + Position { x: self.x, y: self.y + 1, path_length: self.path_length + 1 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day5.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | return state; [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] 70 - return state; [INFO] [stdout] 70 + state [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | return Position { x: self.x - 1, y: self.y, path_length: self.path_length + 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] 26 - return Position { x: self.x - 1, y: self.y, path_length: self.path_length + 1 }; [INFO] [stdout] 26 + Position { x: self.x - 1, y: self.y, path_length: self.path_length + 1 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | return Position { x: self.x + 1, y: self.y, path_length: self.path_length + 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] 30 - return Position { x: self.x + 1, y: self.y, path_length: self.path_length + 1 }; [INFO] [stdout] 30 + Position { x: self.x + 1, y: self.y, path_length: self.path_length + 1 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: re-implementing `PartialEq::ne` is unnecessary [INFO] [stdout] --> src/day12.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | fn ne(&self, other: &Self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_ne_impl [INFO] [stdout] = note: `#[warn(clippy::partialeq_ne_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day5.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | return state; [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] 83 - return state; [INFO] [stdout] 83 + state [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | return self.x == other.x && self.y == other.y; [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] 35 - return self.x == other.x && self.y == other.y; [INFO] [stdout] 35 + self.x == other.x && self.y == other.y [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | return !eq(self, other); [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] 39 - return !eq(self, other); [INFO] [stdout] 39 + !eq(self, other) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day6.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | 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] 23 - return 0; [INFO] [stdout] 23 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | return Position { x: -1, y: -1, path_length: 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] 44 - return Position { x: -1, y: -1, path_length: 0 }; [INFO] [stdout] 44 + Position { x: -1, y: -1, path_length: 0 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | return bfs(&heightmap, starting_position); [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] 58 - return bfs(&heightmap, starting_position); [INFO] [stdout] 58 + bfs(&heightmap, starting_position) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | / return if start_pos == Position::default() { [INFO] [stdout] 72 | | Err("No starting point defined!") [INFO] [stdout] 73 | | } else { [INFO] [stdout] 74 | | Ok(start_pos) [INFO] [stdout] 75 | | }; [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] 71 ~ if start_pos == Position::default() { [INFO] [stdout] 72 + Err("No starting point defined!") [INFO] [stdout] 73 + } else { [INFO] [stdout] 74 + Ok(start_pos) [INFO] [stdout] 75 ~ } [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/day12.rs:61:34 [INFO] [stdout] | [INFO] [stdout] 61 | fn get_start_position(heightmap: &Vec>, searched_char: char) -> Result { [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] 61 - fn get_start_position(heightmap: &Vec>, searched_char: char) -> Result { [INFO] [stdout] 61 + fn get_start_position(heightmap: &[Vec], searched_char: char) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `heightmap` [INFO] [stdout] --> src/day12.rs:63:14 [INFO] [stdout] | [INFO] [stdout] 63 | for i in 0..heightmap.len() { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 63 - for i in 0..heightmap.len() { [INFO] [stdout] 63 + for (i, ) in heightmap.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day6.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | 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] 45 - return 0; [INFO] [stdout] 45 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `heightmap` [INFO] [stdout] --> src/day12.rs:64:18 [INFO] [stdout] | [INFO] [stdout] 64 | for j in 0..heightmap[i].len() { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 64 - for j in 0..heightmap[i].len() { [INFO] [stdout] 64 + for (j, ) in heightmap.iter().enumerate().take(heightmap[i].len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | / return starting_positions.iter() [INFO] [stdout] 89 | | .map(|position: &Position| bfs(&heightmap, *position)) [INFO] [stdout] 90 | | .filter(|&length| length != -1) [INFO] [stdout] 91 | | .min().unwrap(); [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] 88 ~ starting_positions.iter() [INFO] [stdout] 89 + .map(|position: &Position| bfs(&heightmap, *position)) [INFO] [stdout] 90 + .filter(|&length| length != -1) [INFO] [stdout] 91 ~ .min().unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | return visible_trees; [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 visible_trees; [INFO] [stdout] 24 + visible_trees [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | return start_positions; [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] 104 - return start_positions; [INFO] [stdout] 104 + start_positions [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | / return is_tree_visible_from_up(&tree_map, &y, &x) [INFO] [stdout] 29 | | || is_tree_visible_from_down(&tree_map, &y, &x) [INFO] [stdout] 30 | | || is_tree_visible_from_left(&tree_map[y], &x) [INFO] [stdout] 31 | | || is_tree_visible_from_right(&tree_map[y], &x); [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] 28 ~ is_tree_visible_from_up(&tree_map, &y, &x) [INFO] [stdout] 29 + || is_tree_visible_from_down(&tree_map, &y, &x) [INFO] [stdout] 30 + || is_tree_visible_from_left(&tree_map[y], &x) [INFO] [stdout] 31 ~ || is_tree_visible_from_right(&tree_map[y], &x) [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/day12.rs:94:35 [INFO] [stdout] | [INFO] [stdout] 94 | fn get_start_positions(heightmap: &Vec>, elevation: Vec) -> Vec { [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] 94 - fn get_start_positions(heightmap: &Vec>, elevation: Vec) -> Vec { [INFO] [stdout] 94 + fn get_start_positions(heightmap: &[Vec], elevation: Vec) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day8.rs:28:36 [INFO] [stdout] | [INFO] [stdout] 28 | return is_tree_visible_from_up(&tree_map, &y, &x) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `tree_map` [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: the loop variable `i` is used to index `heightmap` [INFO] [stdout] --> src/day12.rs:96:14 [INFO] [stdout] | [INFO] [stdout] 96 | for i in 0..heightmap.len() { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 96 - for i in 0..heightmap.len() { [INFO] [stdout] 96 + for (i, ) in heightmap.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day8.rs:29:38 [INFO] [stdout] | [INFO] [stdout] 29 | || is_tree_visible_from_down(&tree_map, &y, &x) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `tree_map` [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: the loop variable `j` is used to index `heightmap` [INFO] [stdout] --> src/day12.rs:97:18 [INFO] [stdout] | [INFO] [stdout] 97 | for j in 0..heightmap[i].len() { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 97 - for j in 0..heightmap[i].len() { [INFO] [stdout] 97 + for (j, ) in heightmap.iter().enumerate().take(heightmap[i].len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | return true; [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] 41 - return true; [INFO] [stdout] 41 + true [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/day8.rs:34:38 [INFO] [stdout] | [INFO] [stdout] 34 | fn is_tree_visible_from_up(tree_map: &Vec>, y: &usize, x: &usize) -> 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] help: change this to [INFO] [stdout] | [INFO] [stdout] 34 - fn is_tree_visible_from_up(tree_map: &Vec>, y: &usize, x: &usize) -> bool { [INFO] [stdout] 34 + fn is_tree_visible_from_up(tree_map: &[Vec], y: &usize, x: &usize) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `tree_map` [INFO] [stdout] --> src/day8.rs:36:14 [INFO] [stdout] | [INFO] [stdout] 36 | for i in 0..*y { [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 [INFO] [stdout] | [INFO] [stdout] 36 - for i in 0..*y { [INFO] [stdout] 36 + for in tree_map.iter().take(*y) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:136:5 [INFO] [stdout] | [INFO] [stdout] 136 | return -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] 136 - return -1; [INFO] [stdout] 136 + -1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | return true; [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] 51 - return true; [INFO] [stdout] 51 + true [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/day8.rs:44:40 [INFO] [stdout] | [INFO] [stdout] 44 | fn is_tree_visible_from_down(tree_map: &Vec>, y: &usize, x: &usize) -> 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] help: change this to [INFO] [stdout] | [INFO] [stdout] 44 - fn is_tree_visible_from_down(tree_map: &Vec>, y: &usize, x: &usize) -> bool { [INFO] [stdout] 44 + fn is_tree_visible_from_down(tree_map: &[Vec], y: &usize, x: &usize) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day12.rs:120:25 [INFO] [stdout] | [INFO] [stdout] 120 | if can_move(&heightmap, ¤t_pos, ¤t_pos.up()) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `heightmap` [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: the loop variable `i` is only used to index `tree_map` [INFO] [stdout] --> src/day8.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | for i in (y + 1)..tree_map.len() { [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] 46 - for i in (y + 1)..tree_map.len() { [INFO] [stdout] 46 + for in tree_map.iter().skip((y + 1)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day12.rs:123:25 [INFO] [stdout] | [INFO] [stdout] 123 | if can_move(&heightmap, ¤t_pos, ¤t_pos.down()) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `heightmap` [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/day12.rs:126:25 [INFO] [stdout] | [INFO] [stdout] 126 | if can_move(&heightmap, ¤t_pos, ¤t_pos.left()) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `heightmap` [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/day8.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | return true; [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] 61 - return true; [INFO] [stdout] 61 + true [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/day8.rs:54:35 [INFO] [stdout] | [INFO] [stdout] 54 | fn is_tree_visible_from_left(row: &Vec, x: &usize) -> 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] help: change this to [INFO] [stdout] | [INFO] [stdout] 54 - fn is_tree_visible_from_left(row: &Vec, x: &usize) -> bool { [INFO] [stdout] 54 + fn is_tree_visible_from_left(row: &[u32], x: &usize) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day12.rs:129:25 [INFO] [stdout] | [INFO] [stdout] 129 | if can_move(&heightmap, ¤t_pos, ¤t_pos.right()) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `heightmap` [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: the loop variable `i` is only used to index `row` [INFO] [stdout] --> src/day8.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | for i in 0..*x { [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..*x { [INFO] [stdout] 56 + for in row.iter().take(*x) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:160:5 [INFO] [stdout] | [INFO] [stdout] 160 | return false; [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] 160 - return false; [INFO] [stdout] 160 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | return true; [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] 71 - return true; [INFO] [stdout] 71 + true [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/day12.rs:139:24 [INFO] [stdout] | [INFO] [stdout] 139 | fn can_move(heightmap: &Vec>, current_position: &Position, checked_position: &Position) -> 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] help: change this to [INFO] [stdout] | [INFO] [stdout] 139 - fn can_move(heightmap: &Vec>, current_position: &Position, checked_position: &Position) -> bool { [INFO] [stdout] 139 + fn can_move(heightmap: &[Vec], current_position: &Position, checked_position: &Position) -> bool { [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/day8.rs:64:36 [INFO] [stdout] | [INFO] [stdout] 64 | fn is_tree_visible_from_right(row: &Vec, x: &usize) -> 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] help: change this to [INFO] [stdout] | [INFO] [stdout] 64 - fn is_tree_visible_from_right(row: &Vec, x: &usize) -> bool { [INFO] [stdout] 64 + fn is_tree_visible_from_right(row: &[u32], x: &usize) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `row` [INFO] [stdout] --> src/day8.rs:66:14 [INFO] [stdout] | [INFO] [stdout] 66 | for i in (x + 1)..row.len() { [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] 66 - for i in (x + 1)..row.len() { [INFO] [stdout] 66 + for in row.iter().skip((x + 1)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | return *scenic_scores.iter().max().unwrap(); [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] 95 - return *scenic_scores.iter().max().unwrap(); [INFO] [stdout] 95 + *scenic_scores.iter().max().unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/day10.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 66 | if vec![x - 1, x, x + 1].contains(&((cycle - 1) % 40)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[x - 1, x, x + 1]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | / return get_scenic_score_from_up(&tree_map, &y, &x) [INFO] [stdout] 100 | | * get_scenic_score_from_down(&tree_map, &y, &x) [INFO] [stdout] 101 | | * get_scenic_score_from_left(&tree_map[y], &x) [INFO] [stdout] 102 | | * get_scenic_score_from_right(&tree_map[y], &x); [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] 99 ~ get_scenic_score_from_up(&tree_map, &y, &x) [INFO] [stdout] 100 + * get_scenic_score_from_down(&tree_map, &y, &x) [INFO] [stdout] 101 + * get_scenic_score_from_left(&tree_map[y], &x) [INFO] [stdout] 102 ~ * get_scenic_score_from_right(&tree_map[y], &x) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day8.rs:99:37 [INFO] [stdout] | [INFO] [stdout] 99 | return get_scenic_score_from_up(&tree_map, &y, &x) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `tree_map` [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/day8.rs:100:38 [INFO] [stdout] | [INFO] [stdout] 100 | * get_scenic_score_from_down(&tree_map, &y, &x) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `tree_map` [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/day8.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | return *y as u32; [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] 112 - return *y as u32; [INFO] [stdout] 112 + *y as u32 [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/day8.rs:105:39 [INFO] [stdout] | [INFO] [stdout] 105 | fn get_scenic_score_from_up(tree_map: &Vec>, y: &usize, x: &usize) -> u32 { [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] 105 - fn get_scenic_score_from_up(tree_map: &Vec>, y: &usize, x: &usize) -> u32 { [INFO] [stdout] 105 + fn get_scenic_score_from_up(tree_map: &[Vec], y: &usize, x: &usize) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:122:5 [INFO] [stdout] | [INFO] [stdout] 122 | return (tree_map.len() - 1 - y) as u32; [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] 122 - return (tree_map.len() - 1 - y) as u32; [INFO] [stdout] 122 + (tree_map.len() - 1 - y) as u32 [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/day8.rs:115:41 [INFO] [stdout] | [INFO] [stdout] 115 | fn get_scenic_score_from_down(tree_map: &Vec>, y: &usize, x: &usize) -> u32 { [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] 115 - fn get_scenic_score_from_down(tree_map: &Vec>, y: &usize, x: &usize) -> u32 { [INFO] [stdout] 115 + fn get_scenic_score_from_down(tree_map: &[Vec], y: &usize, x: &usize) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `tree_map` [INFO] [stdout] --> src/day8.rs:117:14 [INFO] [stdout] | [INFO] [stdout] 117 | for i in (y + 1)..tree_map.len() { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 117 - for i in (y + 1)..tree_map.len() { [INFO] [stdout] 117 + for (i, ) in tree_map.iter().enumerate().skip((y + 1)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | return *x as u32; [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] 132 - return *x as u32; [INFO] [stdout] 132 + *x as u32 [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/day8.rs:125:36 [INFO] [stdout] | [INFO] [stdout] 125 | fn get_scenic_score_from_left(row: &Vec, x: &usize) -> u32 { [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] 125 - fn get_scenic_score_from_left(row: &Vec, x: &usize) -> u32 { [INFO] [stdout] 125 + fn get_scenic_score_from_left(row: &[u32], x: &usize) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day8.rs:142:5 [INFO] [stdout] | [INFO] [stdout] 142 | return (row.len() - 1 - x) as u32; [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] 142 - return (row.len() - 1 - x) as u32; [INFO] [stdout] 142 + (row.len() - 1 - x) as u32 [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/day8.rs:135:37 [INFO] [stdout] | [INFO] [stdout] 135 | fn get_scenic_score_from_right(row: &Vec, x: &usize) -> u32 { [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] 135 - fn get_scenic_score_from_right(row: &Vec, x: &usize) -> u32 { [INFO] [stdout] 135 + fn get_scenic_score_from_right(row: &[u32], x: &usize) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `row` [INFO] [stdout] --> src/day8.rs:137:14 [INFO] [stdout] | [INFO] [stdout] 137 | for i in (x + 1)..row.len() { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 137 - for i in (x + 1)..row.len() { [INFO] [stdout] 137 + for (i, ) in row.iter().enumerate().skip((x + 1)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day8.rs:164:9 [INFO] [stdout] | [INFO] [stdout] 164 | assert_eq!(false, is_tree_visible_from_left(&tree_map[0], &(1usize))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 164 - assert_eq!(false, is_tree_visible_from_left(&tree_map[0], &(1usize))); [INFO] [stdout] 164 + assert!(!is_tree_visible_from_left(&tree_map[0], &(1usize))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day8.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | assert_eq!(false, is_tree_visible_from_right(&tree_map[0], &(1usize))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 165 - assert_eq!(false, is_tree_visible_from_right(&tree_map[0], &(1usize))); [INFO] [stdout] 165 + assert!(!is_tree_visible_from_right(&tree_map[0], &(1usize))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day8.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | assert_eq!(false, is_tree_visible_from_up(&tree_map, &1usize, &1usize)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 172 - assert_eq!(false, is_tree_visible_from_up(&tree_map, &1usize, &1usize)); [INFO] [stdout] 172 + assert!(!is_tree_visible_from_up(&tree_map, &1usize, &1usize)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day8.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | assert_eq!(false, is_tree_visible_from_down(&tree_map, &1usize, &1usize)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 173 - assert_eq!(false, is_tree_visible_from_down(&tree_map, &1usize, &1usize)); [INFO] [stdout] 173 + assert!(!is_tree_visible_from_down(&tree_map, &1usize, &1usize)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9/utils.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | return Position { x: 0, y: 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] 12 - return Position { x: 0, y: 0 }; [INFO] [stdout] 12 + Position { x: 0, y: 0 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9/utils.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | return Position { x, y }; [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] 15 - return Position { x, y }; [INFO] [stdout] 15 + Position { x, y } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9/utils.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | / return match direction { [INFO] [stdout] 20 | | "U" => Position::from(self.x, self.y + 1), [INFO] [stdout] 21 | | "D" => Position::from(self.x, self.y - 1), [INFO] [stdout] 22 | | "L" => Position::from(self.x - 1, self.y), [INFO] [stdout] 23 | | "R" => Position::from(self.x + 1, self.y), [INFO] [stdout] 24 | | _ => {panic!("Unknown direction: {}", direction)} [INFO] [stdout] 25 | | } [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 ~ match direction { [INFO] [stdout] 20 + "U" => Position::from(self.x, self.y + 1), [INFO] [stdout] 21 + "D" => Position::from(self.x, self.y - 1), [INFO] [stdout] 22 + "L" => Position::from(self.x - 1, self.y), [INFO] [stdout] 23 + "R" => Position::from(self.x + 1, self.y), [INFO] [stdout] 24 + _ => {panic!("Unknown direction: {}", direction)} [INFO] [stdout] 25 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9/utils.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | / return Box::from( [INFO] [stdout] 37 | | Head { [INFO] [stdout] 38 | | position: Position { x: 0, y: 0}, [INFO] [stdout] 39 | | tail: Tail::new(), [INFO] [stdout] 40 | | } [INFO] [stdout] 41 | | ) [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] 36 ~ Box::from( [INFO] [stdout] 37 + Head { [INFO] [stdout] 38 + position: Position { x: 0, y: 0}, [INFO] [stdout] 39 + tail: Tail::new(), [INFO] [stdout] 40 + } [INFO] [stdout] 41 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9/utils.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | / return Box::from( [INFO] [stdout] 60 | | Head2 { [INFO] [stdout] 61 | | position: Position { x: 0, y: 0}, [INFO] [stdout] 62 | | tails: vec![ [INFO] [stdout] ... | [INFO] [stdout] 68 | | ) [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] 59 ~ Box::from( [INFO] [stdout] 60 + Head2 { [INFO] [stdout] 61 + position: Position { x: 0, y: 0}, [INFO] [stdout] 62 + tails: vec![ [INFO] [stdout] 63 + Tail::new(), // The original tail [INFO] [stdout] 64 + Tail::new(), Tail::new(), Tail::new(), Tail::new(), [INFO] [stdout] 65 + Tail::new(), Tail::new(), Tail::new(), Tail::new(), [INFO] [stdout] 66 + ] [INFO] [stdout] 67 + } [INFO] [stdout] 68 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9/utils.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | / return Tail { [INFO] [stdout] 91 | | position: starting_position, [INFO] [stdout] 92 | | visited_positions: HashSet::from([starting_position]) [INFO] [stdout] 93 | | }; [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] 90 ~ Tail { [INFO] [stdout] 91 + position: starting_position, [INFO] [stdout] 92 + visited_positions: HashSet::from([starting_position]) [INFO] [stdout] 93 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> src/day9/utils.rs:97:32 [INFO] [stdout] | [INFO] [stdout] 97 | let current_position = self.position.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.position` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> src/day9/utils.rs:127:39 [INFO] [stdout] | [INFO] [stdout] 127 | self.visited_positions.insert(self.position.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.position` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | return (command_raw[0], command_raw[1].trim().parse::().unwrap()); [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] 13 - return (command_raw[0], command_raw[1].trim().parse::().unwrap()); [INFO] [stdout] 13 + (command_raw[0], command_raw[1].trim().parse::().unwrap()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | return head.tail.visited_positions.len() as u32; [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] 25 - return head.tail.visited_positions.len() as u32; [INFO] [stdout] 25 + head.tail.visited_positions.len() as u32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | return (command_raw[0], command_raw[1].trim().parse::().unwrap()); [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] 35 - return (command_raw[0], command_raw[1].trim().parse::().unwrap()); [INFO] [stdout] 35 + (command_raw[0], command_raw[1].trim().parse::().unwrap()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day9.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | return head.tails.last().unwrap().visited_positions.len() as u32; [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] 47 - return head.tails.last().unwrap().visited_positions.len() as u32; [INFO] [stdout] 47 + head.tails.last().unwrap().visited_positions.len() as u32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day10.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return signal_strength; [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] 40 - return signal_strength; [INFO] [stdout] 40 + signal_strength [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/day10.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | .map(|x| { [INFO] [stdout] | __________^ [INFO] [stdout] 13 | | if *x != "noop" { [INFO] [stdout] 14 | | return vec!["noop", x]; [INFO] [stdout] ... | [INFO] [stdout] 17 | | }) [INFO] [stdout] 18 | | .flatten() [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] = note: `#[warn(clippy::map_flatten)]` on by default [INFO] [stdout] help: try replacing `map` with `flat_map` and remove the `.flatten()` [INFO] [stdout] | [INFO] [stdout] 12 ~ .flat_map(|x| { [INFO] [stdout] 13 + if *x != "noop" { [INFO] [stdout] 14 + return vec!["noop", x]; [INFO] [stdout] 15 + } [INFO] [stdout] 16 + return vec![x]; [INFO] [stdout] 17 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day10.rs:16:13 [INFO] [stdout] | [INFO] [stdout] 16 | return vec![x]; [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] 16 - return vec![x]; [INFO] [stdout] 16 + vec![x] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `cycle` is used as a loop counter [INFO] [stdout] --> src/day10.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | for command in extended_commands { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (cycle, command) in (1..).zip(extended_commands.into_iter())` [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/day10.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | return image; [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] 85 - return image; [INFO] [stdout] 85 + image [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/day10.rs:52:10 [INFO] [stdout] | [INFO] [stdout] 52 | .map(|x| { [INFO] [stdout] | __________^ [INFO] [stdout] 53 | | if *x != "noop" { [INFO] [stdout] 54 | | return vec!["noop", x]; [INFO] [stdout] ... | [INFO] [stdout] 57 | | }) [INFO] [stdout] 58 | | .flatten() [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] help: try replacing `map` with `flat_map` and remove the `.flatten()` [INFO] [stdout] | [INFO] [stdout] 52 ~ .flat_map(|x| { [INFO] [stdout] 53 + if *x != "noop" { [INFO] [stdout] 54 + return vec!["noop", x]; [INFO] [stdout] 55 + } [INFO] [stdout] 56 + return vec![x]; [INFO] [stdout] 57 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day10.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | return vec![x]; [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] 56 - return vec![x]; [INFO] [stdout] 56 + vec![x] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `cycle` is used as a loop counter [INFO] [stdout] --> src/day10.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | for command in extended_commands { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (cycle, command) in (1..).zip(extended_commands.into_iter())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/day10.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | image.push_str("#"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `image.push('#')` [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: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/day10.rs:69:13 [INFO] [stdout] | [INFO] [stdout] 69 | image.push_str("."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `image.push('.')` [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] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/day10.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | image.push_str("\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `image.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11/monkey.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | / return Monkey { [INFO] [stdout] 15 | | items: split_unparsed[1].split(":") [INFO] [stdout] 16 | | .collect::>()[1].trim().split(",") [INFO] [stdout] 17 | | .map(|y| y.trim().parse::().unwrap()) [INFO] [stdout] ... | [INFO] [stdout] 21 | | inspection_count: 0 [INFO] [stdout] 22 | | }; [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] 14 ~ Monkey { [INFO] [stdout] 15 + items: split_unparsed[1].split(":") [INFO] [stdout] 16 + .collect::>()[1].trim().split(",") [INFO] [stdout] 17 + .map(|y| y.trim().parse::().unwrap()) [INFO] [stdout] 18 + .collect(), [INFO] [stdout] 19 + operation: Operation::from(split_unparsed[2]), [INFO] [stdout] 20 + test: Test::from(split_unparsed[3..].to_vec()), [INFO] [stdout] 21 + inspection_count: 0 [INFO] [stdout] 22 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/day11/monkey.rs:25:50 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn inspect_and_throw(&mut self, monkeys: &mut Vec, is_part_1: bool, modulo: i32) { [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] 25 - pub fn inspect_and_throw(&mut self, monkeys: &mut Vec, is_part_1: bool, modulo: i32) { [INFO] [stdout] 25 + pub fn inspect_and_throw(&mut self, monkeys: &mut [Monkey], is_part_1: bool, modulo: i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11/operation.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | / return if operand2 == "old" { [INFO] [stdout] 14 | | Operation { [INFO] [stdout] 15 | | operation_type, [INFO] [stdout] 16 | | operand2: None, [INFO] [stdout] ... | [INFO] [stdout] 23 | | } [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] 13 ~ if operand2 == "old" { [INFO] [stdout] 14 + Operation { [INFO] [stdout] 15 + operation_type, [INFO] [stdout] 16 + operand2: None, [INFO] [stdout] 17 + } [INFO] [stdout] 18 + } else { [INFO] [stdout] 19 + Operation { [INFO] [stdout] 20 + operation_type, [INFO] [stdout] 21 + operand2: Some(operand2.trim().parse::().unwrap()), [INFO] [stdout] 22 + } [INFO] [stdout] 23 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.operand2` after checking its variant with `is_some` [INFO] [stdout] --> src/day11/operation.rs:28:49 [INFO] [stdout] | [INFO] [stdout] 27 | return if self.operand2.is_some() { [INFO] [stdout] | -------------------------- help: try: `if let Some() = self.operand2` [INFO] [stdout] 28 | let operand2_unwrapped = i128::from(self.operand2.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11/operation.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | / return if self.operand2.is_some() { [INFO] [stdout] 28 | | let operand2_unwrapped = i128::from(self.operand2.unwrap()); [INFO] [stdout] 29 | | match self.operation_type { [INFO] [stdout] 30 | | Add => value + operand2_unwrapped, [INFO] [stdout] ... | [INFO] [stdout] 38 | | } [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] 27 ~ if self.operand2.is_some() { [INFO] [stdout] 28 + let operand2_unwrapped = i128::from(self.operand2.unwrap()); [INFO] [stdout] 29 + match self.operation_type { [INFO] [stdout] 30 + Add => value + operand2_unwrapped, [INFO] [stdout] 31 + Multiply => value * operand2_unwrapped [INFO] [stdout] 32 + } [INFO] [stdout] 33 + } else { [INFO] [stdout] 34 + match self.operation_type { [INFO] [stdout] 35 + Add => value + value, [INFO] [stdout] 36 + Multiply => value * value [INFO] [stdout] 37 + } [INFO] [stdout] 38 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11/operation.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | / return match operation_type { [INFO] [stdout] 50 | | "+" => Add, [INFO] [stdout] 51 | | "*" => Multiply, [INFO] [stdout] 52 | | _ => panic!("Unknown OperationType: {}", operation_type) [INFO] [stdout] 53 | | } [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] 49 ~ match operation_type { [INFO] [stdout] 50 + "+" => Add, [INFO] [stdout] 51 + "*" => Multiply, [INFO] [stdout] 52 + _ => panic!("Unknown OperationType: {}", operation_type) [INFO] [stdout] 53 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11/test.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | / return Test { [INFO] [stdout] 13 | | divisor: re.find(test_unparsed[0]).unwrap().as_str().parse::().unwrap(), [INFO] [stdout] 14 | | true_branch: re.find(test_unparsed[1]).unwrap().as_str().parse::().unwrap(), [INFO] [stdout] 15 | | false_branch: re.find(test_unparsed[2]).unwrap().as_str().parse::().unwrap() [INFO] [stdout] 16 | | }; [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] 12 ~ Test { [INFO] [stdout] 13 + divisor: re.find(test_unparsed[0]).unwrap().as_str().parse::().unwrap(), [INFO] [stdout] 14 + true_branch: re.find(test_unparsed[1]).unwrap().as_str().parse::().unwrap(), [INFO] [stdout] 15 + false_branch: re.find(test_unparsed[2]).unwrap().as_str().parse::().unwrap() [INFO] [stdout] 16 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11/test.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | / return if value % i128::from(self.divisor) == 0 { [INFO] [stdout] 21 | | self.true_branch [INFO] [stdout] 22 | | } else { [INFO] [stdout] 23 | | self.false_branch [INFO] [stdout] 24 | | }; [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] 20 ~ if value % i128::from(self.divisor) == 0 { [INFO] [stdout] 21 + self.true_branch [INFO] [stdout] 22 + } else { [INFO] [stdout] 23 + self.false_branch [INFO] [stdout] 24 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | return reverse_inspection_count_vec[0] * reverse_inspection_count_vec[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] 39 - return reverse_inspection_count_vec[0] * reverse_inspection_count_vec[1]; [INFO] [stdout] 39 + reverse_inspection_count_vec[0] * reverse_inspection_count_vec[1] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day11.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | return i128::from(*reverse_inspection_count_vec[0]) * i128::from(*reverse_inspection_count_vec[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] 71 - return i128::from(*reverse_inspection_count_vec[0]) * i128::from(*reverse_inspection_count_vec[1]); [INFO] [stdout] 71 + i128::from(*reverse_inspection_count_vec[0]) * i128::from(*reverse_inspection_count_vec[1]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | return Position { x: pos.0, y: pos.1, path_length: 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] 14 - return Position { x: pos.0, y: pos.1, path_length: 0 }; [INFO] [stdout] 14 + Position { x: pos.0, y: pos.1, path_length: 0 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | return Position { x: self.x, y: self.y - 1, path_length: self.path_length + 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] 18 - return Position { x: self.x, y: self.y - 1, path_length: self.path_length + 1 }; [INFO] [stdout] 18 + Position { x: self.x, y: self.y - 1, path_length: self.path_length + 1 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | return Position { x: self.x, y: self.y + 1, path_length: self.path_length + 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] 22 - return Position { x: self.x, y: self.y + 1, path_length: self.path_length + 1 }; [INFO] [stdout] 22 + Position { x: self.x, y: self.y + 1, path_length: self.path_length + 1 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | return Position { x: self.x - 1, y: self.y, path_length: self.path_length + 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] 26 - return Position { x: self.x - 1, y: self.y, path_length: self.path_length + 1 }; [INFO] [stdout] 26 + Position { x: self.x - 1, y: self.y, path_length: self.path_length + 1 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | return Position { x: self.x + 1, y: self.y, path_length: self.path_length + 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] 30 - return Position { x: self.x + 1, y: self.y, path_length: self.path_length + 1 }; [INFO] [stdout] 30 + Position { x: self.x + 1, y: self.y, path_length: self.path_length + 1 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: re-implementing `PartialEq::ne` is unnecessary [INFO] [stdout] --> src/day12.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | fn ne(&self, other: &Self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_ne_impl [INFO] [stdout] = note: `#[warn(clippy::partialeq_ne_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | return self.x == other.x && self.y == other.y; [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] 35 - return self.x == other.x && self.y == other.y; [INFO] [stdout] 35 + self.x == other.x && self.y == other.y [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | return !eq(self, other); [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] 39 - return !eq(self, other); [INFO] [stdout] 39 + !eq(self, other) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | return Position { x: -1, y: -1, path_length: 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] 44 - return Position { x: -1, y: -1, path_length: 0 }; [INFO] [stdout] 44 + Position { x: -1, y: -1, path_length: 0 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | return bfs(&heightmap, starting_position); [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] 58 - return bfs(&heightmap, starting_position); [INFO] [stdout] 58 + bfs(&heightmap, starting_position) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | / return if start_pos == Position::default() { [INFO] [stdout] 72 | | Err("No starting point defined!") [INFO] [stdout] 73 | | } else { [INFO] [stdout] 74 | | Ok(start_pos) [INFO] [stdout] 75 | | }; [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] 71 ~ if start_pos == Position::default() { [INFO] [stdout] 72 + Err("No starting point defined!") [INFO] [stdout] 73 + } else { [INFO] [stdout] 74 + Ok(start_pos) [INFO] [stdout] 75 ~ } [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/day12.rs:61:34 [INFO] [stdout] | [INFO] [stdout] 61 | fn get_start_position(heightmap: &Vec>, searched_char: char) -> Result { [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] 61 - fn get_start_position(heightmap: &Vec>, searched_char: char) -> Result { [INFO] [stdout] 61 + fn get_start_position(heightmap: &[Vec], searched_char: char) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `heightmap` [INFO] [stdout] --> src/day12.rs:63:14 [INFO] [stdout] | [INFO] [stdout] 63 | for i in 0..heightmap.len() { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 63 - for i in 0..heightmap.len() { [INFO] [stdout] 63 + for (i, ) in heightmap.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `heightmap` [INFO] [stdout] --> src/day12.rs:64:18 [INFO] [stdout] | [INFO] [stdout] 64 | for j in 0..heightmap[i].len() { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 64 - for j in 0..heightmap[i].len() { [INFO] [stdout] 64 + for (j, ) in heightmap.iter().enumerate().take(heightmap[i].len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | / return starting_positions.iter() [INFO] [stdout] 89 | | .map(|position: &Position| bfs(&heightmap, *position)) [INFO] [stdout] 90 | | .filter(|&length| length != -1) [INFO] [stdout] 91 | | .min().unwrap(); [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] 88 ~ starting_positions.iter() [INFO] [stdout] 89 + .map(|position: &Position| bfs(&heightmap, *position)) [INFO] [stdout] 90 + .filter(|&length| length != -1) [INFO] [stdout] 91 ~ .min().unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | return start_positions; [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] 104 - return start_positions; [INFO] [stdout] 104 + start_positions [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/day12.rs:94:35 [INFO] [stdout] | [INFO] [stdout] 94 | fn get_start_positions(heightmap: &Vec>, elevation: Vec) -> Vec { [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] 94 - fn get_start_positions(heightmap: &Vec>, elevation: Vec) -> Vec { [INFO] [stdout] 94 + fn get_start_positions(heightmap: &[Vec], elevation: Vec) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `heightmap` [INFO] [stdout] --> src/day12.rs:96:14 [INFO] [stdout] | [INFO] [stdout] 96 | for i in 0..heightmap.len() { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 96 - for i in 0..heightmap.len() { [INFO] [stdout] 96 + for (i, ) in heightmap.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `heightmap` [INFO] [stdout] --> src/day12.rs:97:18 [INFO] [stdout] | [INFO] [stdout] 97 | for j in 0..heightmap[i].len() { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 97 - for j in 0..heightmap[i].len() { [INFO] [stdout] 97 + for (j, ) in heightmap.iter().enumerate().take(heightmap[i].len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day12.rs:136:5 [INFO] [stdout] | [INFO] [stdout] 136 | return -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] 136 - return -1; [INFO] [stdout] 136 + -1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day12.rs:120:25 [INFO] [stdout] | [INFO] [stdout] 120 | if can_move(&heightmap, ¤t_pos, ¤t_pos.up()) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `heightmap` [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/day12.rs:123:25 [INFO] [stdout] | [INFO] [stdout] 123 | if can_move(&heightmap, ¤t_pos, ¤t_pos.down()) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `heightmap` [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/day12.rs:126:25 [INFO] [stdout] | [INFO] [stdout] 126 | if can_move(&heightmap, ¤t_pos, ¤t_pos.left()) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `heightmap` [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/day12.rs:129:25 [INFO] [stdout] | [INFO] [stdout] 129 | if can_move(&heightmap, ¤t_pos, ¤t_pos.right()) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `heightmap` [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/day12.rs:160:5 [INFO] [stdout] | [INFO] [stdout] 160 | return false; [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] 160 - return false; [INFO] [stdout] 160 + false [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/day12.rs:139:24 [INFO] [stdout] | [INFO] [stdout] 139 | fn can_move(heightmap: &Vec>, current_position: &Position, checked_position: &Position) -> 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] help: change this to [INFO] [stdout] | [INFO] [stdout] 139 - fn can_move(heightmap: &Vec>, current_position: &Position, checked_position: &Position) -> bool { [INFO] [stdout] 139 + fn can_move(heightmap: &[Vec], current_position: &Position, checked_position: &Position) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/day10.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 66 | if vec![x - 1, x, x + 1].contains(&((cycle - 1) % 40)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[x - 1, x, x + 1]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.50s [INFO] running `Command { std: "docker" "inspect" "9efb2b8372e0f95a5ee3048dbb341f7674bd7d3723140eb4564110c58684af43", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9efb2b8372e0f95a5ee3048dbb341f7674bd7d3723140eb4564110c58684af43", kill_on_drop: false }` [INFO] [stdout] 9efb2b8372e0f95a5ee3048dbb341f7674bd7d3723140eb4564110c58684af43