[INFO] cloning repository https://github.com/kavu16/aoc [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kavu16/aoc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkavu16%2Faoc", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkavu16%2Faoc'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 615401e8284dc41cce8e63d94eb887f245ef5639 [INFO] linting kavu16/aoc against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkavu16%2Faoc" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/kavu16/aoc [INFO] finished tweaking git repo https://github.com/kavu16/aoc [INFO] tweaked toml for git repo https://github.com/kavu16/aoc written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/kavu16/aoc 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/kavu16/aoc 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 bytemuck v1.16.0 [INFO] [stderr] Downloaded wide v0.7.24 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 736d1fdc3abb664732b3f8b9ad59f96f980890da8f6f03a02d0b1e07ad8a5a1e [INFO] running `Command { std: "docker" "start" "-a" "736d1fdc3abb664732b3f8b9ad59f96f980890da8f6f03a02d0b1e07ad8a5a1e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "736d1fdc3abb664732b3f8b9ad59f96f980890da8f6f03a02d0b1e07ad8a5a1e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "736d1fdc3abb664732b3f8b9ad59f96f980890da8f6f03a02d0b1e07ad8a5a1e", kill_on_drop: false }` [INFO] [stdout] 736d1fdc3abb664732b3f8b9ad59f96f980890da8f6f03a02d0b1e07ad8a5a1e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 64aac5744ba1e85a9d3cbf2302b0390b00ac767389a548cab635c696c9f903a2 [INFO] running `Command { std: "docker" "start" "-a" "64aac5744ba1e85a9d3cbf2302b0390b00ac767389a548cab635c696c9f903a2", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.17 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Compiling proc-macro2 v1.0.85 [INFO] [stderr] Compiling crossbeam-utils v0.8.18 [INFO] [stderr] Compiling num-bigint v0.4.4 [INFO] [stderr] Compiling num-rational v0.4.1 [INFO] [stderr] Checking bytemuck v1.16.0 [INFO] [stderr] Compiling matrixmultiply v0.3.8 [INFO] [stderr] Compiling num-iter v0.1.43 [INFO] [stderr] Compiling rayon-core v1.12.0 [INFO] [stderr] Checking memchr v2.6.4 [INFO] [stderr] Checking either v1.9.0 [INFO] [stderr] Checking safe_arch v0.7.1 [INFO] [stderr] Checking aho-corasick v1.1.2 [INFO] [stderr] Checking wide v0.7.24 [INFO] [stderr] Checking crossbeam-epoch v0.9.17 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Checking num-complex v0.4.4 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking crossbeam-deque v0.8.4 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking rayon v1.8.0 [INFO] [stderr] Checking simba v0.8.1 [INFO] [stderr] Checking num v0.4.1 [INFO] [stderr] Compiling nalgebra-macros v0.2.1 [INFO] [stderr] Checking nalgebra v0.32.6 [INFO] [stderr] Checking aoc v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/puzzles/day15.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/puzzles/day15.rs:79:17 [INFO] [stdout] | [INFO] [stdout] 79 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/puzzles/day22.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | id: id, [INFO] [stdout] | ^^^^^^ help: replace it with: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/puzzles/day15.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/puzzles/day15.rs:79:17 [INFO] [stdout] | [INFO] [stdout] 79 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/puzzles/day22.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | id: id, [INFO] [stdout] | ^^^^^^ help: replace it with: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day1.rs:23:21 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn solve1(data: &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] 23 - pub fn solve1(data: &String) { [INFO] [stdout] 23 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.iter().nth()` on a `Vec` [INFO] [stdout] --> src/puzzles/day1.rs:30:22 [INFO] [stdout] | [INFO] [stdout] 30 | let first = *nums.iter().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth [INFO] [stdout] = note: `#[warn(clippy::iter_nth)]` on by default [INFO] [stdout] help: `get` is equivalent but more concise [INFO] [stdout] | [INFO] [stdout] 30 - let first = *nums.iter().nth(0).unwrap(); [INFO] [stdout] 30 + let first = *nums.get(0).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day1.rs:38:21 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 38 - pub fn solve2(data: &String) { [INFO] [stdout] 38 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day1.rs:85:33 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn solve_aho_corasick(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 85 - pub fn solve_aho_corasick(data: &String) { [INFO] [stdout] 85 + pub fn solve_aho_corasick(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.iter().nth()` on a `Vec` [INFO] [stdout] --> src/puzzles/day1.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | let first = matches.iter().nth(0).unwrap().pattern().as_u32()/2 + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth [INFO] [stdout] help: `get` is equivalent but more concise [INFO] [stdout] | [INFO] [stdout] 93 - let first = matches.iter().nth(0).unwrap().pattern().as_u32()/2 + 1; [INFO] [stdout] 93 + let first = matches.get(0).unwrap().pattern().as_u32()/2 + 1; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day2.rs:23:21 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 23 - pub fn solve1(data: &String) { [INFO] [stdout] 23 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day2.rs:56:21 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 56 - pub fn solve2(data: &String) { [INFO] [stdout] 56 + pub fn solve2(data: &str) { [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/puzzles/day3.rs:31:44 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn test_neighbor(r: i32, c: i32, grid: &Vec>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 31 - pub fn test_neighbor(r: i32, c: i32, grid: &Vec>) -> bool { [INFO] [stdout] 31 + pub fn test_neighbor(r: i32, c: i32, grid: &[Vec]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/puzzles/day3.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | / if r < 0 || c < 0 || r as usize == grid.len() [INFO] [stdout] 33 | | || c as usize == grid.len() [INFO] [stdout] 34 | | || grid[r as usize][c as usize].is_numeric() [INFO] [stdout] 35 | | || grid[r as usize][c as usize] == '.' { [INFO] [stdout] ... | [INFO] [stdout] 38 | | true [INFO] [stdout] 39 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] help: you can reduce it to [INFO] [stdout] | [INFO] [stdout] 32 ~ !(r < 0 || c < 0 || r as usize == grid.len() [INFO] [stdout] 33 + || c as usize == grid.len() [INFO] [stdout] 34 + || grid[r as usize][c as usize].is_numeric() || grid[r as usize][c as usize] == '.') [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day3.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 42 - pub fn solve1(data: &String) { [INFO] [stdout] 42 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day3.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | return; [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] 87 - || c as usize == grid.len() || grid[r as usize][c as usize] != '*' { [INFO] [stdout] 88 - return; [INFO] [stdout] 87 + || c as usize == grid.len() || grid[r as usize][c as usize] != '*' { [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/puzzles/day3.rs:85:44 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn gear_neighbor(r: i32, c: i32, grid: &Vec>, curr_gears: &mut HashSet<(usize, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 85 - pub fn gear_neighbor(r: i32, c: i32, grid: &Vec>, curr_gears: &mut HashSet<(usize, usize)>) { [INFO] [stdout] 85 + pub fn gear_neighbor(r: i32, c: i32, grid: &[Vec], curr_gears: &mut HashSet<(usize, usize)>) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day3.rs:94:21 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 94 - pub fn solve2(data: &String) { [INFO] [stdout] 94 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day4.rs:25:21 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 25 - pub fn solve1(data: &String) { [INFO] [stdout] 25 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/puzzles/day4.rs:30:64 [INFO] [stdout] | [INFO] [stdout] 30 | ...().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter_map(|n| n.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/puzzles/day4.rs:30:75 [INFO] [stdout] | [INFO] [stdout] 30 | ... let winners: HashSet = nums[0].split_whitespace().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap())... [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: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/puzzles/day4.rs:31:64 [INFO] [stdout] | [INFO] [stdout] 31 | ...().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter_map(|n| n.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/puzzles/day4.rs:31:75 [INFO] [stdout] | [INFO] [stdout] 31 | ... let my_nums: HashSet = nums[1].split_whitespace().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap())... [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day4.rs:41:21 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 41 - pub fn solve2(data: &String) { [INFO] [stdout] 41 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/puzzles/day4.rs:46:64 [INFO] [stdout] | [INFO] [stdout] 46 | ...().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter_map(|n| n.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/puzzles/day4.rs:46:75 [INFO] [stdout] | [INFO] [stdout] 46 | ... let winners: HashSet = nums[0].split_whitespace().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap())... [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/puzzles/day4.rs:47:64 [INFO] [stdout] | [INFO] [stdout] 47 | ...().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter_map(|n| n.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/puzzles/day4.rs:47:75 [INFO] [stdout] | [INFO] [stdout] 47 | ... let my_nums: HashSet = nums[1].split_whitespace().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap())... [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day5.rs:45:21 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 45 - pub fn solve1(data: &String) { [INFO] [stdout] 45 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day5.rs:79:21 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 79 - pub fn solve2(data: &String) { [INFO] [stdout] 79 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day6.rs:14:21 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 14 - pub fn solve1(data: &String) { [INFO] [stdout] 14 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/puzzles/day6.rs:17:44 [INFO] [stdout] | [INFO] [stdout] 17 | let times = data[0].split_whitespace().filter(|t| t.parse::().is_ok()).map(|t| t.parse::().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter_map(|t| t.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/puzzles/day6.rs:17:55 [INFO] [stdout] | [INFO] [stdout] 17 | let times = data[0].split_whitespace().filter(|t| t.parse::().is_ok()).map(|t| t.parse::().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/puzzles/day6.rs:18:48 [INFO] [stdout] | [INFO] [stdout] 18 | let distances = data[1].split_whitespace().filter(|d| d.parse::().is_ok()).map(|d| d.parse::().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter_map(|d| d.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/puzzles/day6.rs:18:59 [INFO] [stdout] | [INFO] [stdout] 18 | let distances = data[1].split_whitespace().filter(|d| d.parse::().is_ok()).map(|d| d.parse::().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day6.rs:30:21 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 30 - pub fn solve2(data: &String) { [INFO] [stdout] 30 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day7.rs:91:21 [INFO] [stdout] | [INFO] [stdout] 91 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 91 - pub fn solve1(data: &String) { [INFO] [stdout] 91 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day7.rs:140:21 [INFO] [stdout] | [INFO] [stdout] 140 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 140 - pub fn solve2(data: &String) { [INFO] [stdout] 140 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day8.rs:20:21 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 20 - pub fn solve1(data: &String) { [INFO] [stdout] 20 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day1.rs:23:21 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn solve1(data: &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] 23 - pub fn solve1(data: &String) { [INFO] [stdout] 23 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/puzzles/day8.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | while let Some(d) = directions.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for d in directions` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] = note: `#[warn(clippy::while_let_on_iterator)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.iter().nth()` on a `Vec` [INFO] [stdout] --> src/puzzles/day1.rs:30:22 [INFO] [stdout] | [INFO] [stdout] 30 | let first = *nums.iter().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth [INFO] [stdout] = note: `#[warn(clippy::iter_nth)]` on by default [INFO] [stdout] help: `get` is equivalent but more concise [INFO] [stdout] | [INFO] [stdout] 30 - let first = *nums.iter().nth(0).unwrap(); [INFO] [stdout] 30 + let first = *nums.get(0).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day8.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 52 - pub fn solve2(data: &String) { [INFO] [stdout] 52 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day1.rs:38:21 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 38 - pub fn solve2(data: &String) { [INFO] [stdout] 38 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual backwards iteration [INFO] [stdout] --> src/puzzles/day8.rs:65:63 [INFO] [stdout] | [INFO] [stdout] 65 | let starts: Vec<&&str> = map.keys().filter(|&&k| k.chars().rev().next().unwrap() == 'A').collect(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: use: `.next_back()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_next_back [INFO] [stdout] = note: `#[warn(clippy::manual_next_back)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/puzzles/day8.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | while let Some(d) = directions.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for d in directions` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual backwards iteration [INFO] [stdout] --> src/puzzles/day8.rs:83:27 [INFO] [stdout] | [INFO] [stdout] 83 | if pos.chars().rev().next().unwrap() == 'Z' { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use: `.next_back()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_next_back [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day9.rs:15:21 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 15 - pub fn solve1(data: &String) { [INFO] [stdout] 15 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day1.rs:85:33 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn solve_aho_corasick(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 85 - pub fn solve_aho_corasick(data: &String) { [INFO] [stdout] 85 + pub fn solve_aho_corasick(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.iter().nth()` on a `Vec` [INFO] [stdout] --> src/puzzles/day1.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | let first = matches.iter().nth(0).unwrap().pattern().as_u32()/2 + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth [INFO] [stdout] help: `get` is equivalent but more concise [INFO] [stdout] | [INFO] [stdout] 93 - let first = matches.iter().nth(0).unwrap().pattern().as_u32()/2 + 1; [INFO] [stdout] 93 + let first = matches.get(0).unwrap().pattern().as_u32()/2 + 1; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day9.rs:37:21 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 37 - pub fn solve2(data: &String) { [INFO] [stdout] 37 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day2.rs:23:21 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 23 - pub fn solve1(data: &String) { [INFO] [stdout] 23 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day2.rs:56:21 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 56 - pub fn solve2(data: &String) { [INFO] [stdout] 56 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day10.rs:17:21 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 17 - pub fn solve1(data: &String) { [INFO] [stdout] 17 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/puzzles/day10.rs:25:16 [INFO] [stdout] | [INFO] [stdout] 25 | let pipes: HashMap = HashMap::from([ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day10.rs:69:21 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 69 - pub fn solve2(data: &String) { [INFO] [stdout] 69 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/puzzles/day10.rs:76:16 [INFO] [stdout] | [INFO] [stdout] 76 | let pipes: HashMap = HashMap::from([ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day3.rs:31:44 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn test_neighbor(r: i32, c: i32, grid: &Vec>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 31 - pub fn test_neighbor(r: i32, c: i32, grid: &Vec>) -> bool { [INFO] [stdout] 31 + pub fn test_neighbor(r: i32, c: i32, grid: &[Vec]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/puzzles/day3.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | / if r < 0 || c < 0 || r as usize == grid.len() [INFO] [stdout] 33 | | || c as usize == grid.len() [INFO] [stdout] 34 | | || grid[r as usize][c as usize].is_numeric() [INFO] [stdout] 35 | | || grid[r as usize][c as usize] == '.' { [INFO] [stdout] ... | [INFO] [stdout] 38 | | true [INFO] [stdout] 39 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] help: you can reduce it to [INFO] [stdout] | [INFO] [stdout] 32 ~ !(r < 0 || c < 0 || r as usize == grid.len() [INFO] [stdout] 33 + || c as usize == grid.len() [INFO] [stdout] 34 + || grid[r as usize][c as usize].is_numeric() || grid[r as usize][c as usize] == '.') [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day11.rs:45:21 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 45 - pub fn solve1(data: &String) { [INFO] [stdout] 45 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/puzzles/day11.rs:51:42 [INFO] [stdout] | [INFO] [stdout] 51 | let mut empty_rows: HashSet = (0..rows).into_iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..rows)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/puzzles/day11.rs:52:42 [INFO] [stdout] | [INFO] [stdout] 52 | let mut empty_cols: HashSet = (0..cols).into_iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..cols)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is used to index `galaxy` [INFO] [stdout] --> src/puzzles/day11.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | for r in 0..rows { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 55 - for r in 0..rows { [INFO] [stdout] 55 + for (r, ) in galaxy.iter().enumerate().take(rows) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is used to index `galaxy` [INFO] [stdout] --> src/puzzles/day11.rs:56:18 [INFO] [stdout] | [INFO] [stdout] 56 | for c in 0..cols { [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] 56 - for c in 0..cols { [INFO] [stdout] 56 + for (c, ) in galaxy.iter().enumerate().take(cols) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day11.rs:76:21 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 76 - pub fn solve2(data: &String) { [INFO] [stdout] 76 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/puzzles/day11.rs:82:42 [INFO] [stdout] | [INFO] [stdout] 82 | let mut empty_rows: HashSet = (0..rows).into_iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..rows)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/puzzles/day11.rs:83:42 [INFO] [stdout] | [INFO] [stdout] 83 | let mut empty_cols: HashSet = (0..cols).into_iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..cols)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is used to index `galaxy` [INFO] [stdout] --> src/puzzles/day11.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | for r in 0..rows { [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] 86 - for r in 0..rows { [INFO] [stdout] 86 + for (r, ) in galaxy.iter().enumerate().take(rows) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is used to index `galaxy` [INFO] [stdout] --> src/puzzles/day11.rs:87:18 [INFO] [stdout] | [INFO] [stdout] 87 | for c in 0..cols { [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] 87 - for c in 0..cols { [INFO] [stdout] 87 + for (c, ) in galaxy.iter().enumerate().take(cols) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day12.rs:113:21 [INFO] [stdout] | [INFO] [stdout] 113 | pub fn solve1(data: &String) -> u64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 113 - pub fn solve1(data: &String) -> u64 { [INFO] [stdout] 113 + pub fn solve1(data: &str) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day12.rs:132:21 [INFO] [stdout] | [INFO] [stdout] 132 | pub fn solve2(data: &String) -> u64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 132 - pub fn solve2(data: &String) -> u64 { [INFO] [stdout] 132 + pub fn solve2(data: &str) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `h_match_grid` [INFO] [stdout] --> src/puzzles/day13.rs:51:18 [INFO] [stdout] | [INFO] [stdout] 51 | for i in 0..h_size { [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] 51 - for i in 0..h_size { [INFO] [stdout] 51 + for (i, ) in h_match_grid.iter_mut().enumerate().take(h_size) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `h_match_grid` [INFO] [stdout] --> src/puzzles/day13.rs:52:22 [INFO] [stdout] | [INFO] [stdout] 52 | for j in i..h_size { [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] 52 - for j in i..h_size { [INFO] [stdout] 52 + for (j, ) in h_match_grid.iter_mut().enumerate().take(h_size).skip(i) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day3.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 42 - pub fn solve1(data: &String) { [INFO] [stdout] 42 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `v_match_grid` [INFO] [stdout] --> src/puzzles/day13.rs:93:18 [INFO] [stdout] | [INFO] [stdout] 93 | for i in 0..v_size { [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] 93 - for i in 0..v_size { [INFO] [stdout] 93 + for (i, ) in v_match_grid.iter_mut().enumerate().take(v_size) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `v_match_grid` [INFO] [stdout] --> src/puzzles/day13.rs:94:22 [INFO] [stdout] | [INFO] [stdout] 94 | for j in i..v_size { [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] 94 - for j in i..v_size { [INFO] [stdout] 94 + for (j, ) in v_match_grid.iter_mut().enumerate().take(v_size).skip(i) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `h_diff_grid` [INFO] [stdout] --> src/puzzles/day13.rs:139:18 [INFO] [stdout] | [INFO] [stdout] 139 | for i in 0..h_size { [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] 139 - for i in 0..h_size { [INFO] [stdout] 139 + for (i, ) in h_diff_grid.iter_mut().enumerate().take(h_size) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day3.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | return; [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] 87 - || c as usize == grid.len() || grid[r as usize][c as usize] != '*' { [INFO] [stdout] 88 - return; [INFO] [stdout] 87 + || c as usize == grid.len() || grid[r as usize][c as usize] != '*' { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `h_diff_grid` [INFO] [stdout] --> src/puzzles/day13.rs:140:22 [INFO] [stdout] | [INFO] [stdout] 140 | for j in (i+1)..h_size { [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] 140 - for j in (i+1)..h_size { [INFO] [stdout] 140 + for (j, ) in h_diff_grid.iter_mut().enumerate().take(h_size).skip((i+1)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/puzzles/day13.rs:142:71 [INFO] [stdout] | [INFO] [stdout] 142 | ... .map(|(l, r)| usize::from(!(l == r))) [INFO] [stdout] | ^^^^^^^^^ help: try: `(l != r)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day3.rs:85:44 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn gear_neighbor(r: i32, c: i32, grid: &Vec>, curr_gears: &mut HashSet<(usize, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 85 - pub fn gear_neighbor(r: i32, c: i32, grid: &Vec>, curr_gears: &mut HashSet<(usize, usize)>) { [INFO] [stdout] 85 + pub fn gear_neighbor(r: i32, c: i32, grid: &[Vec], curr_gears: &mut HashSet<(usize, usize)>) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `v_diff_grid` [INFO] [stdout] --> src/puzzles/day13.rs:181:18 [INFO] [stdout] | [INFO] [stdout] 181 | for i in 0..v_size { [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] 181 - for i in 0..v_size { [INFO] [stdout] 181 + for (i, ) in v_diff_grid.iter_mut().enumerate().take(v_size) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `v_diff_grid` [INFO] [stdout] --> src/puzzles/day13.rs:182:22 [INFO] [stdout] | [INFO] [stdout] 182 | for j in (i+1)..v_size { [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] 182 - for j in (i+1)..v_size { [INFO] [stdout] 182 + for (j, ) in v_diff_grid.iter_mut().enumerate().take(v_size).skip((i+1)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/puzzles/day13.rs:184:71 [INFO] [stdout] | [INFO] [stdout] 184 | ... .map(|(l, r)| usize::from(!(l == r))) [INFO] [stdout] | ^^^^^^^^^ help: try: `(l != r)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day3.rs:94:21 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 94 - pub fn solve2(data: &String) { [INFO] [stdout] 94 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day13.rs:224:21 [INFO] [stdout] | [INFO] [stdout] 224 | pub fn solve1(data: &String) -> u64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 224 - pub fn solve1(data: &String) -> u64 { [INFO] [stdout] 224 + pub fn solve1(data: &str) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day13.rs:242:21 [INFO] [stdout] | [INFO] [stdout] 242 | pub fn solve2(data: &String) -> u64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 242 - pub fn solve2(data: &String) -> u64 { [INFO] [stdout] 242 + pub fn solve2(data: &str) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day14.rs:24:21 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn solve1(data: &String) -> usize { [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] 24 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 24 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `l` is only used to index `platform` [INFO] [stdout] --> src/puzzles/day14.rs:35:14 [INFO] [stdout] | [INFO] [stdout] 35 | for l in 0..length { [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] 35 - for l in 0..length { [INFO] [stdout] 35 + for in platform.iter().take(length) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `h` is used to index `platform` [INFO] [stdout] --> src/puzzles/day14.rs:39:18 [INFO] [stdout] | [INFO] [stdout] 39 | for h in 0..height { [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] 39 - for h in 0..height { [INFO] [stdout] 39 + for (h, ) in platform.iter().enumerate().take(height) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day4.rs:25:21 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 25 - pub fn solve1(data: &String) { [INFO] [stdout] 25 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day14.rs:63:21 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn solve2(data: &String) -> usize { [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] 63 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 63 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/puzzles/day4.rs:30:64 [INFO] [stdout] | [INFO] [stdout] 30 | ...().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter_map(|n| n.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/puzzles/day4.rs:30:75 [INFO] [stdout] | [INFO] [stdout] 30 | ... let winners: HashSet = nums[0].split_whitespace().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap())... [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: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/puzzles/day4.rs:31:64 [INFO] [stdout] | [INFO] [stdout] 31 | ...().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter_map(|n| n.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/puzzles/day4.rs:31:75 [INFO] [stdout] | [INFO] [stdout] 31 | ... let my_nums: HashSet = nums[1].split_whitespace().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap())... [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map [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/puzzles/day14.rs:105:20 [INFO] [stdout] | [INFO] [stdout] 105 | fn cycle(platform: &mut 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] 105 - fn cycle(platform: &mut Vec>) { [INFO] [stdout] 105 + fn cycle(platform: &mut [Vec]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `l` is only used to index `platform` [INFO] [stdout] --> src/puzzles/day14.rs:109:14 [INFO] [stdout] | [INFO] [stdout] 109 | for l in 0..length { [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] 109 - for l in 0..length { [INFO] [stdout] 109 + for in platform.iter_mut().take(length) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day4.rs:41:21 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 41 - pub fn solve2(data: &String) { [INFO] [stdout] 41 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/puzzles/day4.rs:46:64 [INFO] [stdout] | [INFO] [stdout] 46 | ...().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter_map(|n| n.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/puzzles/day4.rs:46:75 [INFO] [stdout] | [INFO] [stdout] 46 | ... let winners: HashSet = nums[0].split_whitespace().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap())... [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `h` is only used to index `platform` [INFO] [stdout] --> src/puzzles/day14.rs:132:14 [INFO] [stdout] | [INFO] [stdout] 132 | for h in 0..height { [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] 132 - for h in 0..height { [INFO] [stdout] 132 + for in platform.iter_mut().take(height) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/puzzles/day4.rs:47:64 [INFO] [stdout] | [INFO] [stdout] 47 | ...().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter_map(|n| n.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/puzzles/day4.rs:47:75 [INFO] [stdout] | [INFO] [stdout] 47 | ... let my_nums: HashSet = nums[1].split_whitespace().filter(|c| c.parse::().is_ok()).map(|n| n.parse::().unwrap())... [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `l` is only used to index `platform` [INFO] [stdout] --> src/puzzles/day14.rs:155:14 [INFO] [stdout] | [INFO] [stdout] 155 | for l in 0..length { [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] 155 - for l in 0..length { [INFO] [stdout] 155 + for in platform.iter_mut().take(length) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day5.rs:45:21 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 45 - pub fn solve1(data: &String) { [INFO] [stdout] 45 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `h` is only used to index `platform` [INFO] [stdout] --> src/puzzles/day14.rs:178:14 [INFO] [stdout] | [INFO] [stdout] 178 | for h in 0..height { [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] 178 - for h in 0..height { [INFO] [stdout] 178 + for in platform.iter_mut().take(height) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day15.rs:15:21 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn solve1(data: &String) -> 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] 15 - pub fn solve1(data: &String) -> u32 { [INFO] [stdout] 15 + pub fn solve1(data: &str) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day5.rs:79:21 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 79 - pub fn solve2(data: &String) { [INFO] [stdout] 79 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day15.rs:28:21 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn solve2(data: &String) -> 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] 28 - pub fn solve2(data: &String) -> u32 { [INFO] [stdout] 28 + pub fn solve2(data: &str) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:51:25 [INFO] [stdout] | [INFO] [stdout] 51 | return; [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] 50 - if c == cols { [INFO] [stdout] 51 - return; [INFO] [stdout] 50 + if c == cols { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:58:25 [INFO] [stdout] | [INFO] [stdout] 58 | return; [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 - if c == 0 { [INFO] [stdout] 58 - return; [INFO] [stdout] 57 + if c == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:65:25 [INFO] [stdout] | [INFO] [stdout] 65 | return; [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] 64 - if r == rows { [INFO] [stdout] 65 - return; [INFO] [stdout] 64 + if r == rows { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:72:25 [INFO] [stdout] | [INFO] [stdout] 72 | return; [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 r == 0 { [INFO] [stdout] 72 - return; [INFO] [stdout] 71 + if r == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:83:25 [INFO] [stdout] | [INFO] [stdout] 83 | return; [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] 82 - if r == 0 { [INFO] [stdout] 83 - return; [INFO] [stdout] 82 + if r == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:90:25 [INFO] [stdout] | [INFO] [stdout] 90 | return; [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] 89 - if r == rows { [INFO] [stdout] 90 - return; [INFO] [stdout] 89 + if r == rows { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:97:25 [INFO] [stdout] | [INFO] [stdout] 97 | return; [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] 96 - if c == 0 { [INFO] [stdout] 97 - return; [INFO] [stdout] 96 + if c == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:104:25 [INFO] [stdout] | [INFO] [stdout] 104 | return; [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] 103 - if c == cols { [INFO] [stdout] 104 - return; [INFO] [stdout] 103 + if c == cols { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:115:25 [INFO] [stdout] | [INFO] [stdout] 115 | return; [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] 114 - if r == rows { [INFO] [stdout] 115 - return; [INFO] [stdout] 114 + if r == rows { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:122:25 [INFO] [stdout] | [INFO] [stdout] 122 | return; [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] 121 - if r == 0 { [INFO] [stdout] 122 - return; [INFO] [stdout] 121 + if r == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:129:25 [INFO] [stdout] | [INFO] [stdout] 129 | return; [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] 128 - if c == cols { [INFO] [stdout] 129 - return; [INFO] [stdout] 128 + if c == cols { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:136:25 [INFO] [stdout] | [INFO] [stdout] 136 | return; [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] 135 - if c == 0 { [INFO] [stdout] 136 - return; [INFO] [stdout] 135 + if c == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:157:25 [INFO] [stdout] | [INFO] [stdout] 157 | return; [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] 156 - if r == rows { [INFO] [stdout] 157 - return; [INFO] [stdout] 156 + if r == rows { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:164:25 [INFO] [stdout] | [INFO] [stdout] 164 | return; [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] 163 - if r == 0 { [INFO] [stdout] 164 - return; [INFO] [stdout] 163 + if r == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:175:25 [INFO] [stdout] | [INFO] [stdout] 175 | return; [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] 174 - if c == cols { [INFO] [stdout] 175 - return; [INFO] [stdout] 174 + if c == cols { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:182:25 [INFO] [stdout] | [INFO] [stdout] 182 | return; [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] 181 - if c == 0 { [INFO] [stdout] 182 - return; [INFO] [stdout] 181 + if c == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day6.rs:14:21 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 14 - pub fn solve1(data: &String) { [INFO] [stdout] 14 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/puzzles/day6.rs:17:44 [INFO] [stdout] | [INFO] [stdout] 17 | let times = data[0].split_whitespace().filter(|t| t.parse::().is_ok()).map(|t| t.parse::().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter_map(|t| t.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/puzzles/day6.rs:17:55 [INFO] [stdout] | [INFO] [stdout] 17 | let times = data[0].split_whitespace().filter(|t| t.parse::().is_ok()).map(|t| t.parse::().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:199:14 [INFO] [stdout] | [INFO] [stdout] 199 | _ => return, [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: replace `return` with a unit value [INFO] [stdout] | [INFO] [stdout] 199 - _ => return, [INFO] [stdout] 199 + _ => (), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/puzzles/day6.rs:18:48 [INFO] [stdout] | [INFO] [stdout] 18 | let distances = data[1].split_whitespace().filter(|d| d.parse::().is_ok()).map(|d| d.parse::().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter_map(|d| d.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/puzzles/day6.rs:18:59 [INFO] [stdout] | [INFO] [stdout] 18 | let distances = data[1].split_whitespace().filter(|d| d.parse::().is_ok()).map(|d| d.parse::().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day6.rs:30:21 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 30 - pub fn solve2(data: &String) { [INFO] [stdout] 30 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day16.rs:203:21 [INFO] [stdout] | [INFO] [stdout] 203 | pub fn solve1(data: &String) -> usize { [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] 203 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 203 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day16.rs:218:21 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn solve2(data: &String) -> usize { [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] 218 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 218 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day7.rs:91:21 [INFO] [stdout] | [INFO] [stdout] 91 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 91 - pub fn solve1(data: &String) { [INFO] [stdout] 91 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day7.rs:140:21 [INFO] [stdout] | [INFO] [stdout] 140 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 140 - pub fn solve2(data: &String) { [INFO] [stdout] 140 + pub fn solve2(data: &str) { [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/puzzles/day17.rs:77:56 [INFO] [stdout] | [INFO] [stdout] 77 | fn dijkstra(graph: &mut Vec>) -> usize { [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] 77 - fn dijkstra(graph: &mut Vec>) -> usize { [INFO] [stdout] 77 + fn dijkstra(graph: &mut [Vec]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day8.rs:20:21 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 20 - pub fn solve1(data: &String) { [INFO] [stdout] 20 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/puzzles/day8.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | while let Some(d) = directions.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for d in directions` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] = note: `#[warn(clippy::while_let_on_iterator)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day8.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 52 - pub fn solve2(data: &String) { [INFO] [stdout] 52 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day17.rs:189:21 [INFO] [stdout] | [INFO] [stdout] 189 | pub fn solve1(data: &String) -> usize { [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] 189 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 189 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day17.rs:201:21 [INFO] [stdout] | [INFO] [stdout] 201 | pub fn solve2(data: &String) -> usize { [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] 201 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 201 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual backwards iteration [INFO] [stdout] --> src/puzzles/day8.rs:65:63 [INFO] [stdout] | [INFO] [stdout] 65 | let starts: Vec<&&str> = map.keys().filter(|&&k| k.chars().rev().next().unwrap() == 'A').collect(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: use: `.next_back()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_next_back [INFO] [stdout] = note: `#[warn(clippy::manual_next_back)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/puzzles/day8.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | while let Some(d) = directions.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for d in directions` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual backwards iteration [INFO] [stdout] --> src/puzzles/day8.rs:83:27 [INFO] [stdout] | [INFO] [stdout] 83 | if pos.chars().rev().next().unwrap() == 'Z' { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use: `.next_back()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_next_back [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day9.rs:15:21 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 15 - pub fn solve1(data: &String) { [INFO] [stdout] 15 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day9.rs:37:21 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 37 - pub fn solve2(data: &String) { [INFO] [stdout] 37 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day18.rs:26:21 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn solve1(data: &String) -> 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] 26 - pub fn solve1(data: &String) -> i32 { [INFO] [stdout] 26 + pub fn solve1(data: &str) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day18.rs:73:21 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn solve2(data: &String) -> i128 { [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] 73 - pub fn solve2(data: &String) -> i128 { [INFO] [stdout] 73 + pub fn solve2(data: &str) -> i128 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/puzzles/day19.rs:40:32 [INFO] [stdout] | [INFO] [stdout] 40 | for (_k, v) in gear { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 40 - for (_k, v) in gear { [INFO] [stdout] 40 + for v in gear.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day10.rs:17:21 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 17 - pub fn solve1(data: &String) { [INFO] [stdout] 17 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/puzzles/day19.rs:55:48 [INFO] [stdout] | [INFO] [stdout] 55 | ... for (_k, v) in gear { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 55 - for (_k, v) in gear { [INFO] [stdout] 55 + for v in gear.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/puzzles/day10.rs:25:16 [INFO] [stdout] | [INFO] [stdout] 25 | let pipes: HashMap = HashMap::from([ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/puzzles/day19.rs:74:48 [INFO] [stdout] | [INFO] [stdout] 74 | ... for (_k, v) in gear { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 74 - for (_k, v) in gear { [INFO] [stdout] 74 + for v in gear.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day19.rs:94:21 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn solve1(data: &String) -> 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] 94 - pub fn solve1(data: &String) -> u32 { [INFO] [stdout] 94 + pub fn solve1(data: &str) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day10.rs:69:21 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 69 - pub fn solve2(data: &String) { [INFO] [stdout] 69 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/puzzles/day10.rs:76:16 [INFO] [stdout] | [INFO] [stdout] 76 | let pipes: HashMap = HashMap::from([ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day11.rs:45:21 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn solve1(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 45 - pub fn solve1(data: &String) { [INFO] [stdout] 45 + pub fn solve1(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day19.rs:231:21 [INFO] [stdout] | [INFO] [stdout] 231 | pub fn solve2(data: &String) -> u128 { [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] 231 - pub fn solve2(data: &String) -> u128 { [INFO] [stdout] 231 + pub fn solve2(data: &str) -> u128 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/puzzles/day20.rs:147:40 [INFO] [stdout] | [INFO] [stdout] 147 | ... prev_id == String::from("fz") || [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `"fz"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/puzzles/day20.rs:148:40 [INFO] [stdout] | [INFO] [stdout] 148 | ... prev_id == String::from("xf") || [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `"xf"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/puzzles/day20.rs:149:40 [INFO] [stdout] | [INFO] [stdout] 149 | ... prev_id == String::from("mp") || [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `"mp"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/puzzles/day20.rs:150:40 [INFO] [stdout] | [INFO] [stdout] 150 | ... prev_id == String::from("hn") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `"hn"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day20.rs:166:21 [INFO] [stdout] | [INFO] [stdout] 166 | pub fn solve1(data: &String) -> usize { [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] 166 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 166 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `if let` [INFO] [stdout] --> src/puzzles/day20.rs:212:13 [INFO] [stdout] | [INFO] [stdout] 212 | / match tower { [INFO] [stdout] 213 | | Conjunction { connections: _, last }=> { [INFO] [stdout] 214 | | last.extend(prev_ids); [INFO] [stdout] ... | [INFO] [stdout] 217 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/puzzles/day20.rs:211:21 [INFO] [stdout] | [INFO] [stdout] 211 | if let Some(tower) = tower_field.towers.get_mut(&id) { [INFO] [stdout] | ^^^^^ replace this binding [INFO] [stdout] 212 | match tower { [INFO] [stdout] 213 | Conjunction { connections: _, last }=> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/puzzles/day20.rs:212:13 [INFO] [stdout] | [INFO] [stdout] 212 | / match tower { [INFO] [stdout] 213 | | Conjunction { connections: _, last }=> { [INFO] [stdout] 214 | | last.extend(prev_ids); [INFO] [stdout] ... | [INFO] [stdout] 217 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 212 ~ if let Conjunction { connections: _, last } = tower { [INFO] [stdout] 213 + last.extend(prev_ids); [INFO] [stdout] 214 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/puzzles/day11.rs:51:42 [INFO] [stdout] | [INFO] [stdout] 51 | let mut empty_rows: HashSet = (0..rows).into_iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..rows)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/puzzles/day20.rs:200:14 [INFO] [stdout] | [INFO] [stdout] 200 | for (id, ref tower) in &tower_field.towers { [INFO] [stdout] | ^^^^^^^^^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 200 - for (id, ref tower) in &tower_field.towers { [INFO] [stdout] 200 + for (id, tower) in &tower_field.towers { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/puzzles/day11.rs:52:42 [INFO] [stdout] | [INFO] [stdout] 52 | let mut empty_cols: HashSet = (0..cols).into_iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..cols)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day20.rs:230:21 [INFO] [stdout] | [INFO] [stdout] 230 | pub fn solve2(data: &String) -> usize { [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] 230 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 230 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is used to index `galaxy` [INFO] [stdout] --> src/puzzles/day11.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | for r in 0..rows { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 55 - for r in 0..rows { [INFO] [stdout] 55 + for (r, ) in galaxy.iter().enumerate().take(rows) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is used to index `galaxy` [INFO] [stdout] --> src/puzzles/day11.rs:56:18 [INFO] [stdout] | [INFO] [stdout] 56 | for c in 0..cols { [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] 56 - for c in 0..cols { [INFO] [stdout] 56 + for (c, ) in galaxy.iter().enumerate().take(cols) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day11.rs:76:21 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn solve2(data: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 76 - pub fn solve2(data: &String) { [INFO] [stdout] 76 + pub fn solve2(data: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/puzzles/day11.rs:82:42 [INFO] [stdout] | [INFO] [stdout] 82 | let mut empty_rows: HashSet = (0..rows).into_iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..rows)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `if let` [INFO] [stdout] --> src/puzzles/day20.rs:274:13 [INFO] [stdout] | [INFO] [stdout] 274 | / match tower { [INFO] [stdout] 275 | | Conjunction { connections: _, last } => { [INFO] [stdout] 276 | | last.extend(prev_ids); [INFO] [stdout] ... | [INFO] [stdout] 279 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/puzzles/day20.rs:273:21 [INFO] [stdout] | [INFO] [stdout] 273 | if let Some(tower) = tower_field.towers.get_mut(&id) { [INFO] [stdout] | ^^^^^ replace this binding [INFO] [stdout] 274 | match tower { [INFO] [stdout] 275 | Conjunction { connections: _, last } => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/puzzles/day11.rs:83:42 [INFO] [stdout] | [INFO] [stdout] 83 | let mut empty_cols: HashSet = (0..cols).into_iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..cols)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/puzzles/day20.rs:274:13 [INFO] [stdout] | [INFO] [stdout] 274 | / match tower { [INFO] [stdout] 275 | | Conjunction { connections: _, last } => { [INFO] [stdout] 276 | | last.extend(prev_ids); [INFO] [stdout] ... | [INFO] [stdout] 279 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 274 ~ if let Conjunction { connections: _, last } = tower { [INFO] [stdout] 275 + last.extend(prev_ids); [INFO] [stdout] 276 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is used to index `galaxy` [INFO] [stdout] --> src/puzzles/day11.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | for r in 0..rows { [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] 86 - for r in 0..rows { [INFO] [stdout] 86 + for (r, ) in galaxy.iter().enumerate().take(rows) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/puzzles/day20.rs:264:14 [INFO] [stdout] | [INFO] [stdout] 264 | for (id, ref tower) in &tower_field.towers { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 264 - for (id, ref tower) in &tower_field.towers { [INFO] [stdout] 264 + for (id, tower) in &tower_field.towers { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is used to index `galaxy` [INFO] [stdout] --> src/puzzles/day11.rs:87:18 [INFO] [stdout] | [INFO] [stdout] 87 | for c in 0..cols { [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] 87 - for c in 0..cols { [INFO] [stdout] 87 + for (c, ) in galaxy.iter().enumerate().take(cols) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day21.rs:25:21 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn solve1(data: &String) -> usize { [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 solve1(data: &String) -> usize { [INFO] [stdout] 25 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `garden` [INFO] [stdout] --> src/puzzles/day21.rs:55:18 [INFO] [stdout] | [INFO] [stdout] 55 | for r in 0..row { [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] 55 - for r in 0..row { [INFO] [stdout] 55 + for in garden.iter_mut().take(row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is only used to index `garden` [INFO] [stdout] --> src/puzzles/day21.rs:56:22 [INFO] [stdout] | [INFO] [stdout] 56 | for c in 0..col { [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 c in 0..col { [INFO] [stdout] 56 + for in garden.iter_mut().take(col) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day12.rs:113:21 [INFO] [stdout] | [INFO] [stdout] 113 | pub fn solve1(data: &String) -> u64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 113 - pub fn solve1(data: &String) -> u64 { [INFO] [stdout] 113 + pub fn solve1(data: &str) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day21.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn solve2(data: &String) -> usize { [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] 71 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 71 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day12.rs:132:21 [INFO] [stdout] | [INFO] [stdout] 132 | pub fn solve2(data: &String) -> u64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 132 - pub fn solve2(data: &String) -> u64 { [INFO] [stdout] 132 + pub fn solve2(data: &str) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same postfix: `Axis` [INFO] [stdout] --> src/puzzles/day22.rs:61:1 [INFO] [stdout] | [INFO] [stdout] 61 | / enum Orientation { [INFO] [stdout] 62 | | XAxis, [INFO] [stdout] 63 | | YAxis, [INFO] [stdout] 64 | | ZAxis, [INFO] [stdout] 65 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `h_match_grid` [INFO] [stdout] --> src/puzzles/day13.rs:51:18 [INFO] [stdout] | [INFO] [stdout] 51 | for i in 0..h_size { [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] 51 - for i in 0..h_size { [INFO] [stdout] 51 + for (i, ) in h_match_grid.iter_mut().enumerate().take(h_size) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `h_match_grid` [INFO] [stdout] --> src/puzzles/day13.rs:52:22 [INFO] [stdout] | [INFO] [stdout] 52 | for j in i..h_size { [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] 52 - for j in i..h_size { [INFO] [stdout] 52 + for (j, ) in h_match_grid.iter_mut().enumerate().take(h_size).skip(i) { [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/puzzles/day22.rs:92:30 [INFO] [stdout] | [INFO] [stdout] 92 | fn fall(&mut self, grid: &mut Vec, xsize: i32, ysize: 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] 92 - fn fall(&mut self, grid: &mut Vec, xsize: i32, ysize: i32) { [INFO] [stdout] 92 + fn fall(&mut self, grid: &mut [i32], xsize: i32, ysize: i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `v_match_grid` [INFO] [stdout] --> src/puzzles/day13.rs:93:18 [INFO] [stdout] | [INFO] [stdout] 93 | for i in 0..v_size { [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] 93 - for i in 0..v_size { [INFO] [stdout] 93 + for (i, ) in v_match_grid.iter_mut().enumerate().take(v_size) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `v_match_grid` [INFO] [stdout] --> src/puzzles/day13.rs:94:22 [INFO] [stdout] | [INFO] [stdout] 94 | for j in i..v_size { [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] 94 - for j in i..v_size { [INFO] [stdout] 94 + for (j, ) in v_match_grid.iter_mut().enumerate().take(v_size).skip(i) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `h_diff_grid` [INFO] [stdout] --> src/puzzles/day13.rs:139:18 [INFO] [stdout] | [INFO] [stdout] 139 | for i in 0..h_size { [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] 139 - for i in 0..h_size { [INFO] [stdout] 139 + for (i, ) in h_diff_grid.iter_mut().enumerate().take(h_size) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `h_diff_grid` [INFO] [stdout] --> src/puzzles/day13.rs:140:22 [INFO] [stdout] | [INFO] [stdout] 140 | for j in (i+1)..h_size { [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] 140 - for j in (i+1)..h_size { [INFO] [stdout] 140 + for (j, ) in h_diff_grid.iter_mut().enumerate().take(h_size).skip((i+1)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/puzzles/day13.rs:142:71 [INFO] [stdout] | [INFO] [stdout] 142 | ... .map(|(l, r)| usize::from(!(l == r))) [INFO] [stdout] | ^^^^^^^^^ help: try: `(l != r)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day22.rs:157:30 [INFO] [stdout] | [INFO] [stdout] 157 | fn unstable(&self, grid: &mut Vec, xsize: i32, ysize: i32) -> Option<&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] 157 - fn unstable(&self, grid: &mut Vec, xsize: i32, ysize: i32) -> Option<&i32> { [INFO] [stdout] 157 + fn unstable(&self, grid: &mut [i32], xsize: i32, ysize: i32) -> Option<&i32> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `v_diff_grid` [INFO] [stdout] --> src/puzzles/day13.rs:181:18 [INFO] [stdout] | [INFO] [stdout] 181 | for i in 0..v_size { [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] 181 - for i in 0..v_size { [INFO] [stdout] 181 + for (i, ) in v_diff_grid.iter_mut().enumerate().take(v_size) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `v_diff_grid` [INFO] [stdout] --> src/puzzles/day13.rs:182:22 [INFO] [stdout] | [INFO] [stdout] 182 | for j in (i+1)..v_size { [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] 182 - for j in (i+1)..v_size { [INFO] [stdout] 182 + for (j, ) in v_diff_grid.iter_mut().enumerate().take(v_size).skip((i+1)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/puzzles/day13.rs:184:71 [INFO] [stdout] | [INFO] [stdout] 184 | ... .map(|(l, r)| usize::from(!(l == r))) [INFO] [stdout] | ^^^^^^^^^ help: try: `(l != r)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day22.rs:187:27 [INFO] [stdout] | [INFO] [stdout] 187 | fn above(&self, grid: &Vec, xsize: i32, ysize: i32) -> HashSet { [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] 187 - fn above(&self, grid: &Vec, xsize: i32, ysize: i32) -> HashSet { [INFO] [stdout] 187 + fn above(&self, grid: &[i32], xsize: i32, ysize: i32) -> HashSet { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day13.rs:224:21 [INFO] [stdout] | [INFO] [stdout] 224 | pub fn solve1(data: &String) -> u64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 224 - pub fn solve1(data: &String) -> u64 { [INFO] [stdout] 224 + pub fn solve1(data: &str) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day13.rs:242:21 [INFO] [stdout] | [INFO] [stdout] 242 | pub fn solve2(data: &String) -> u64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 242 - pub fn solve2(data: &String) -> u64 { [INFO] [stdout] 242 + pub fn solve2(data: &str) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day22.rs:223:21 [INFO] [stdout] | [INFO] [stdout] 223 | pub fn solve1(data: &String) -> usize { [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] 223 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 223 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/puzzles/day22.rs:234:17 [INFO] [stdout] | [INFO] [stdout] 234 | let xsize = bricks.iter().map(|(_id, brick)| max(brick.begin.0, brick.end.0)).max().unwrap() + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bricks.values().map(|brick| max(brick.begin.0, brick.end.0))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/puzzles/day22.rs:235:17 [INFO] [stdout] | [INFO] [stdout] 235 | let ysize = bricks.iter().map(|(_id, brick)| max(brick.begin.1, brick.end.1)).max().unwrap() + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bricks.values().map(|brick| max(brick.begin.1, brick.end.1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/puzzles/day22.rs:236:17 [INFO] [stdout] | [INFO] [stdout] 236 | let zsize = bricks.iter().map(|(_id, brick)| max(brick.begin.2, brick.end.2)).max().unwrap() + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bricks.values().map(|brick| max(brick.begin.2, brick.end.2))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: slow zero-filling initialization [INFO] [stdout] --> src/puzzles/day22.rs:238:20 [INFO] [stdout] | [INFO] [stdout] 238 | let mut grid = Vec::::new(); [INFO] [stdout] | ____________________^ [INFO] [stdout] 239 | | grid.resize((xsize * ysize * zsize) as usize, 0); [INFO] [stdout] | |____________________________________________________^ help: consider replacing this with: `vec![0; (xsize * ysize * zsize) as usize]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization [INFO] [stdout] = note: `#[warn(clippy::slow_vector_initialization)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day14.rs:24:21 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn solve1(data: &String) -> usize { [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] 24 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 24 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `l` is only used to index `platform` [INFO] [stdout] --> src/puzzles/day14.rs:35:14 [INFO] [stdout] | [INFO] [stdout] 35 | for l in 0..length { [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] 35 - for l in 0..length { [INFO] [stdout] 35 + for in platform.iter().take(length) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `h` is used to index `platform` [INFO] [stdout] --> src/puzzles/day14.rs:39:18 [INFO] [stdout] | [INFO] [stdout] 39 | for h in 0..height { [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] 39 - for h in 0..height { [INFO] [stdout] 39 + for (h, ) in platform.iter().enumerate().take(height) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day14.rs:63:21 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn solve2(data: &String) -> usize { [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] 63 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 63 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day22.rs:309:21 [INFO] [stdout] | [INFO] [stdout] 309 | pub fn solve2(data: &String) -> usize { [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] 309 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 309 + pub fn solve2(data: &str) -> usize { [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/puzzles/day14.rs:105:20 [INFO] [stdout] | [INFO] [stdout] 105 | fn cycle(platform: &mut 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] 105 - fn cycle(platform: &mut Vec>) { [INFO] [stdout] 105 + fn cycle(platform: &mut [Vec]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/puzzles/day22.rs:320:17 [INFO] [stdout] | [INFO] [stdout] 320 | let xsize = bricks.iter().map(|(_id, brick)| max(brick.begin.0, brick.end.0)).max().unwrap() + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bricks.values().map(|brick| max(brick.begin.0, brick.end.0))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `l` is only used to index `platform` [INFO] [stdout] --> src/puzzles/day14.rs:109:14 [INFO] [stdout] | [INFO] [stdout] 109 | for l in 0..length { [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] 109 - for l in 0..length { [INFO] [stdout] 109 + for in platform.iter_mut().take(length) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/puzzles/day22.rs:321:17 [INFO] [stdout] | [INFO] [stdout] 321 | let ysize = bricks.iter().map(|(_id, brick)| max(brick.begin.1, brick.end.1)).max().unwrap() + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bricks.values().map(|brick| max(brick.begin.1, brick.end.1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/puzzles/day22.rs:322:17 [INFO] [stdout] | [INFO] [stdout] 322 | let zsize = bricks.iter().map(|(_id, brick)| max(brick.begin.2, brick.end.2)).max().unwrap() + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bricks.values().map(|brick| max(brick.begin.2, brick.end.2))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: slow zero-filling initialization [INFO] [stdout] --> src/puzzles/day22.rs:324:20 [INFO] [stdout] | [INFO] [stdout] 324 | let mut grid = Vec::::new(); [INFO] [stdout] | ____________________^ [INFO] [stdout] 325 | | grid.resize((xsize * ysize * zsize) as usize, 0); [INFO] [stdout] | |____________________________________________________^ help: consider replacing this with: `vec![0; (xsize * ysize * zsize) as usize]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `h` is only used to index `platform` [INFO] [stdout] --> src/puzzles/day14.rs:132:14 [INFO] [stdout] | [INFO] [stdout] 132 | for h in 0..height { [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] 132 - for h in 0..height { [INFO] [stdout] 132 + for in platform.iter_mut().take(height) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `l` is only used to index `platform` [INFO] [stdout] --> src/puzzles/day14.rs:155:14 [INFO] [stdout] | [INFO] [stdout] 155 | for l in 0..length { [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] 155 - for l in 0..length { [INFO] [stdout] 155 + for in platform.iter_mut().take(length) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `h` is only used to index `platform` [INFO] [stdout] --> src/puzzles/day14.rs:178:14 [INFO] [stdout] | [INFO] [stdout] 178 | for h in 0..height { [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] 178 - for h in 0..height { [INFO] [stdout] 178 + for in platform.iter_mut().take(height) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day15.rs:15:21 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn solve1(data: &String) -> 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] 15 - pub fn solve1(data: &String) -> u32 { [INFO] [stdout] 15 + pub fn solve1(data: &str) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day15.rs:28:21 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn solve2(data: &String) -> 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] 28 - pub fn solve2(data: &String) -> u32 { [INFO] [stdout] 28 + pub fn solve2(data: &str) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day23.rs:47:21 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn solve1(data: &String) -> usize { [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] 47 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 47 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:51:25 [INFO] [stdout] | [INFO] [stdout] 51 | return; [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] 50 - if c == cols { [INFO] [stdout] 51 - return; [INFO] [stdout] 50 + if c == cols { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:58:25 [INFO] [stdout] | [INFO] [stdout] 58 | return; [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 - if c == 0 { [INFO] [stdout] 58 - return; [INFO] [stdout] 57 + if c == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:65:25 [INFO] [stdout] | [INFO] [stdout] 65 | return; [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] 64 - if r == rows { [INFO] [stdout] 65 - return; [INFO] [stdout] 64 + if r == rows { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:72:25 [INFO] [stdout] | [INFO] [stdout] 72 | return; [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 r == 0 { [INFO] [stdout] 72 - return; [INFO] [stdout] 71 + if r == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:83:25 [INFO] [stdout] | [INFO] [stdout] 83 | return; [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] 82 - if r == 0 { [INFO] [stdout] 83 - return; [INFO] [stdout] 82 + if r == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:90:25 [INFO] [stdout] | [INFO] [stdout] 90 | return; [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] 89 - if r == rows { [INFO] [stdout] 90 - return; [INFO] [stdout] 89 + if r == rows { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:97:25 [INFO] [stdout] | [INFO] [stdout] 97 | return; [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] 96 - if c == 0 { [INFO] [stdout] 97 - return; [INFO] [stdout] 96 + if c == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:104:25 [INFO] [stdout] | [INFO] [stdout] 104 | return; [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] 103 - if c == cols { [INFO] [stdout] 104 - return; [INFO] [stdout] 103 + if c == cols { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:115:25 [INFO] [stdout] | [INFO] [stdout] 115 | return; [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] 114 - if r == rows { [INFO] [stdout] 115 - return; [INFO] [stdout] 114 + if r == rows { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:122:25 [INFO] [stdout] | [INFO] [stdout] 122 | return; [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] 121 - if r == 0 { [INFO] [stdout] 122 - return; [INFO] [stdout] 121 + if r == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:129:25 [INFO] [stdout] | [INFO] [stdout] 129 | return; [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] 128 - if c == cols { [INFO] [stdout] 129 - return; [INFO] [stdout] 128 + if c == cols { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:136:25 [INFO] [stdout] | [INFO] [stdout] 136 | return; [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] 135 - if c == 0 { [INFO] [stdout] 136 - return; [INFO] [stdout] 135 + if c == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:157:25 [INFO] [stdout] | [INFO] [stdout] 157 | return; [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] 156 - if r == rows { [INFO] [stdout] 157 - return; [INFO] [stdout] 156 + if r == rows { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:164:25 [INFO] [stdout] | [INFO] [stdout] 164 | return; [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] 163 - if r == 0 { [INFO] [stdout] 164 - return; [INFO] [stdout] 163 + if r == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:175:25 [INFO] [stdout] | [INFO] [stdout] 175 | return; [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] 174 - if c == cols { [INFO] [stdout] 175 - return; [INFO] [stdout] 174 + if c == cols { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:182:25 [INFO] [stdout] | [INFO] [stdout] 182 | return; [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] 181 - if c == 0 { [INFO] [stdout] 182 - return; [INFO] [stdout] 181 + if c == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/puzzles/day16.rs:199:14 [INFO] [stdout] | [INFO] [stdout] 199 | _ => return, [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: replace `return` with a unit value [INFO] [stdout] | [INFO] [stdout] 199 - _ => return, [INFO] [stdout] 199 + _ => (), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day23.rs:97:21 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn solve2(data: &String) -> usize { [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] 97 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 97 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day16.rs:203:21 [INFO] [stdout] | [INFO] [stdout] 203 | pub fn solve1(data: &String) -> usize { [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] 203 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 203 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day16.rs:218:21 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn solve2(data: &String) -> usize { [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] 218 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 218 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/puzzles/day23.rs:182:20 [INFO] [stdout] | [INFO] [stdout] 182 | graph: &HashMap<(i32, i32), Vec<((i32,i32), i32)>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day24.rs:17:57 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn solve1(data: &String) -> usize { [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] 17 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 17 + pub fn solve1(data: &str) -> usize { [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/puzzles/day17.rs:77:56 [INFO] [stdout] | [INFO] [stdout] 77 | fn dijkstra(graph: &mut Vec>) -> usize { [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] 77 - fn dijkstra(graph: &mut Vec>) -> usize { [INFO] [stdout] 77 + fn dijkstra(graph: &mut [Vec]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day24.rs:128:21 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn solve2(data: &String) -> usize { [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] 128 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 128 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day25.rs:28:21 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn solve1(data: &String) -> usize { [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] 28 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 28 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/puzzles/day25.rs:45:24 [INFO] [stdout] | [INFO] [stdout] 45 | idx_map.insert(&key, idx); [INFO] [stdout] | ^^^^ help: change this to: `key` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day17.rs:189:21 [INFO] [stdout] | [INFO] [stdout] 189 | pub fn solve1(data: &String) -> usize { [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] 189 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 189 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day17.rs:201:21 [INFO] [stdout] | [INFO] [stdout] 201 | pub fn solve2(data: &String) -> usize { [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] 201 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 201 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day18.rs:26:21 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn solve1(data: &String) -> 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] 26 - pub fn solve1(data: &String) -> i32 { [INFO] [stdout] 26 + pub fn solve1(data: &str) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day18.rs:73:21 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn solve2(data: &String) -> i128 { [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] 73 - pub fn solve2(data: &String) -> i128 { [INFO] [stdout] 73 + pub fn solve2(data: &str) -> i128 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/puzzles/day19.rs:40:32 [INFO] [stdout] | [INFO] [stdout] 40 | for (_k, v) in gear { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 40 - for (_k, v) in gear { [INFO] [stdout] 40 + for v in gear.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/puzzles/day19.rs:55:48 [INFO] [stdout] | [INFO] [stdout] 55 | ... for (_k, v) in gear { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 55 - for (_k, v) in gear { [INFO] [stdout] 55 + for v in gear.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/puzzles/day19.rs:74:48 [INFO] [stdout] | [INFO] [stdout] 74 | ... for (_k, v) in gear { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 74 - for (_k, v) in gear { [INFO] [stdout] 74 + for v in gear.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day19.rs:94:21 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn solve1(data: &String) -> 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] 94 - pub fn solve1(data: &String) -> u32 { [INFO] [stdout] 94 + pub fn solve1(data: &str) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day19.rs:231:21 [INFO] [stdout] | [INFO] [stdout] 231 | pub fn solve2(data: &String) -> u128 { [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] 231 - pub fn solve2(data: &String) -> u128 { [INFO] [stdout] 231 + pub fn solve2(data: &str) -> u128 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/puzzles/day20.rs:147:40 [INFO] [stdout] | [INFO] [stdout] 147 | ... prev_id == String::from("fz") || [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `"fz"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/puzzles/day20.rs:148:40 [INFO] [stdout] | [INFO] [stdout] 148 | ... prev_id == String::from("xf") || [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `"xf"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/puzzles/day20.rs:149:40 [INFO] [stdout] | [INFO] [stdout] 149 | ... prev_id == String::from("mp") || [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `"mp"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/puzzles/day20.rs:150:40 [INFO] [stdout] | [INFO] [stdout] 150 | ... prev_id == String::from("hn") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `"hn"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day20.rs:166:21 [INFO] [stdout] | [INFO] [stdout] 166 | pub fn solve1(data: &String) -> usize { [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] 166 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 166 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `if let` [INFO] [stdout] --> src/puzzles/day20.rs:212:13 [INFO] [stdout] | [INFO] [stdout] 212 | / match tower { [INFO] [stdout] 213 | | Conjunction { connections: _, last }=> { [INFO] [stdout] 214 | | last.extend(prev_ids); [INFO] [stdout] ... | [INFO] [stdout] 217 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/puzzles/day20.rs:211:21 [INFO] [stdout] | [INFO] [stdout] 211 | if let Some(tower) = tower_field.towers.get_mut(&id) { [INFO] [stdout] | ^^^^^ replace this binding [INFO] [stdout] 212 | match tower { [INFO] [stdout] 213 | Conjunction { connections: _, last }=> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/puzzles/day20.rs:212:13 [INFO] [stdout] | [INFO] [stdout] 212 | / match tower { [INFO] [stdout] 213 | | Conjunction { connections: _, last }=> { [INFO] [stdout] 214 | | last.extend(prev_ids); [INFO] [stdout] ... | [INFO] [stdout] 217 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 212 ~ if let Conjunction { connections: _, last } = tower { [INFO] [stdout] 213 + last.extend(prev_ids); [INFO] [stdout] 214 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/puzzles/day20.rs:200:14 [INFO] [stdout] | [INFO] [stdout] 200 | for (id, ref tower) in &tower_field.towers { [INFO] [stdout] | ^^^^^^^^^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 200 - for (id, ref tower) in &tower_field.towers { [INFO] [stdout] 200 + for (id, tower) in &tower_field.towers { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day20.rs:230:21 [INFO] [stdout] | [INFO] [stdout] 230 | pub fn solve2(data: &String) -> usize { [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] 230 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 230 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `if let` [INFO] [stdout] --> src/puzzles/day20.rs:274:13 [INFO] [stdout] | [INFO] [stdout] 274 | / match tower { [INFO] [stdout] 275 | | Conjunction { connections: _, last } => { [INFO] [stdout] 276 | | last.extend(prev_ids); [INFO] [stdout] ... | [INFO] [stdout] 279 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/puzzles/day20.rs:273:21 [INFO] [stdout] | [INFO] [stdout] 273 | if let Some(tower) = tower_field.towers.get_mut(&id) { [INFO] [stdout] | ^^^^^ replace this binding [INFO] [stdout] 274 | match tower { [INFO] [stdout] 275 | Conjunction { connections: _, last } => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/puzzles/day20.rs:274:13 [INFO] [stdout] | [INFO] [stdout] 274 | / match tower { [INFO] [stdout] 275 | | Conjunction { connections: _, last } => { [INFO] [stdout] 276 | | last.extend(prev_ids); [INFO] [stdout] ... | [INFO] [stdout] 279 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 274 ~ if let Conjunction { connections: _, last } = tower { [INFO] [stdout] 275 + last.extend(prev_ids); [INFO] [stdout] 276 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/puzzles/day20.rs:264:14 [INFO] [stdout] | [INFO] [stdout] 264 | for (id, ref tower) in &tower_field.towers { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 264 - for (id, ref tower) in &tower_field.towers { [INFO] [stdout] 264 + for (id, tower) in &tower_field.towers { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day21.rs:25:21 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn solve1(data: &String) -> usize { [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 solve1(data: &String) -> usize { [INFO] [stdout] 25 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `garden` [INFO] [stdout] --> src/puzzles/day21.rs:55:18 [INFO] [stdout] | [INFO] [stdout] 55 | for r in 0..row { [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] 55 - for r in 0..row { [INFO] [stdout] 55 + for in garden.iter_mut().take(row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is only used to index `garden` [INFO] [stdout] --> src/puzzles/day21.rs:56:22 [INFO] [stdout] | [INFO] [stdout] 56 | for c in 0..col { [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 c in 0..col { [INFO] [stdout] 56 + for in garden.iter_mut().take(col) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day21.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn solve2(data: &String) -> usize { [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] 71 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 71 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same postfix: `Axis` [INFO] [stdout] --> src/puzzles/day22.rs:61:1 [INFO] [stdout] | [INFO] [stdout] 61 | / enum Orientation { [INFO] [stdout] 62 | | XAxis, [INFO] [stdout] 63 | | YAxis, [INFO] [stdout] 64 | | ZAxis, [INFO] [stdout] 65 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [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/puzzles/day22.rs:92:30 [INFO] [stdout] | [INFO] [stdout] 92 | fn fall(&mut self, grid: &mut Vec, xsize: i32, ysize: 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] 92 - fn fall(&mut self, grid: &mut Vec, xsize: i32, ysize: i32) { [INFO] [stdout] 92 + fn fall(&mut self, grid: &mut [i32], xsize: i32, ysize: i32) { [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/puzzles/day22.rs:157:30 [INFO] [stdout] | [INFO] [stdout] 157 | fn unstable(&self, grid: &mut Vec, xsize: i32, ysize: i32) -> Option<&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] 157 - fn unstable(&self, grid: &mut Vec, xsize: i32, ysize: i32) -> Option<&i32> { [INFO] [stdout] 157 + fn unstable(&self, grid: &mut [i32], xsize: i32, ysize: i32) -> Option<&i32> { [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/puzzles/day22.rs:187:27 [INFO] [stdout] | [INFO] [stdout] 187 | fn above(&self, grid: &Vec, xsize: i32, ysize: i32) -> HashSet { [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] 187 - fn above(&self, grid: &Vec, xsize: i32, ysize: i32) -> HashSet { [INFO] [stdout] 187 + fn above(&self, grid: &[i32], xsize: i32, ysize: i32) -> HashSet { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day22.rs:223:21 [INFO] [stdout] | [INFO] [stdout] 223 | pub fn solve1(data: &String) -> usize { [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] 223 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 223 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/puzzles/day22.rs:234:17 [INFO] [stdout] | [INFO] [stdout] 234 | let xsize = bricks.iter().map(|(_id, brick)| max(brick.begin.0, brick.end.0)).max().unwrap() + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bricks.values().map(|brick| max(brick.begin.0, brick.end.0))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/puzzles/day22.rs:235:17 [INFO] [stdout] | [INFO] [stdout] 235 | let ysize = bricks.iter().map(|(_id, brick)| max(brick.begin.1, brick.end.1)).max().unwrap() + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bricks.values().map(|brick| max(brick.begin.1, brick.end.1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/puzzles/day22.rs:236:17 [INFO] [stdout] | [INFO] [stdout] 236 | let zsize = bricks.iter().map(|(_id, brick)| max(brick.begin.2, brick.end.2)).max().unwrap() + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bricks.values().map(|brick| max(brick.begin.2, brick.end.2))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: slow zero-filling initialization [INFO] [stdout] --> src/puzzles/day22.rs:238:20 [INFO] [stdout] | [INFO] [stdout] 238 | let mut grid = Vec::::new(); [INFO] [stdout] | ____________________^ [INFO] [stdout] 239 | | grid.resize((xsize * ysize * zsize) as usize, 0); [INFO] [stdout] | |____________________________________________________^ help: consider replacing this with: `vec![0; (xsize * ysize * zsize) as usize]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization [INFO] [stdout] = note: `#[warn(clippy::slow_vector_initialization)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day22.rs:309:21 [INFO] [stdout] | [INFO] [stdout] 309 | pub fn solve2(data: &String) -> usize { [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] 309 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 309 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/puzzles/day22.rs:320:17 [INFO] [stdout] | [INFO] [stdout] 320 | let xsize = bricks.iter().map(|(_id, brick)| max(brick.begin.0, brick.end.0)).max().unwrap() + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bricks.values().map(|brick| max(brick.begin.0, brick.end.0))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/puzzles/day22.rs:321:17 [INFO] [stdout] | [INFO] [stdout] 321 | let ysize = bricks.iter().map(|(_id, brick)| max(brick.begin.1, brick.end.1)).max().unwrap() + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bricks.values().map(|brick| max(brick.begin.1, brick.end.1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/puzzles/day22.rs:322:17 [INFO] [stdout] | [INFO] [stdout] 322 | let zsize = bricks.iter().map(|(_id, brick)| max(brick.begin.2, brick.end.2)).max().unwrap() + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bricks.values().map(|brick| max(brick.begin.2, brick.end.2))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: slow zero-filling initialization [INFO] [stdout] --> src/puzzles/day22.rs:324:20 [INFO] [stdout] | [INFO] [stdout] 324 | let mut grid = Vec::::new(); [INFO] [stdout] | ____________________^ [INFO] [stdout] 325 | | grid.resize((xsize * ysize * zsize) as usize, 0); [INFO] [stdout] | |____________________________________________________^ help: consider replacing this with: `vec![0; (xsize * ysize * zsize) as usize]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day23.rs:47:21 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn solve1(data: &String) -> usize { [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] 47 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 47 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day23.rs:97:21 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn solve2(data: &String) -> usize { [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] 97 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 97 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/puzzles/day23.rs:182:20 [INFO] [stdout] | [INFO] [stdout] 182 | graph: &HashMap<(i32, i32), Vec<((i32,i32), i32)>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day24.rs:17:57 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn solve1(data: &String) -> usize { [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] 17 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 17 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day24.rs:128:21 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn solve2(data: &String) -> usize { [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] 128 - pub fn solve2(data: &String) -> usize { [INFO] [stdout] 128 + pub fn solve2(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/puzzles/day25.rs:28:21 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn solve1(data: &String) -> usize { [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] 28 - pub fn solve1(data: &String) -> usize { [INFO] [stdout] 28 + pub fn solve1(data: &str) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/puzzles/day25.rs:45:24 [INFO] [stdout] | [INFO] [stdout] 45 | idx_map.insert(&key, idx); [INFO] [stdout] | ^^^^ help: change this to: `key` [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.55s [INFO] running `Command { std: "docker" "inspect" "64aac5744ba1e85a9d3cbf2302b0390b00ac767389a548cab635c696c9f903a2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "64aac5744ba1e85a9d3cbf2302b0390b00ac767389a548cab635c696c9f903a2", kill_on_drop: false }` [INFO] [stdout] 64aac5744ba1e85a9d3cbf2302b0390b00ac767389a548cab635c696c9f903a2