[INFO] cloning repository https://github.com/mfbieber/advent_of_code2023 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mfbieber/advent_of_code2023" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmfbieber%2Fadvent_of_code2023", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmfbieber%2Fadvent_of_code2023'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 9caa69a60c09f458e580a93fa2530d6c07584816 [INFO] checking mfbieber/advent_of_code2023 against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmfbieber%2Fadvent_of_code2023" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/mfbieber/advent_of_code2023 on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/mfbieber/advent_of_code2023 [INFO] finished tweaking git repo https://github.com/mfbieber/advent_of_code2023 [INFO] tweaked toml for git repo https://github.com/mfbieber/advent_of_code2023 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/mfbieber/advent_of_code2023 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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 28848c331b15f6badb7049f26cc493ce3aaf4af43faddb79c532b4fa09dd4b13 [INFO] running `Command { std: "docker" "start" "-a" "28848c331b15f6badb7049f26cc493ce3aaf4af43faddb79c532b4fa09dd4b13", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "28848c331b15f6badb7049f26cc493ce3aaf4af43faddb79c532b4fa09dd4b13", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "28848c331b15f6badb7049f26cc493ce3aaf4af43faddb79c532b4fa09dd4b13", kill_on_drop: false }` [INFO] [stdout] 28848c331b15f6badb7049f26cc493ce3aaf4af43faddb79c532b4fa09dd4b13 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e4a75719b6b186384a47f52066abfbfc7cc7b495f44eada45b29b3ce41c668ca [INFO] running `Command { std: "docker" "start" "-a" "e4a75719b6b186384a47f52066abfbfc7cc7b495f44eada45b29b3ce41c668ca", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.17 [INFO] [stderr] Compiling proc-macro2 v1.0.70 [INFO] [stderr] Compiling futures-core v0.3.29 [INFO] [stderr] Compiling crossbeam-utils v0.8.18 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling futures-task v0.3.29 [INFO] [stderr] Compiling futures-channel v0.3.29 [INFO] [stderr] Compiling num-bigint v0.4.4 [INFO] [stderr] Checking futures-sink v0.3.29 [INFO] [stderr] Compiling futures-util v0.3.29 [INFO] [stderr] Compiling num-iter v0.1.43 [INFO] [stderr] Compiling num-rational v0.4.1 [INFO] [stderr] Checking futures-io v0.3.29 [INFO] [stderr] Checking pin-project-lite v0.2.13 [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 itertools v0.12.0 [INFO] [stderr] Checking crossbeam-epoch v0.9.17 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Checking crossbeam-deque v0.8.4 [INFO] [stderr] Compiling syn v2.0.39 [INFO] [stderr] Checking num-integer v0.1.45 [INFO] [stderr] Checking num-complex v0.4.4 [INFO] [stderr] Checking rayon v1.8.0 [INFO] [stderr] Checking num v0.4.1 [INFO] [stderr] Compiling futures-macro v0.3.29 [INFO] [stderr] Checking futures-executor v0.3.29 [INFO] [stderr] Checking futures v0.3.29 [INFO] [stderr] Checking advent_of_code2023 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/day5.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DerefMut` and `Deref` [INFO] [stdout] --> src/day5.rs:3:16 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::{Deref, DerefMut}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/day6.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::read_lines` [INFO] [stdout] --> src/day6.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::read_lines; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::SinkExt` [INFO] [stdout] --> src/day7.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use futures::SinkExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::Chars` [INFO] [stdout] --> src/day8.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::str::Chars; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::vec` [INFO] [stdout] --> src/day8.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::vec; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/day10.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/day12.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/day5.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DerefMut` and `Deref` [INFO] [stdout] --> src/day5.rs:3:16 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::{Deref, DerefMut}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/day6.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::read_lines` [INFO] [stdout] --> src/day6.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::read_lines; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/day6.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::SinkExt` [INFO] [stdout] --> src/day7.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use futures::SinkExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::Chars` [INFO] [stdout] --> src/day8.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::str::Chars; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::vec` [INFO] [stdout] --> src/day8.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::vec; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/day10.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/day12.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::AsyncReadExt` [INFO] [stdout] --> src/day4.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use futures::AsyncReadExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `games` [INFO] [stdout] --> src/day2.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | let games: Vec = lines.map(|line| { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_games` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `games` [INFO] [stdout] --> src/day2.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | let games: Vec = lines.map(|line| { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_games` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `num_vec` is never read [INFO] [stdout] --> src/day3.rs:106:17 [INFO] [stdout] | [INFO] [stdout] 106 | num_vec = vec![]; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `gear_ratio` is never read [INFO] [stdout] --> src/day3.rs:153:17 [INFO] [stdout] | [INFO] [stdout] 153 | gear_ratio = 0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `gears` is never read [INFO] [stdout] --> src/day3.rs:154:17 [INFO] [stdout] | [INFO] [stdout] 154 | gears = 0; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sum` is never read [INFO] [stdout] --> src/day4.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | let mut sum: i32 = 0; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `location` is never read [INFO] [stdout] --> src/day5.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | let mut location: i64 = 0; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day5.rs:169:46 [INFO] [stdout] | [INFO] [stdout] 169 | fn push_mapping(mappings: &mut Vec, mut mapping_ranges: Vec, mut name: String) { [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day5.rs:169:85 [INFO] [stdout] | [INFO] [stdout] 169 | fn push_mapping(mappings: &mut Vec, mut mapping_ranges: Vec, mut name: String) { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mapping_name` [INFO] [stdout] --> src/day5.rs:176:45 [INFO] [stdout] | [INFO] [stdout] 176 | fn get_mapping_range(line_ref: &String, mut mapping_name: &String) -> MappingRange { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mapping_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day5.rs:176:41 [INFO] [stdout] | [INFO] [stdout] 176 | fn get_mapping_range(line_ref: &String, mut mapping_name: &String) -> MappingRange { [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day6.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | let mut i: i64 = 1; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day6.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | let mut i: i64 = 1; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day7.rs:111:46 [INFO] [stdout] | [INFO] [stdout] 111 | fn replace_joker_with_cards(joker: bool, mut cards: &mut HashMap, hand_vec: &Vec) { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day7.rs:131:52 [INFO] [stdout] | [INFO] [stdout] 131 | fn remove_jokers_and_generate_map(joker: bool, mut cards: &mut HashMap, hand_vec: &Vec) { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day7.rs:259:15 [INFO] [stdout] | [INFO] [stdout] 259 | fn rank_hands(mut hands: &mut Vec) { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `line` [INFO] [stdout] --> src/day7.rs:272:13 [INFO] [stdout] | [INFO] [stdout] 272 | for line in lines { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day7.rs:269:9 [INFO] [stdout] | [INFO] [stdout] 269 | let mut sum: u32 = 0; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `node_number` is never read [INFO] [stdout] --> src/day8.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | node_number = 0; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end_node_match` [INFO] [stdout] --> src/day8.rs:41:58 [INFO] [stdout] | [INFO] [stdout] 41 | fn count_steps_for_path_part2(start_nodes: Vec<&String>, end_node_match: String, instructions: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_node_match` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node` [INFO] [stdout] --> src/day8.rs:47:57 [INFO] [stdout] | [INFO] [stdout] 47 | let mut paths: Vec = current_nodes.iter().map(|node| 0).collect(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day8.rs:108:33 [INFO] [stdout] | [INFO] [stdout] 108 | fn read_network(path: &PathBuf, mut nodes: &mut HashMap){ [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `x` is never read [INFO] [stdout] --> src/day10.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | let mut x: i32 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `end` is never read [INFO] [stdout] --> src/day10.rs:166:13 [INFO] [stdout] | [INFO] [stdout] 166 | end = true; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `end` is never read [INFO] [stdout] --> src/day10.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | end = true; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `traverse` is never read [INFO] [stdout] --> src/day10.rs:216:9 [INFO] [stdout] | [INFO] [stdout] 216 | traverse = 0; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expansion_factor` [INFO] [stdout] --> src/day11.rs:20:41 [INFO] [stdout] | [INFO] [stdout] 20 | fn expand_space(space: &Vec>, expansion_factor: i32) -> (Vec,Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expansion_factor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day12.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | let mut count: i64 = line_inputs.par_iter_mut().map(|line_input| { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `line` [INFO] [stdout] --> src/day13.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | for line in lines { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day13.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | let mut sum: i32 = 0; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `split` [INFO] [stdout] --> src/day13.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | let split: Vec<&str> = line [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_split` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day13.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | let mut sum: i32 = 0; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_lines` is never used [INFO] [stdout] --> src/main.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn read_lines

(filename: P) -> io::Result>> [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day1` is never used [INFO] [stdout] --> src/day1.rs:4:4 [INFO] [stdout] | [INFO] [stdout] 4 | fn day1(part2: bool, path: &PathBuf) -> u32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `convert_words_to_numbers` is never used [INFO] [stdout] --> src/day1.rs:28:4 [INFO] [stdout] | [INFO] [stdout] 28 | fn convert_words_to_numbers(input: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_last_number` is never used [INFO] [stdout] --> src/day1.rs:44:4 [INFO] [stdout] | [INFO] [stdout] 44 | fn find_last_number(input: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_first_number` is never used [INFO] [stdout] --> src/day1.rs:62:4 [INFO] [stdout] | [INFO] [stdout] 62 | fn find_first_number(input: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `replace_word` is never used [INFO] [stdout] --> src/day1.rs:76:4 [INFO] [stdout] | [INFO] [stdout] 76 | fn replace_word(string: &String, i: usize, word: String, number: i32) -> (String, bool) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `replace_words` is never used [INFO] [stdout] --> src/day1.rs:89:4 [INFO] [stdout] | [INFO] [stdout] 89 | fn replace_words(string: &String, i: usize) -> (String, bool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Game` is never constructed [INFO] [stdout] --> src/day2.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | struct Game { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Set` is never constructed [INFO] [stdout] --> src/day2.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | struct Set { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day2_part2` is never used [INFO] [stdout] --> src/day2.rs:32:4 [INFO] [stdout] | [INFO] [stdout] 32 | fn day2_part2(path: &PathBuf) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day2_part1` is never used [INFO] [stdout] --> src/day2.rs:64:4 [INFO] [stdout] | [INFO] [stdout] 64 | fn day2_part1(path: &PathBuf) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_game` is never used [INFO] [stdout] --> src/day2.rs:93:4 [INFO] [stdout] | [INFO] [stdout] 93 | fn parse_game(line: &str) -> Game { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Number` is never constructed [INFO] [stdout] --> src/day3.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Number { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Symbol` is never constructed [INFO] [stdout] --> src/day3.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | struct Symbol { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `length`, `is_symbol_adjacent`, and `is_number_next_to_symbol` are never used [INFO] [stdout] --> src/day3.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 15 | impl Number { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 16 | fn length(&self) -> i32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | fn is_symbol_adjacent(&self, symbol: &Symbol) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | fn is_number_next_to_symbol(&self, symbol: &Symbol) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day3_part1` is never used [INFO] [stdout] --> src/day3.rs:49:4 [INFO] [stdout] | [INFO] [stdout] 49 | fn day3_part1(path: &PathBuf) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_lines_to_numbers_and_symbols` is never used [INFO] [stdout] --> src/day3.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn parse_lines_to_numbers_and_symbols(path: &PathBuf, symbols: &mut Vec, mut numbers: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `push_number` is never used [INFO] [stdout] --> src/day3.rs:113:4 [INFO] [stdout] | [INFO] [stdout] 113 | fn push_number(numbers: &mut Vec, y: &mut i32, x: &mut i32, num_vec: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day3_part2` is never used [INFO] [stdout] --> src/day3.rs:129:4 [INFO] [stdout] | [INFO] [stdout] 129 | fn day3_part2(path: &PathBuf) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day4_part2` is never used [INFO] [stdout] --> src/day4.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn day4_part2(path: &PathBuf) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day4_part1` is never used [INFO] [stdout] --> src/day4.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn day4_part1(path: &PathBuf) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `match_numbers` is never used [INFO] [stdout] --> src/day4.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn match_numbers(line: &String) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SeedRange` is never constructed [INFO] [stdout] --> src/day5.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct SeedRange { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day5_part2` is never used [INFO] [stdout] --> src/day5.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn day5_part2(path: &PathBuf, seed_ranges: Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_smallest_location_in_mappings_for_seed` is never used [INFO] [stdout] --> src/day5.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn find_smallest_location_in_mappings_for_seed(seed: i64, mappings: &Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SIZE` is never used [INFO] [stdout] --> src/day5.rs:54:7 [INFO] [stdout] | [INFO] [stdout] 54 | const SIZE: usize = 11322857500; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MappingRange` is never constructed [INFO] [stdout] --> src/day5.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 57 | struct MappingRange { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_dest`, `is_in_dest_range`, and `is_in_source_range` are never used [INFO] [stdout] --> src/day5.rs:65:8 [INFO] [stdout] | [INFO] [stdout] 63 | impl MappingRange { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] 64 | [INFO] [stdout] 65 | fn get_dest(&self, value: i64) -> i64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | fn is_in_dest_range(&self, value: i64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | fn is_in_source_range(&self, value: i64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Mapping` is never constructed [INFO] [stdout] --> src/day5.rs:80:8 [INFO] [stdout] | [INFO] [stdout] 80 | struct Mapping { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `push_mapping_range` is never used [INFO] [stdout] --> src/day5.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 85 | impl Mapping { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 86 | fn push_mapping_range(&mut self, range: MappingRange) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_smallest_location_for_seeds` is never used [INFO] [stdout] --> src/day5.rs:92:4 [INFO] [stdout] | [INFO] [stdout] 92 | fn get_smallest_location_for_seeds(path: &PathBuf, seeds: HashSet) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_smallest_location_in_mappings` is never used [INFO] [stdout] --> src/day5.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 97 | fn find_smallest_location_in_mappings(seeds: HashSet, mappings: &Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_mappings` is never used [INFO] [stdout] --> src/day5.rs:118:4 [INFO] [stdout] | [INFO] [stdout] 118 | fn read_mappings(path: &PathBuf) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `push_mapping` is never used [INFO] [stdout] --> src/day5.rs:169:4 [INFO] [stdout] | [INFO] [stdout] 169 | fn push_mapping(mappings: &mut Vec, mut mapping_ranges: Vec, mut name: String) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_mapping_range` is never used [INFO] [stdout] --> src/day5.rs:176:4 [INFO] [stdout] | [INFO] [stdout] 176 | fn get_mapping_range(line_ref: &String, mut mapping_name: &String) -> MappingRange { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Race` is never constructed [INFO] [stdout] --> src/day6.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct Race { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `hold_one_ms`, `get_distance`, and `would_win` are never used [INFO] [stdout] --> src/day6.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 10 | impl Race { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 11 | fn hold_one_ms(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | fn get_distance(&self) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | fn would_win(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day6_part1` is never used [INFO] [stdout] --> src/day6.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn day6_part1(races: &mut Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day6_part2` is never used [INFO] [stdout] --> src/day6.rs:42:4 [INFO] [stdout] | [INFO] [stdout] 42 | fn day6_part2(race: &mut Race) -> i64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Card` is never constructed [INFO] [stdout] --> src/day7.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | struct Card { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `calculate_strength` is never used [INFO] [stdout] --> src/day7.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl Card { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 23 | [INFO] [stdout] 24 | fn calculate_strength(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Type` is never used [INFO] [stdout] --> src/day7.rs:46:6 [INFO] [stdout] | [INFO] [stdout] 46 | enum Type { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Hand` is never constructed [INFO] [stdout] --> src/day7.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | struct Hand { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/day7.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 85 | impl Hand { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 86 | [INFO] [stdout] 87 | fn new(hand_string: String, bid: i64, joker: bool) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | fn build_hand_from_string(hand_string: String, bid: i64, joker: bool) -> Hand { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | fn replace_joker_with_cards(joker: bool, mut cards: &mut HashMap, hand_vec: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | fn remove_jokers_and_generate_map(joker: bool, mut cards: &mut HashMap, hand_vec: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | fn determine_type_for_cards(cards: &HashMap) -> Type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | fn compare_hands(hand_vec_a: &Vec, hand_vec_b: &Vec) -> Ordering { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | fn is_higher_ranked(&self, other: &Hand) -> Ordering { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rank_hands` is never used [INFO] [stdout] --> src/day7.rs:259:4 [INFO] [stdout] | [INFO] [stdout] 259 | fn rank_hands(mut hands: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Game` is never constructed [INFO] [stdout] --> src/day7.rs:263:8 [INFO] [stdout] | [INFO] [stdout] 263 | struct Game { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day7_part2` is never used [INFO] [stdout] --> src/day7.rs:268:4 [INFO] [stdout] | [INFO] [stdout] 268 | fn day7_part2(path: &PathBuf) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_winnings` is never used [INFO] [stdout] --> src/day7.rs:280:4 [INFO] [stdout] | [INFO] [stdout] 280 | fn calculate_winnings(path: &PathBuf, joker: bool) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/day8.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/day8.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] 15 | fn new(label: String, left: String, right: String) -> Node { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day8_part2` is never used [INFO] [stdout] --> src/day8.rs:24:4 [INFO] [stdout] | [INFO] [stdout] 24 | fn day8_part2(path: &PathBuf, instructions: Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day8_part1` is never used [INFO] [stdout] --> src/day8.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn day8_part1(path: &PathBuf, instructions: Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_steps_for_path_part2` is never used [INFO] [stdout] --> src/day8.rs:41:4 [INFO] [stdout] | [INFO] [stdout] 41 | fn count_steps_for_path_part2(start_nodes: Vec<&String>, end_node_match: String, instructions: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_steps_for_path` is never used [INFO] [stdout] --> src/day8.rs:80:4 [INFO] [stdout] | [INFO] [stdout] 80 | fn count_steps_for_path(start_node_match: String, end_node_match: String, instructions: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_network` is never used [INFO] [stdout] --> src/day8.rs:108:4 [INFO] [stdout] | [INFO] [stdout] 108 | fn read_network(path: &PathBuf, mut nodes: &mut HashMap){ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `History` is never constructed [INFO] [stdout] --> src/day9.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct History { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `calculate_differences`, `next_value`, and `previous_value` are never used [INFO] [stdout] --> src/day9.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 9 | impl History { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 10 | fn new(string: String) -> History { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | fn calculate_differences(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | fn next_value(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | fn previous_value(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day9_part2` is never used [INFO] [stdout] --> src/day9.rs:68:4 [INFO] [stdout] | [INFO] [stdout] 68 | fn day9_part2(path: &PathBuf) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day9_part1` is never used [INFO] [stdout] --> src/day9.rs:82:4 [INFO] [stdout] | [INFO] [stdout] 82 | fn day9_part1(path: &PathBuf) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Tile` is never constructed [INFO] [stdout] --> src/day10.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | struct Tile { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `get_connected_pipes` are never used [INFO] [stdout] --> src/day10.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 16 | impl Tile { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 17 | [INFO] [stdout] 18 | fn new(char: char, x: i32, y: i32) -> Tile { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | fn get_connected_pipes(&self, tiles: &Vec>) -> (Tile, Tile) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_tiles` is never used [INFO] [stdout] --> src/day10.rs:125:4 [INFO] [stdout] | [INFO] [stdout] 125 | fn read_tiles(path: &PathBuf) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_longest_path` is never used [INFO] [stdout] --> src/day10.rs:149:4 [INFO] [stdout] | [INFO] [stdout] 149 | fn get_longest_path(tiles: &mut Vec>, x1: i32, y1: i32, x2: i32, y2: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_start_tile` is never used [INFO] [stdout] --> src/day10.rs:184:4 [INFO] [stdout] | [INFO] [stdout] 184 | fn find_start_tile(tiles: &Vec>) -> Tile { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_enclosed_tiles` is never used [INFO] [stdout] --> src/day10.rs:198:4 [INFO] [stdout] | [INFO] [stdout] 198 | fn find_enclosed_tiles(tiles: &mut Vec>) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_input` is never used [INFO] [stdout] --> src/day11.rs:4:4 [INFO] [stdout] | [INFO] [stdout] 4 | fn read_input(path: &PathBuf) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expand_space` is never used [INFO] [stdout] --> src/day11.rs:20:4 [INFO] [stdout] | [INFO] [stdout] 20 | fn expand_space(space: &Vec>, expansion_factor: i32) -> (Vec,Vec) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_shortest_paths_to_galaxies_sum` is never used [INFO] [stdout] --> src/day11.rs:60:4 [INFO] [stdout] | [INFO] [stdout] 60 | fn find_shortest_paths_to_galaxies_sum(space: &Vec>, expansion_factor: i32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unfold` is never used [INFO] [stdout] --> src/day12.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn unfold(springs: &Vec, damaged: &Vec) -> (Vec, Vec) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day12_part1` is never used [INFO] [stdout] --> src/day12.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn day12_part1(path: &PathBuf) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_line` is never used [INFO] [stdout] --> src/day12.rs:41:4 [INFO] [stdout] | [INFO] [stdout] 41 | fn parse_line(line: String) -> (Vec, Vec) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day12_part2` is never used [INFO] [stdout] --> src/day12.rs:51:4 [INFO] [stdout] | [INFO] [stdout] 51 | fn day12_part2(path: &PathBuf) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_valid_arrangements` is never used [INFO] [stdout] --> src/day12.rs:71:4 [INFO] [stdout] | [INFO] [stdout] 71 | fn count_valid_arrangements(mut arrangement: Vec, mut valid_damaged_group_end_idx: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_all` is never used [INFO] [stdout] --> src/day12.rs:107:4 [INFO] [stdout] | [INFO] [stdout] 107 | fn validate_all((arrangement, valid_damaged_group_end_idx): (&Vec, &mut Vec), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_partially` is never used [INFO] [stdout] --> src/day12.rs:117:4 [INFO] [stdout] | [INFO] [stdout] 117 | fn validate_partially((arrangement, valid_damaged_group_end_idx): (&Vec, &mut Vec), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day13_part2` is never used [INFO] [stdout] --> src/day13.rs:4:4 [INFO] [stdout] | [INFO] [stdout] 4 | fn day13_part2(path: &PathBuf) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day13_part1` is never used [INFO] [stdout] --> src/day13.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn day13_part1(path: &PathBuf) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/day2.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | / &sets.iter().for_each(|set| { [INFO] [stdout] 46 | | if set.red > min_red { [INFO] [stdout] 47 | | min_red = set.red; [INFO] [stdout] 48 | | } [INFO] [stdout] ... | [INFO] [stdout] 54 | | } [INFO] [stdout] 55 | | }); [INFO] [stdout] | |______________^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 45 | let _ = &sets.iter().for_each(|set| { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/day2.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | / &sets.iter().for_each(|set| { [INFO] [stdout] 80 | | if set.red > red_limit || set.green > green_limit || set.blue > blue_limit { [INFO] [stdout] 81 | | valid = false; [INFO] [stdout] 82 | | } [INFO] [stdout] 83 | | }); [INFO] [stdout] | |______________^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 79 | let _ = &sets.iter().for_each(|set| { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stdout] --> src/day7.rs:290:60 [INFO] [stdout] | [INFO] [stdout] 290 | let hand_string: String = split.get(0).unwrap().clone().parse().unwrap(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(suspicious_double_ref_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stdout] --> src/day7.rs:291:49 [INFO] [stdout] | [INFO] [stdout] 291 | let bid: i64 = split.get(1).unwrap().clone().parse().unwrap(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type [INFO] [stdout] --> src/day8.rs:52:55 [INFO] [stdout] | [INFO] [stdout] 52 | let current_node: &Node = nodes.get(&*node.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 124 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::AsyncReadExt` [INFO] [stdout] --> src/day4.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use futures::AsyncReadExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `games` [INFO] [stdout] --> src/day2.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | let games: Vec = lines.map(|line| { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_games` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `games` [INFO] [stdout] --> src/day2.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | let games: Vec = lines.map(|line| { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_games` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `num_vec` is never read [INFO] [stdout] --> src/day3.rs:106:17 [INFO] [stdout] | [INFO] [stdout] 106 | num_vec = vec![]; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `gear_ratio` is never read [INFO] [stdout] --> src/day3.rs:153:17 [INFO] [stdout] | [INFO] [stdout] 153 | gear_ratio = 0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `gears` is never read [INFO] [stdout] --> src/day3.rs:154:17 [INFO] [stdout] | [INFO] [stdout] 154 | gears = 0; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sum` is never read [INFO] [stdout] --> src/day4.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | let mut sum: i32 = 0; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `location` is never read [INFO] [stdout] --> src/day5.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | let mut location: i64 = 0; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day5.rs:169:46 [INFO] [stdout] | [INFO] [stdout] 169 | fn push_mapping(mappings: &mut Vec, mut mapping_ranges: Vec, mut name: String) { [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day5.rs:169:85 [INFO] [stdout] | [INFO] [stdout] 169 | fn push_mapping(mappings: &mut Vec, mut mapping_ranges: Vec, mut name: String) { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mapping_name` [INFO] [stdout] --> src/day5.rs:176:45 [INFO] [stdout] | [INFO] [stdout] 176 | fn get_mapping_range(line_ref: &String, mut mapping_name: &String) -> MappingRange { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mapping_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day5.rs:176:41 [INFO] [stdout] | [INFO] [stdout] 176 | fn get_mapping_range(line_ref: &String, mut mapping_name: &String) -> MappingRange { [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day6.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | let mut i: i64 = 1; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day6.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | let mut i: i64 = 1; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day6.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let mut race: Race = Race { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day6.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let mut race1: Race = Race { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day6.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | let mut race2: Race = Race { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day6.rs:110:13 [INFO] [stdout] | [INFO] [stdout] 110 | let mut race3: Race = Race { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day6.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | let mut race1: Race = Race { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day6.rs:126:13 [INFO] [stdout] | [INFO] [stdout] 126 | let mut race2: Race = Race { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day6.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 131 | let mut race3: Race = Race { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day6.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | let mut race4: Race = Race { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day7.rs:111:46 [INFO] [stdout] | [INFO] [stdout] 111 | fn replace_joker_with_cards(joker: bool, mut cards: &mut HashMap, hand_vec: &Vec) { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day7.rs:131:52 [INFO] [stdout] | [INFO] [stdout] 131 | fn remove_jokers_and_generate_map(joker: bool, mut cards: &mut HashMap, hand_vec: &Vec) { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day7.rs:259:15 [INFO] [stdout] | [INFO] [stdout] 259 | fn rank_hands(mut hands: &mut Vec) { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `line` [INFO] [stdout] --> src/day7.rs:272:13 [INFO] [stdout] | [INFO] [stdout] 272 | for line in lines { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day7.rs:269:9 [INFO] [stdout] | [INFO] [stdout] 269 | let mut sum: u32 = 0; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `node_number` is never read [INFO] [stdout] --> src/day8.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | node_number = 0; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end_node_match` [INFO] [stdout] --> src/day8.rs:41:58 [INFO] [stdout] | [INFO] [stdout] 41 | fn count_steps_for_path_part2(start_nodes: Vec<&String>, end_node_match: String, instructions: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_node_match` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node` [INFO] [stdout] --> src/day8.rs:47:57 [INFO] [stdout] | [INFO] [stdout] 47 | let mut paths: Vec = current_nodes.iter().map(|node| 0).collect(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day8.rs:108:33 [INFO] [stdout] | [INFO] [stdout] 108 | fn read_network(path: &PathBuf, mut nodes: &mut HashMap){ [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `x` is never read [INFO] [stdout] --> src/day10.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | let mut x: i32 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `end` is never read [INFO] [stdout] --> src/day10.rs:166:13 [INFO] [stdout] | [INFO] [stdout] 166 | end = true; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `end` is never read [INFO] [stdout] --> src/day10.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | end = true; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `traverse` is never read [INFO] [stdout] --> src/day10.rs:216:9 [INFO] [stdout] | [INFO] [stdout] 216 | traverse = 0; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day10.rs:232:13 [INFO] [stdout] | [INFO] [stdout] 232 | let mut start_tile: Tile = find_start_tile(&tiles); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day10.rs:245:13 [INFO] [stdout] | [INFO] [stdout] 245 | let mut start_tile: Tile = find_start_tile(&tiles); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day10.rs:295:13 [INFO] [stdout] | [INFO] [stdout] 295 | let mut start_tile: Tile = find_start_tile(&tiles); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path_length` [INFO] [stdout] --> src/day10.rs:312:13 [INFO] [stdout] | [INFO] [stdout] 312 | let path_length: i32 = get_longest_path(&mut tiles, connected.0.x, connected.0.y, connected.1.x, connected.1.y); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_length` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day10.rs:308:13 [INFO] [stdout] | [INFO] [stdout] 308 | let mut start_tile: Tile = find_start_tile(&tiles); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path_length` [INFO] [stdout] --> src/day10.rs:326:13 [INFO] [stdout] | [INFO] [stdout] 326 | let path_length: i32 = get_longest_path(&mut tiles, connected.0.x, connected.0.y, connected.1.x, connected.1.y); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_length` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day10.rs:322:13 [INFO] [stdout] | [INFO] [stdout] 322 | let mut start_tile: Tile = find_start_tile(&tiles); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path_length` [INFO] [stdout] --> src/day10.rs:341:13 [INFO] [stdout] | [INFO] [stdout] 341 | let path_length: i32 = get_longest_path(&mut tiles, connected.0.x, connected.0.y, connected.1.x, connected.1.y); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_length` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day10.rs:337:13 [INFO] [stdout] | [INFO] [stdout] 337 | let mut start_tile: Tile = find_start_tile(&tiles); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path_length` [INFO] [stdout] --> src/day10.rs:385:13 [INFO] [stdout] | [INFO] [stdout] 385 | let path_length: i32 = get_longest_path(&mut tiles, connected.0.x, connected.0.y, connected.1.x, connected.1.y); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_length` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day10.rs:381:13 [INFO] [stdout] | [INFO] [stdout] 381 | let mut start_tile: Tile = find_start_tile(&tiles); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expansion_factor` [INFO] [stdout] --> src/day11.rs:20:41 [INFO] [stdout] | [INFO] [stdout] 20 | fn expand_space(space: &Vec>, expansion_factor: i32) -> (Vec,Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expansion_factor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day12.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | let mut count: i64 = line_inputs.par_iter_mut().map(|line_input| { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx` [INFO] [stdout] --> src/day12.rs:173:13 [INFO] [stdout] | [INFO] [stdout] 173 | let valid_damaged_group_end_idx: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx` [INFO] [stdout] --> src/day12.rs:183:13 [INFO] [stdout] | [INFO] [stdout] 183 | let valid_damaged_group_end_idx: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx` [INFO] [stdout] --> src/day12.rs:193:13 [INFO] [stdout] | [INFO] [stdout] 193 | let valid_damaged_group_end_idx: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx` [INFO] [stdout] --> src/day12.rs:203:13 [INFO] [stdout] | [INFO] [stdout] 203 | let valid_damaged_group_end_idx: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx` [INFO] [stdout] --> src/day12.rs:213:13 [INFO] [stdout] | [INFO] [stdout] 213 | let valid_damaged_group_end_idx: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx` [INFO] [stdout] --> src/day12.rs:223:13 [INFO] [stdout] | [INFO] [stdout] 223 | let valid_damaged_group_end_idx: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx` [INFO] [stdout] --> src/day12.rs:233:13 [INFO] [stdout] | [INFO] [stdout] 233 | let valid_damaged_group_end_idx: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx` [INFO] [stdout] --> src/day12.rs:243:13 [INFO] [stdout] | [INFO] [stdout] 243 | let valid_damaged_group_end_idx: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx` [INFO] [stdout] --> src/day12.rs:291:13 [INFO] [stdout] | [INFO] [stdout] 291 | let valid_damaged_group_end_idx: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx` [INFO] [stdout] --> src/day12.rs:303:13 [INFO] [stdout] | [INFO] [stdout] 303 | let valid_damaged_group_end_idx: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx` [INFO] [stdout] --> src/day12.rs:315:13 [INFO] [stdout] | [INFO] [stdout] 315 | let valid_damaged_group_end_idx: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx` [INFO] [stdout] --> src/day12.rs:327:13 [INFO] [stdout] | [INFO] [stdout] 327 | let valid_damaged_group_end_idx: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx` [INFO] [stdout] --> src/day12.rs:339:13 [INFO] [stdout] | [INFO] [stdout] 339 | let valid_damaged_group_end_idx: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected_arrangement` [INFO] [stdout] --> src/day12.rs:341:128 [INFO] [stdout] | [INFO] [stdout] 341 | ...d); let expected_arrangement: Vec = String::from("..#...#....###.").chars().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_arrangement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx` [INFO] [stdout] --> src/day12.rs:351:13 [INFO] [stdout] | [INFO] [stdout] 351 | let valid_damaged_group_end_idx: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected_arrangement` [INFO] [stdout] --> src/day12.rs:354:13 [INFO] [stdout] | [INFO] [stdout] 354 | let expected_arrangement: Vec = String::from(".#.#.###").chars().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_arrangement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `line` [INFO] [stdout] --> src/day13.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | for line in lines { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day13.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | let mut sum: i32 = 0; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `split` [INFO] [stdout] --> src/day13.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | let split: Vec<&str> = line [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_split` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day13.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | let mut sum: i32 = 0; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RADIX` is never used [INFO] [stdout] --> src/day3.rs:74:19 [INFO] [stdout] | [INFO] [stdout] 74 | const RADIX: i32 = 10; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/day5.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 80 | struct Mapping { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] 81 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Mapping` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `push_mapping_range` is never used [INFO] [stdout] --> src/day5.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 85 | impl Mapping { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 86 | fn push_mapping_range(&mut self, range: MappingRange) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `joker` is never read [INFO] [stdout] --> src/day7.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 58 | struct Hand { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 63 | joker: bool [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Hand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Game` is never constructed [INFO] [stdout] --> src/day7.rs:263:8 [INFO] [stdout] | [INFO] [stdout] 263 | struct Game { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day7_part2` is never used [INFO] [stdout] --> src/day7.rs:268:4 [INFO] [stdout] | [INFO] [stdout] 268 | fn day7_part2(path: &PathBuf) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day13_part2` is never used [INFO] [stdout] --> src/day13.rs:4:4 [INFO] [stdout] | [INFO] [stdout] 4 | fn day13_part2(path: &PathBuf) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day13_part1` is never used [INFO] [stdout] --> src/day13.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn day13_part1(path: &PathBuf) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/day2.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | / &sets.iter().for_each(|set| { [INFO] [stdout] 46 | | if set.red > min_red { [INFO] [stdout] 47 | | min_red = set.red; [INFO] [stdout] 48 | | } [INFO] [stdout] ... | [INFO] [stdout] 54 | | } [INFO] [stdout] 55 | | }); [INFO] [stdout] | |______________^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 45 | let _ = &sets.iter().for_each(|set| { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/day2.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | / &sets.iter().for_each(|set| { [INFO] [stdout] 80 | | if set.red > red_limit || set.green > green_limit || set.blue > blue_limit { [INFO] [stdout] 81 | | valid = false; [INFO] [stdout] 82 | | } [INFO] [stdout] 83 | | }); [INFO] [stdout] | |______________^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 79 | let _ = &sets.iter().for_each(|set| { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stdout] --> src/day7.rs:290:60 [INFO] [stdout] | [INFO] [stdout] 290 | let hand_string: String = split.get(0).unwrap().clone().parse().unwrap(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(suspicious_double_ref_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stdout] --> src/day7.rs:291:49 [INFO] [stdout] | [INFO] [stdout] 291 | let bid: i64 = split.get(1).unwrap().clone().parse().unwrap(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type [INFO] [stdout] --> src/day8.rs:52:55 [INFO] [stdout] | [INFO] [stdout] 52 | let current_node: &Node = nodes.get(&*node.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 91 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.87s [INFO] running `Command { std: "docker" "inspect" "e4a75719b6b186384a47f52066abfbfc7cc7b495f44eada45b29b3ce41c668ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e4a75719b6b186384a47f52066abfbfc7cc7b495f44eada45b29b3ce41c668ca", kill_on_drop: false }` [INFO] [stdout] e4a75719b6b186384a47f52066abfbfc7cc7b495f44eada45b29b3ce41c668ca