[INFO] cloning repository https://github.com/lindend/aoc24 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lindend/aoc24" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flindend%2Faoc24", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flindend%2Faoc24'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4dd900d845447be2dfc82e57c21c427a247a1efe [INFO] checking lindend/aoc24 against try#afeffcd090fe6cee35c99f8b5539d74aa443fe34 for pr-140956 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flindend%2Faoc24" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/lindend/aoc24 [INFO] finished tweaking git repo https://github.com/lindend/aoc24 [INFO] tweaked toml for git repo https://github.com/lindend/aoc24 written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/lindend/aoc24 on toolchain afeffcd090fe6cee35c99f8b5539d74aa443fe34 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+afeffcd090fe6cee35c99f8b5539d74aa443fe34" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/lindend/aoc24 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" "+afeffcd090fe6cee35c99f8b5539d74aa443fe34" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+afeffcd090fe6cee35c99f8b5539d74aa443fe34" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d26000ba440a8e9b18a6088bb3779f149c4a3920bcfda8e1c8d8d465baaac2a7 [INFO] running `Command { std: "docker" "start" "-a" "d26000ba440a8e9b18a6088bb3779f149c4a3920bcfda8e1c8d8d465baaac2a7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d26000ba440a8e9b18a6088bb3779f149c4a3920bcfda8e1c8d8d465baaac2a7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d26000ba440a8e9b18a6088bb3779f149c4a3920bcfda8e1c8d8d465baaac2a7", kill_on_drop: false }` [INFO] [stdout] d26000ba440a8e9b18a6088bb3779f149c4a3920bcfda8e1c8d8d465baaac2a7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+afeffcd090fe6cee35c99f8b5539d74aa443fe34" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 99e40782cb885f10bdbfb3f5364870ab7a0dec843f71e7078ea14be72046084e [INFO] running `Command { std: "docker" "start" "-a" "99e40782cb885f10bdbfb3f5364870ab7a0dec843f71e7078ea14be72046084e", kill_on_drop: false }` [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking aoc24 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/day21.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/day21.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | if (current.y == bad.y && target.x == bad.x) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 48 - if (current.y == bad.y && target.x == bad.x) { [INFO] [stdout] 48 + if current.y == bad.y && target.x == bad.x { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/day21.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/day21.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | if (current.y == bad.y && target.x == bad.x) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 48 - if (current.y == bad.y && target.x == bad.x) { [INFO] [stdout] 48 + if current.y == bad.y && target.x == bad.x { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/day11.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | for i in 0..25 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `half_room` [INFO] [stdout] --> src/day14.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | let half_room = room_size / 2; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_half_room` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day14.rs:38:47 [INFO] [stdout] | [INFO] [stdout] 38 | num_at_positions.entry(p).and_modify(|mut n| *n += 1).or_insert(1); [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/day14.rs:64:47 [INFO] [stdout] | [INFO] [stdout] 64 | num_at_positions.entry(p).and_modify(|mut n| *n += 1).or_insert(1); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pos` [INFO] [stdout] --> src/day15.rs:154:44 [INFO] [stdout] | [INFO] [stdout] 154 | let mut robot_pos = *map.iter().find(|(pos, obj)| **obj == Obj::Robot).expect("Could not find robot").0; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_pos` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pos` [INFO] [stdout] --> src/day15.rs:170:44 [INFO] [stdout] | [INFO] [stdout] 170 | let mut robot_pos = *map.iter().find(|(pos, obj)| **obj == Obj::Robot).expect("Could not find robot").0; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_pos` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/day21_2.rs:264:22 [INFO] [stdout] | [INFO] [stdout] 264 | |&state, context| (0, state) [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/day22.rs:55:17 [INFO] [stdout] | [INFO] [stdout] 55 | for i in 0..2000 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `d0` is never read [INFO] [stdout] --> src/day22.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | let mut d0 = None; [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: unused variable: `i` [INFO] [stdout] --> src/day11.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | for i in 0..25 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `half_room` [INFO] [stdout] --> src/day14.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | let half_room = room_size / 2; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_half_room` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day14.rs:38:47 [INFO] [stdout] | [INFO] [stdout] 38 | num_at_positions.entry(p).and_modify(|mut n| *n += 1).or_insert(1); [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/day14.rs:64:47 [INFO] [stdout] | [INFO] [stdout] 64 | num_at_positions.entry(p).and_modify(|mut n| *n += 1).or_insert(1); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/day8.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | for (c, ts) in towers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pos` [INFO] [stdout] --> src/day15.rs:154:44 [INFO] [stdout] | [INFO] [stdout] 154 | let mut robot_pos = *map.iter().find(|(pos, obj)| **obj == Obj::Robot).expect("Could not find robot").0; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_pos` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/day8.rs:46:10 [INFO] [stdout] | [INFO] [stdout] 46 | for (c, ts) in towers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pos` [INFO] [stdout] --> src/day15.rs:170:44 [INFO] [stdout] | [INFO] [stdout] 170 | let mut robot_pos = *map.iter().find(|(pos, obj)| **obj == Obj::Robot).expect("Could not find robot").0; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_pos` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input_line` is never used [INFO] [stdout] --> src/day1.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn parse_input_line(line: &str) -> Option<(i32, i32)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day1.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn part1(left: &Vec, right: &Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day1.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn part2(left: &Vec, right: &Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day1` is never used [INFO] [stdout] --> src/day1.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | pub fn day1() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/day10.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_node` is never used [INFO] [stdout] --> src/day10.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn get_node(map: &Vec>, level: u32, pos: Vec2) -> Node { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_peaks` is never used [INFO] [stdout] --> src/day10.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn count_peaks(trail: &Node, visited: &mut HashSet>) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_rating` is never used [INFO] [stdout] --> src/day10.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn count_rating(trail: &Node) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_tree` is never used [INFO] [stdout] --> src/day10.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn get_tree(map: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day10.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn part1(input: &Vec>) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day10.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn part2(input: &Vec>) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day10.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn parse_input(input: &str) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day10` is never used [INFO] [stdout] --> src/day10.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn day10() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `split_stone` is never used [INFO] [stdout] --> src/day11.rs:4:4 [INFO] [stdout] | [INFO] [stdout] 4 | fn split_stone(stone: u64) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `split_stone_2` is never used [INFO] [stdout] --> src/day11.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn split_stone_2(stone: u64) -> (u64, u64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blink` is never used [INFO] [stdout] --> src/day11.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn blink(stones: &Vec) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blink_stone` is never used [INFO] [stdout] --> src/day11.rs:24:4 [INFO] [stdout] | [INFO] [stdout] 24 | fn blink_stone(stone: u64, max_level: i32, level: i32, memoize: &mut HashMap<(u64, i32), u64>) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day11.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn part1(stones: &Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day11.rs:55:4 [INFO] [stdout] | [INFO] [stdout] 55 | fn part2(stones: &Vec, max_level: i32) -> u64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day11.rs:61:4 [INFO] [stdout] | [INFO] [stdout] 61 | fn parse_input(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day11` is never used [INFO] [stdout] --> src/day11.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn day11() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Area` is never constructed [INFO] [stdout] --> src/day12.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Area { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_cells` is never used [INFO] [stdout] --> src/day12.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn find_cells(input: &Vec>, pos: Vec2, name: char) -> HashSet> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day12.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn parse_input(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_area_cost` is never used [INFO] [stdout] --> src/day12.rs:58:4 [INFO] [stdout] | [INFO] [stdout] 58 | fn get_area_cost(area: &Area) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_area_cost_p2` is never used [INFO] [stdout] --> src/day12.rs:71:4 [INFO] [stdout] | [INFO] [stdout] 71 | fn get_area_cost_p2(area: &Area) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day12.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn part1(areas: &Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day12.rs:98:8 [INFO] [stdout] | [INFO] [stdout] 98 | pub fn part2(areas: &Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day12` is never used [INFO] [stdout] --> src/day12.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | pub fn day12() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Machine` is never constructed [INFO] [stdout] --> src/day13.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Machine { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `input_to_vec2` is never used [INFO] [stdout] --> src/day13.rs:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | fn input_to_vec2(input: &str) -> Vec2 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day13.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn parse_input(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `A_COST` is never used [INFO] [stdout] --> src/day13.rs:39:7 [INFO] [stdout] | [INFO] [stdout] 39 | const A_COST: i64 = 3; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `B_COST` is never used [INFO] [stdout] --> src/day13.rs:40:7 [INFO] [stdout] | [INFO] [stdout] 40 | const B_COST: i64 = 1; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_machine` is never used [INFO] [stdout] --> src/day13.rs:42:4 [INFO] [stdout] | [INFO] [stdout] 42 | fn solve_machine(machine: &Machine) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_primes` is never used [INFO] [stdout] --> src/day13.rs:72:4 [INFO] [stdout] | [INFO] [stdout] 72 | fn get_primes(max: i64) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_prime_factors` is never used [INFO] [stdout] --> src/day13.rs:84:4 [INFO] [stdout] | [INFO] [stdout] 84 | fn get_prime_factors(num: i64, primes: &[i64]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_vec_float64` is never used [INFO] [stdout] --> src/day13.rs:98:4 [INFO] [stdout] | [INFO] [stdout] 98 | fn to_vec_float64(v: &Vec2) -> Vec2 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_machine_v2` is never used [INFO] [stdout] --> src/day13.rs:102:4 [INFO] [stdout] | [INFO] [stdout] 102 | fn solve_machine_v2(machine: &Machine) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day13.rs:139:8 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn part1(machines: &[Machine]) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day13.rs:146:8 [INFO] [stdout] | [INFO] [stdout] 146 | pub fn part2(machines: &[Machine], offset: i64) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day13` is never used [INFO] [stdout] --> src/day13.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn day13() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Robot` is never used [INFO] [stdout] --> src/day14.rs:6:6 [INFO] [stdout] | [INFO] [stdout] 6 | type Robot = (Vec2, Vec2); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day14.rs:8:4 [INFO] [stdout] | [INFO] [stdout] 8 | fn parse_input(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `move_robots` is never used [INFO] [stdout] --> src/day14.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn move_robots(robots: &[Robot], room_size: Vec2, num_steps: i32) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_christmas_tree` is never used [INFO] [stdout] --> src/day14.rs:24:4 [INFO] [stdout] | [INFO] [stdout] 24 | fn is_christmas_tree(ps: &Vec>, room_size: Vec2) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_robots` is never used [INFO] [stdout] --> src/day14.rs:59:4 [INFO] [stdout] | [INFO] [stdout] 59 | fn print_robots(rs: &Vec>, room_size: Vec2) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day14.rs:81:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn part1(robots: &[Robot], room_size: Vec2) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day14.rs:100:4 [INFO] [stdout] | [INFO] [stdout] 100 | fn part2(robots: &[Robot], room_size: Vec2) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day14` is never used [INFO] [stdout] --> src/day14.rs:124:8 [INFO] [stdout] | [INFO] [stdout] 124 | pub fn day14() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_move` is never used [INFO] [stdout] --> src/day15.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 13 | impl Input { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 14 | fn get_move(&self) -> Vec2 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Inputs` is never used [INFO] [stdout] --> src/day15.rs:38:6 [INFO] [stdout] | [INFO] [stdout] 38 | type Inputs = Vec; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Obj` is never used [INFO] [stdout] --> src/day15.rs:41:6 [INFO] [stdout] | [INFO] [stdout] 41 | enum Obj { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/day15.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 49 | impl Obj { [INFO] [stdout] | -------- associated function in this implementation [INFO] [stdout] 50 | fn new(c: char) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Map` is never used [INFO] [stdout] --> src/day15.rs:71:6 [INFO] [stdout] | [INFO] [stdout] 71 | type Map = HashMap, Obj>; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `move_obj` is never used [INFO] [stdout] --> src/day15.rs:73:4 [INFO] [stdout] | [INFO] [stdout] 73 | fn move_obj(map: &mut Map, from: Vec2, to: Vec2) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day15.rs:78:4 [INFO] [stdout] | [INFO] [stdout] 78 | fn parse_input(input: &str) -> (Map, Inputs) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `widen_pos` is never used [INFO] [stdout] --> src/day15.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 97 | fn widen_pos(pos: Vec2) -> Vec2 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `widen_map` is never used [INFO] [stdout] --> src/day15.rs:101:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn widen_map(map: &Map) -> Map { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `move_object` is never used [INFO] [stdout] --> src/day15.rs:113:4 [INFO] [stdout] | [INFO] [stdout] 113 | fn move_object(pos: Vec2, dir: Vec2, map: &mut Map) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gps_coord` is never used [INFO] [stdout] --> src/day15.rs:148:4 [INFO] [stdout] | [INFO] [stdout] 148 | fn gps_coord(pos: Vec2) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day15.rs:152:4 [INFO] [stdout] | [INFO] [stdout] 152 | fn part1(map: &Map, inputs: &Inputs) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day15.rs:168:4 [INFO] [stdout] | [INFO] [stdout] 168 | fn part2(map: &Map, inputs: &Inputs) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day15` is never used [INFO] [stdout] --> src/day15.rs:187:8 [INFO] [stdout] | [INFO] [stdout] 187 | pub fn day15() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Path` is never used [INFO] [stdout] --> src/day16.rs:6:6 [INFO] [stdout] | [INFO] [stdout] 6 | type Path = HashSet>; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `State` is never constructed [INFO] [stdout] --> src/day16.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | struct State { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shortest_paths` is never used [INFO] [stdout] --> src/day16.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn shortest_paths(start: Vec2, end: Vec2, obstacles: &HashSet>) -> (Vec, i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day16.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn part1(start: Vec2, end: Vec2, obstacles: &HashSet>) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day16.rs:99:4 [INFO] [stdout] | [INFO] [stdout] 99 | fn part2(start: Vec2, end: Vec2, obstacles: &HashSet>) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day16.rs:113:4 [INFO] [stdout] | [INFO] [stdout] 113 | fn parse_input(input: &str) -> (Vec2, Vec2, HashSet>) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day16` is never used [INFO] [stdout] --> src/day16.rs:132:8 [INFO] [stdout] | [INFO] [stdout] 132 | pub fn day16() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Registers` is never used [INFO] [stdout] --> src/day17.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | type Registers = (i64, i64, i64); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `State` is never used [INFO] [stdout] --> src/day17.rs:5:6 [INFO] [stdout] | [INFO] [stdout] 5 | type State = (Registers, i32); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Program` is never used [INFO] [stdout] --> src/day17.rs:6:6 [INFO] [stdout] | [INFO] [stdout] 6 | type Program = Vec; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day17.rs:8:4 [INFO] [stdout] | [INFO] [stdout] 8 | fn parse_input(input: &str) -> (Registers, Program) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inc_pc` is never used [INFO] [stdout] --> src/day17.rs:33:4 [INFO] [stdout] | [INFO] [stdout] 33 | fn inc_pc(state: &State) -> State { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_pc` is never used [INFO] [stdout] --> src/day17.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn set_pc(state: &State, pc: i32) -> State { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_a` is never used [INFO] [stdout] --> src/day17.rs:41:4 [INFO] [stdout] | [INFO] [stdout] 41 | fn set_a(state: &State, a: i64) -> State { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_b` is never used [INFO] [stdout] --> src/day17.rs:45:4 [INFO] [stdout] | [INFO] [stdout] 45 | fn set_b(state: &State, b: i64) -> State { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_c` is never used [INFO] [stdout] --> src/day17.rs:49:4 [INFO] [stdout] | [INFO] [stdout] 49 | fn set_c(state: &State, c: i64) -> State { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_a` is never used [INFO] [stdout] --> src/day17.rs:53:4 [INFO] [stdout] | [INFO] [stdout] 53 | fn get_a(state: &State) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_b` is never used [INFO] [stdout] --> src/day17.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn get_b(state: &State) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_c` is never used [INFO] [stdout] --> src/day17.rs:62:4 [INFO] [stdout] | [INFO] [stdout] 62 | fn get_c(state: &State) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `combo_op` is never used [INFO] [stdout] --> src/day17.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn combo_op(state: &State, op: i32) -> i64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_opcode` is never used [INFO] [stdout] --> src/day17.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 77 | fn handle_opcode(state: &State, program: &Program) -> Option<(State, Option)> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day17.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 106 | fn part1(registers: &Registers, program: &Program) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day17.rs:124:4 [INFO] [stdout] | [INFO] [stdout] 124 | fn part2(program: &Program) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fmt_part1` is never used [INFO] [stdout] --> src/day17.rs:159:4 [INFO] [stdout] | [INFO] [stdout] 159 | fn fmt_part1(out: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day17` is never used [INFO] [stdout] --> src/day17.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn day17() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `State` is never constructed [INFO] [stdout] --> src/day18.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | struct State { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shortest_path` is never used [INFO] [stdout] --> src/day18.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn shortest_path(start: Vec2, end: Vec2, obstacles: &HashSet>, min: Vec2, max: Vec2) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day18.rs:70:4 [INFO] [stdout] | [INFO] [stdout] 70 | fn part1(falling: &Vec>, num_steps: usize, size: Vec2) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day18.rs:75:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn parse_input(input: &str) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day18.rs:82:4 [INFO] [stdout] | [INFO] [stdout] 82 | fn part2(falling: &Vec>, size: Vec2) -> Vec2 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day18` is never used [INFO] [stdout] --> src/day18.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn day18() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day19.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn parse_input(input: &str) -> (Vec<&str>, Vec<&str>) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `match_pattern` is never used [INFO] [stdout] --> src/day19.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn match_pattern<'a>(towels: &'a [&str], pattern: &'a str, memoize: &mut HashMap<&'a str, i64>) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day19.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn part1(towels: &Vec<&str>, patterns: &Vec<&str>) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day19.rs:42:4 [INFO] [stdout] | [INFO] [stdout] 42 | fn part2(towels: &Vec<&str>, patterns: &Vec<&str>) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day19` is never used [INFO] [stdout] --> src/day19.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn day19() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input_line` is never used [INFO] [stdout] --> src/day2.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn parse_input_line(line: &str) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_correct_report` is never used [INFO] [stdout] --> src/day2.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn is_correct_report(v: &[i32]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_correct_report_p2_v2` is never used [INFO] [stdout] --> src/day2.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn is_correct_report_p2_v2(v: &[i32]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day2.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn part1(input: &Vec>) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day2.rs:45:4 [INFO] [stdout] | [INFO] [stdout] 45 | fn part2(input: &Vec>) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day2` is never used [INFO] [stdout] --> src/day2.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn day2() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day20.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn parse_input(input: &str) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day20.rs:55:4 [INFO] [stdout] | [INFO] [stdout] 55 | fn part1(track: &Vec>, min_shortcut: i32, cheat_length: i32) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day20` is never used [INFO] [stdout] --> src/day20.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn day20() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Input` is never used [INFO] [stdout] --> src/day21.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | enum Input { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `repeat` is never used [INFO] [stdout] --> src/day21.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn repeat(num_times: i32, when_positive: T, when_negative: T) -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `input_sequences` is never used [INFO] [stdout] --> src/day21.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn input_sequences(targets: &Vec>, pos: Vec2, bad: Vec2) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `keypad_sequences` is never used [INFO] [stdout] --> src/day21.rs:63:4 [INFO] [stdout] | [INFO] [stdout] 63 | fn keypad_sequences(code: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dir_pad_sequences` is never used [INFO] [stdout] --> src/day21.rs:85:4 [INFO] [stdout] | [INFO] [stdout] 85 | fn dir_pad_sequences(code: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day21.rs:100:4 [INFO] [stdout] | [INFO] [stdout] 100 | fn part1(codes: &Vec<&str>) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day21` is never used [INFO] [stdout] --> src/day21.rs:126:8 [INFO] [stdout] | [INFO] [stdout] 126 | pub fn day21() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Input` is never used [INFO] [stdout] --> src/day21_2.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | enum Input { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_vec` is never used [INFO] [stdout] --> src/day21_2.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 16 | impl Input { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 17 | fn from_vec(v: Vec2) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `State` is never constructed [INFO] [stdout] --> src/day21_2.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | struct State<'a, T: Clone + std::fmt::Debug> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CostState` is never constructed [INFO] [stdout] --> src/day21_2.rs:65:8 [INFO] [stdout] | [INFO] [stdout] 65 | struct CostState { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shortest_path` is never used [INFO] [stdout] --> src/day21_2.rs:71:4 [INFO] [stdout] | [INFO] [stdout] 71 | fn shortest_path( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_dir_pad_target` is never used [INFO] [stdout] --> src/day21_2.rs:148:4 [INFO] [stdout] | [INFO] [stdout] 148 | fn get_dir_pad_target(input: &Input) -> Vec2 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `keypad_sequences` is never used [INFO] [stdout] --> src/day21_2.rs:158:4 [INFO] [stdout] | [INFO] [stdout] 158 | fn keypad_sequences( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PadId` is never used [INFO] [stdout] --> src/day21_2.rs:211:6 [INFO] [stdout] | [INFO] [stdout] 211 | enum PadId { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dir_pad_sequences` is never used [INFO] [stdout] --> src/day21_2.rs:217:4 [INFO] [stdout] | [INFO] [stdout] 217 | fn dir_pad_sequences( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day21_2.rs:274:4 [INFO] [stdout] | [INFO] [stdout] 274 | fn part1(codes: &Vec<&str>) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day21` is never used [INFO] [stdout] --> src/day21_2.rs:298:8 [INFO] [stdout] | [INFO] [stdout] 298 | pub fn day21() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mix` is never used [INFO] [stdout] --> src/day22.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn mix(n1: i64, n2: i64) -> i64 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prune` is never used [INFO] [stdout] --> src/day22.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn prune(n: i64) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `next_secret` is never used [INFO] [stdout] --> src/day22.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn next_secret(secret: i64) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ones` is never used [INFO] [stdout] --> src/day22.rs:46:4 [INFO] [stdout] | [INFO] [stdout] 46 | fn ones(n: i64) -> i64 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day22.rs:50:4 [INFO] [stdout] | [INFO] [stdout] 50 | fn part1(secrets: &[i64]) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day22.rs:63:4 [INFO] [stdout] | [INFO] [stdout] 63 | fn part2(secrets: &[i64]) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day22.rs:103:4 [INFO] [stdout] | [INFO] [stdout] 103 | fn parse_input(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day22` is never used [INFO] [stdout] --> src/day22.rs:114:8 [INFO] [stdout] | [INFO] [stdout] 114 | pub fn day22() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Link` is never used [INFO] [stdout] --> src/day23.rs:6:6 [INFO] [stdout] | [INFO] [stdout] 6 | type Link<'a> = (&'a str, &'a str); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day23.rs:8:4 [INFO] [stdout] | [INFO] [stdout] 8 | fn parse_input(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day23.rs:15:4 [INFO] [stdout] | [INFO] [stdout] 15 | fn part1(links: &Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day23.rs:54:4 [INFO] [stdout] | [INFO] [stdout] 54 | fn part2(links: &[Link]) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day23` is never used [INFO] [stdout] --> src/day23.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | pub fn day23() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/day24.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | struct Node<'a> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `NodeValues` is never used [INFO] [stdout] --> src/day24.rs:45:6 [INFO] [stdout] | [INFO] [stdout] 45 | type NodeValues<'a> = HashMap<&'a str, bool>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day24.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn parse_input(input: &str) -> (Vec, NodeValues) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `resolve_values` is never used [INFO] [stdout] --> src/day24.rs:74:4 [INFO] [stdout] | [INFO] [stdout] 74 | fn resolve_values<'a>(nodes: &'a Vec, values: &'a NodeValues) -> NodeValues<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day24.rs:123:4 [INFO] [stdout] | [INFO] [stdout] 123 | fn part1(nodes: &Vec, values: &NodeValues) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_graph` is never used [INFO] [stdout] --> src/day24.rs:161:4 [INFO] [stdout] | [INFO] [stdout] 161 | fn show_graph(node: &str, nodes: &Vec, values: &NodeValues) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_nodes` is never used [INFO] [stdout] --> src/day24.rs:207:4 [INFO] [stdout] | [INFO] [stdout] 207 | fn get_nodes<'a>(node: &'a str, nodes: &'a [Node]) -> Vec<&'a str> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_bit` is never used [INFO] [stdout] --> src/day24.rs:224:4 [INFO] [stdout] | [INFO] [stdout] 224 | fn test_bit<'a>( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `swap_nodes` is never used [INFO] [stdout] --> src/day24.rs:297:4 [INFO] [stdout] | [INFO] [stdout] 297 | fn swap_nodes<'a>(nodes: &mut Vec>, node0: &'a str, node1: &'a str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day24.rs:307:4 [INFO] [stdout] | [INFO] [stdout] 307 | fn part2(nodes: &Vec) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day24` is never used [INFO] [stdout] --> src/day24.rs:499:8 [INFO] [stdout] | [INFO] [stdout] 499 | pub fn day24() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Schematic` is never used [INFO] [stdout] --> src/day25.rs:5:6 [INFO] [stdout] | [INFO] [stdout] 5 | type Schematic = [i32; 5]; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day25.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn parse_input(input: &str) -> (Vec, Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day25.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn part1(keys: &Vec, locks: &Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day25` is never used [INFO] [stdout] --> src/day25.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn day25() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day3.rs:4:4 [INFO] [stdout] | [INFO] [stdout] 4 | fn part1(input: &str) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day3.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn part2(input: &str) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day3` is never used [INFO] [stdout] --> src/day3.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn day3() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_pattern` is never used [INFO] [stdout] --> src/day4.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn check_pattern(input: &Vec>, x: usize, y: usize, dx: i32, dy: i32, search: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1_v2` is never used [INFO] [stdout] --> src/day4.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn part1_v2(input: &Vec>) -> i32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_m_and_s` is never used [INFO] [stdout] --> src/day4.rs:43:4 [INFO] [stdout] | [INFO] [stdout] 43 | fn is_m_and_s(input: &Vec>, x: usize, y: usize, (dx, dy): (i32, i32)) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day4.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn part2(input: &Vec>) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day4` is never used [INFO] [stdout] --> src/day4.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn day4() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_update` is never used [INFO] [stdout] --> src/day5.rs:4:4 [INFO] [stdout] | [INFO] [stdout] 4 | fn is_valid_update(update: &Vec, rules: &Vec<(i32, i32)>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `middle_sum` is never used [INFO] [stdout] --> src/day5.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn middle_sum(v: &Vec<&Vec>) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day5.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn part1(rules: &Vec<(i32, i32)>, updates: &Vec>) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fix_update` is never used [INFO] [stdout] --> src/day5.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn fix_update(rules: &Vec<(i32, i32)>, update: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day5.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn part2(rules: &Vec<(i32, i32)>, updates: &Vec>) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day5.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn parse_input(input: &str) -> (Vec<(i32, i32)>, Vec>) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day5` is never used [INFO] [stdout] --> src/day5.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn day5() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Pos` is never used [INFO] [stdout] --> src/day6.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type Pos = (i32, i32); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day6.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn parse_input(input: &str) -> (Pos, HashSet, Pos) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add` is never used [INFO] [stdout] --> src/day6.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn add((x0, y0): Pos, (x1, y1): Pos) -> Pos { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `subtract` is never used [INFO] [stdout] --> src/day6.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn subtract((x0, y0): Pos, (x1, y1): Pos) -> Pos { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `turn_right` is never used [INFO] [stdout] --> src/day6.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn turn_right((dx, dy): Pos) -> Pos { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `turn_left` is never used [INFO] [stdout] --> src/day6.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn turn_left((dx, dy): Pos) -> Pos { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `in_bounds` is never used [INFO] [stdout] --> src/day6.rs:42:4 [INFO] [stdout] | [INFO] [stdout] 42 | fn in_bounds((px, py): Pos, (width, height): Pos) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day6.rs:46:4 [INFO] [stdout] | [INFO] [stdout] 46 | fn part1(guard_pos: Pos, forward: Pos, obstacles: &HashSet, size: Pos) -> Option>> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `backtrack` is never used [INFO] [stdout] --> src/day6.rs:73:4 [INFO] [stdout] | [INFO] [stdout] 73 | fn backtrack(pos: Pos, forward: Pos, obstacles: &HashSet, size: Pos, visited: &mut HashMap>) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day6.rs:99:4 [INFO] [stdout] | [INFO] [stdout] 99 | fn part2(guard_pos: Pos, obstacles: &HashSet, size: Pos) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2_v2` is never used [INFO] [stdout] --> src/day6.rs:134:4 [INFO] [stdout] | [INFO] [stdout] 134 | fn part2_v2(guard_pos: Pos, obstacles: &HashSet, size: Pos) -> i32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day6` is never used [INFO] [stdout] --> src/day6.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn day6() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `concat_numbers` is never used [INFO] [stdout] --> src/day7.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn concat_numbers(num1: i64, num2: i64) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_operations` is never used [INFO] [stdout] --> src/day7.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn test_operations(target: &i64, current_sum: i64, nums: &[i64], ext: bool) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day7.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn part1(input: &Vec<(i64, Vec)>) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day7.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn part2(input: &Vec<(i64, Vec)>) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day7.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn parse_input(input: &str) -> Vec<(i64, Vec)> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day7` is never used [INFO] [stdout] --> src/day7.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn day7() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day8.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn part1(towers: &HashMap>>, size: Vec2) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_antinodes` is never used [INFO] [stdout] --> src/day8.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn add_antinodes(origin: Vec2, delta: Vec2, antinodes: &mut HashSet>, size: Vec2) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day8.rs:43:4 [INFO] [stdout] | [INFO] [stdout] 43 | fn part2(towers: &HashMap>>, size: Vec2) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day8.rs:61:4 [INFO] [stdout] | [INFO] [stdout] 61 | fn parse_input(input: &str) -> (HashMap>>, Vec2) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day8` is never used [INFO] [stdout] --> src/day8.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn day8() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `DiskBlock` is never used [INFO] [stdout] --> src/day9.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum DiskBlock { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DiskBlock` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DiskChunk` is never used [INFO] [stdout] --> src/day9.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type DiskChunk = (DiskBlock, u64, u64); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `checksum_disk` is never used [INFO] [stdout] --> src/day9.rs:11:4 [INFO] [stdout] | [INFO] [stdout] 11 | fn checksum_disk(disk: &Vec) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day9.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn part1(input: &Vec) -> u64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day9.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn part2(input: &Vec) -> u64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input1` is never used [INFO] [stdout] --> src/day9.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn parse_input1(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input2` is never used [INFO] [stdout] --> src/day9.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn parse_input2(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day9` is never used [INFO] [stdout] --> src/day9.rs:108:8 [INFO] [stdout] | [INFO] [stdout] 108 | pub fn day9() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_grid` is never used [INFO] [stdout] --> src/util/print_grid.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn print_grid(grid: &HashMap, TV>, size: Vec2) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_grid_hashset` is never used [INFO] [stdout] --> src/util/print_grid.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn print_grid_hashset(grid: &HashSet>, size: Vec2) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `transpose` is never used [INFO] [stdout] --> src/util/str_util.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn transpose(s: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `one`, `max`, `min`, and `in_bounds` are never used [INFO] [stdout] --> src/util/vec2.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl + Ord> Vec2 { [INFO] [stdout] | -------------------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn one() -> Vec2 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn max(self, other: Self) -> Vec2 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn min(self, other: Self) -> Vec2 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn in_bounds(self, min: Self, max: Self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `abs`, `manhattan_distance`, and `all_dirs` are never used [INFO] [stdout] --> src/util/vec2.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 98 | impl Vec2 { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 99 | pub fn abs(&self) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn manhattan_distance(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn all_dirs() -> Vec> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `B` should have a snake case name [INFO] [stdout] --> src/day13.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | let B = (a.y * p.x - a.x * p.y) / (a.y * b.x - a.x * b.y); [INFO] [stdout] | ^ help: convert the identifier to snake case: `b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `A` should have a snake case name [INFO] [stdout] --> src/day13.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | let A = (p.y - B * b.y) / a.y; [INFO] [stdout] | ^ help: convert the identifier to snake case: `a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:462:23 [INFO] [stdout] | [INFO] [stdout] 462 | swap_0.clone().0.clone(), [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 `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:463:23 [INFO] [stdout] | [INFO] [stdout] 463 | swap_0.clone().1.clone(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:464:23 [INFO] [stdout] | [INFO] [stdout] 464 | swap_1.clone().0.clone(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:465:23 [INFO] [stdout] | [INFO] [stdout] 465 | swap_1.clone().1.clone(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:466:23 [INFO] [stdout] | [INFO] [stdout] 466 | swap_2.clone().0.clone(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:467:23 [INFO] [stdout] | [INFO] [stdout] 467 | swap_2.clone().1.clone(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:468:23 [INFO] [stdout] | [INFO] [stdout] 468 | swap_3.clone().0.clone(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:469:23 [INFO] [stdout] | [INFO] [stdout] 469 | swap_3.clone().1.clone(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/day21_2.rs:264:22 [INFO] [stdout] | [INFO] [stdout] 264 | |&state, context| (0, state) [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/day22.rs:55:17 [INFO] [stdout] | [INFO] [stdout] 55 | for i in 0..2000 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `d0` is never read [INFO] [stdout] --> src/day22.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | let mut d0 = None; [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: unused variable: `c` [INFO] [stdout] --> src/day8.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | for (c, ts) in towers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/day8.rs:46:10 [INFO] [stdout] | [INFO] [stdout] 46 | for (c, ts) in towers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input_line` is never used [INFO] [stdout] --> src/day1.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn parse_input_line(line: &str) -> Option<(i32, i32)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day1.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn part1(left: &Vec, right: &Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day1.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn part2(left: &Vec, right: &Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day1` is never used [INFO] [stdout] --> src/day1.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | pub fn day1() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day10` is never used [INFO] [stdout] --> src/day10.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn day10() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `split_stone_2` is never used [INFO] [stdout] --> src/day11.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn split_stone_2(stone: u64) -> (u64, u64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blink_stone` is never used [INFO] [stdout] --> src/day11.rs:24:4 [INFO] [stdout] | [INFO] [stdout] 24 | fn blink_stone(stone: u64, max_level: i32, level: i32, memoize: &mut HashMap<(u64, i32), u64>) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day11.rs:55:4 [INFO] [stdout] | [INFO] [stdout] 55 | fn part2(stones: &Vec, max_level: i32) -> u64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day11` is never used [INFO] [stdout] --> src/day11.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn day11() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day12` is never used [INFO] [stdout] --> src/day12.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | pub fn day12() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_primes` is never used [INFO] [stdout] --> src/day13.rs:72:4 [INFO] [stdout] | [INFO] [stdout] 72 | fn get_primes(max: i64) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_prime_factors` is never used [INFO] [stdout] --> src/day13.rs:84:4 [INFO] [stdout] | [INFO] [stdout] 84 | fn get_prime_factors(num: i64, primes: &[i64]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day13` is never used [INFO] [stdout] --> src/day13.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn day13() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_christmas_tree` is never used [INFO] [stdout] --> src/day14.rs:24:4 [INFO] [stdout] | [INFO] [stdout] 24 | fn is_christmas_tree(ps: &Vec>, room_size: Vec2) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_robots` is never used [INFO] [stdout] --> src/day14.rs:59:4 [INFO] [stdout] | [INFO] [stdout] 59 | fn print_robots(rs: &Vec>, room_size: Vec2) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day14.rs:100:4 [INFO] [stdout] | [INFO] [stdout] 100 | fn part2(robots: &[Robot], room_size: Vec2) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day14` is never used [INFO] [stdout] --> src/day14.rs:124:8 [INFO] [stdout] | [INFO] [stdout] 124 | pub fn day14() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day15` is never used [INFO] [stdout] --> src/day15.rs:187:8 [INFO] [stdout] | [INFO] [stdout] 187 | pub fn day15() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day16` is never used [INFO] [stdout] --> src/day16.rs:132:8 [INFO] [stdout] | [INFO] [stdout] 132 | pub fn day16() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day17` is never used [INFO] [stdout] --> src/day17.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn day17() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day18` is never used [INFO] [stdout] --> src/day18.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn day18() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day19` is never used [INFO] [stdout] --> src/day19.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn day19() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input_line` is never used [INFO] [stdout] --> src/day2.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn parse_input_line(line: &str) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day2.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn part1(input: &Vec>) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day2.rs:45:4 [INFO] [stdout] | [INFO] [stdout] 45 | fn part2(input: &Vec>) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day2` is never used [INFO] [stdout] --> src/day2.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn day2() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day20` is never used [INFO] [stdout] --> src/day20.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn day20() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day21` is never used [INFO] [stdout] --> src/day21.rs:126:8 [INFO] [stdout] | [INFO] [stdout] 126 | pub fn day21() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Numpad` is never constructed [INFO] [stdout] --> src/day21_2.rs:212:5 [INFO] [stdout] | [INFO] [stdout] 211 | enum PadId { [INFO] [stdout] | ----- variant in this enum [INFO] [stdout] 212 | Numpad, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PadId` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day21` is never used [INFO] [stdout] --> src/day21_2.rs:298:8 [INFO] [stdout] | [INFO] [stdout] 298 | pub fn day21() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day22` is never used [INFO] [stdout] --> src/day22.rs:114:8 [INFO] [stdout] | [INFO] [stdout] 114 | pub fn day22() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day23` is never used [INFO] [stdout] --> src/day23.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | pub fn day23() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_nodes` is never used [INFO] [stdout] --> src/day24.rs:207:4 [INFO] [stdout] | [INFO] [stdout] 207 | fn get_nodes<'a>(node: &'a str, nodes: &'a [Node]) -> Vec<&'a str> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_bit` is never used [INFO] [stdout] --> src/day24.rs:224:4 [INFO] [stdout] | [INFO] [stdout] 224 | fn test_bit<'a>( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day24.rs:307:4 [INFO] [stdout] | [INFO] [stdout] 307 | fn part2(nodes: &Vec) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day24` is never used [INFO] [stdout] --> src/day24.rs:499:8 [INFO] [stdout] | [INFO] [stdout] 499 | pub fn day24() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day25` is never used [INFO] [stdout] --> src/day25.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn day25() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day3` is never used [INFO] [stdout] --> src/day3.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn day3() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day4` is never used [INFO] [stdout] --> src/day4.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn day4() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day5` is never used [INFO] [stdout] --> src/day5.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn day5() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `subtract` is never used [INFO] [stdout] --> src/day6.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn subtract((x0, y0): Pos, (x1, y1): Pos) -> Pos { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `turn_left` is never used [INFO] [stdout] --> src/day6.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn turn_left((dx, dy): Pos) -> Pos { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `backtrack` is never used [INFO] [stdout] --> src/day6.rs:73:4 [INFO] [stdout] | [INFO] [stdout] 73 | fn backtrack(pos: Pos, forward: Pos, obstacles: &HashSet, size: Pos, visited: &mut HashMap>) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day6.rs:99:4 [INFO] [stdout] | [INFO] [stdout] 99 | fn part2(guard_pos: Pos, obstacles: &HashSet, size: Pos) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day6` is never used [INFO] [stdout] --> src/day6.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn day6() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day7` is never used [INFO] [stdout] --> src/day7.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn day7() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day8` is never used [INFO] [stdout] --> src/day8.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn day8() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `day9` is never used [INFO] [stdout] --> src/day9.rs:108:8 [INFO] [stdout] | [INFO] [stdout] 108 | pub fn day9() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_grid` is never used [INFO] [stdout] --> src/util/print_grid.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn print_grid(grid: &HashMap, TV>, size: Vec2) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_grid_hashset` is never used [INFO] [stdout] --> src/util/print_grid.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn print_grid_hashset(grid: &HashSet>, size: Vec2) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `max` and `min` are never used [INFO] [stdout] --> src/util/vec2.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl + Ord> Vec2 { [INFO] [stdout] | -------------------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn max(self, other: Self) -> Vec2 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn min(self, other: Self) -> Vec2 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `B` should have a snake case name [INFO] [stdout] --> src/day13.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | let B = (a.y * p.x - a.x * p.y) / (a.y * b.x - a.x * b.y); [INFO] [stdout] | ^ help: convert the identifier to snake case: `b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `A` should have a snake case name [INFO] [stdout] --> src/day13.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | let A = (p.y - B * b.y) / a.y; [INFO] [stdout] | ^ help: convert the identifier to snake case: `a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:462:23 [INFO] [stdout] | [INFO] [stdout] 462 | swap_0.clone().0.clone(), [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 `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:463:23 [INFO] [stdout] | [INFO] [stdout] 463 | swap_0.clone().1.clone(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:464:23 [INFO] [stdout] | [INFO] [stdout] 464 | swap_1.clone().0.clone(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:465:23 [INFO] [stdout] | [INFO] [stdout] 465 | swap_1.clone().1.clone(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:466:23 [INFO] [stdout] | [INFO] [stdout] 466 | swap_2.clone().0.clone(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:467:23 [INFO] [stdout] | [INFO] [stdout] 467 | swap_2.clone().1.clone(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:468:23 [INFO] [stdout] | [INFO] [stdout] 468 | swap_3.clone().0.clone(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `(String, String)` instead of cloning the inner type [INFO] [stdout] --> src/day24.rs:469:23 [INFO] [stdout] | [INFO] [stdout] 469 | swap_3.clone().1.clone(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.03s [INFO] running `Command { std: "docker" "inspect" "99e40782cb885f10bdbfb3f5364870ab7a0dec843f71e7078ea14be72046084e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "99e40782cb885f10bdbfb3f5364870ab7a0dec843f71e7078ea14be72046084e", kill_on_drop: false }` [INFO] [stdout] 99e40782cb885f10bdbfb3f5364870ab7a0dec843f71e7078ea14be72046084e