[INFO] cloning repository https://github.com/mahmudsudo/aoc_2024_rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mahmudsudo/aoc_2024_rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmahmudsudo%2Faoc_2024_rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmahmudsudo%2Faoc_2024_rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b6f14e4968b917acd9116a8ee6e1dab7dbb895d5 [INFO] testing mahmudsudo/aoc_2024_rs against master#cdb45c87e2cd43495379f7e867e3cc15dcee9f93 for pr-145838-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmahmudsudo%2Faoc_2024_rs" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/mahmudsudo/aoc_2024_rs [INFO] finished tweaking git repo https://github.com/mahmudsudo/aoc_2024_rs [INFO] tweaked toml for git repo https://github.com/mahmudsudo/aoc_2024_rs written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/mahmudsudo/aoc_2024_rs on toolchain cdb45c87e2cd43495379f7e867e3cc15dcee9f93 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/mahmudsudo/aoc_2024_rs 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" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b774443d0ecaad2ab33887ce232d316d14af439896673172570a0baab8f283bc [INFO] running `Command { std: "docker" "start" "-a" "b774443d0ecaad2ab33887ce232d316d14af439896673172570a0baab8f283bc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b774443d0ecaad2ab33887ce232d316d14af439896673172570a0baab8f283bc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b774443d0ecaad2ab33887ce232d316d14af439896673172570a0baab8f283bc", kill_on_drop: false }` [INFO] [stdout] b774443d0ecaad2ab33887ce232d316d14af439896673172570a0baab8f283bc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 178b412d3db5cdbcd7e6ff3c98ab3f550bc03e58b46d393dd56195b670d4d836 [INFO] running `Command { std: "docker" "start" "-a" "178b412d3db5cdbcd7e6ff3c98ab3f550bc03e58b46d393dd56195b670d4d836", kill_on_drop: false }` [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling aoc_2024_rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/day4.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/day6.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start_dir` [INFO] [stdout] --> src/day6.rs:73:21 [INFO] [stdout] | [INFO] [stdout] 73 | let (start_pos, start_dir) = find_starting_info(map); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_dir` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dx` [INFO] [stdout] --> src/day8.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | let dx = far.x - near.x; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_dx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dy` [INFO] [stdout] --> src/day8.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | let dy = far.y - near.y; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_dy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day1.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn solve_part1() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day1.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn solve_part2()-> i64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_total_distance` is never used [INFO] [stdout] --> src/day1.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn calculate_total_distance(input: &str) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_similarity_score` is never used [INFO] [stdout] --> src/day1.rs:48:4 [INFO] [stdout] | [INFO] [stdout] 48 | fn calculate_similarity_score(input: &str) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day2.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn solve_part1() -> usize{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day2.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn solve_part2() -> usize{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_safe` is never used [INFO] [stdout] --> src/day2.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn is_safe(levels: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_safe_with_dampener` is never used [INFO] [stdout] --> src/day2.rs:71:4 [INFO] [stdout] | [INFO] [stdout] 71 | fn is_safe_with_dampener(levels: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day3.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn solve_part1() -> i32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Instruction` is never used [INFO] [stdout] --> src/day3.rs:21:6 [INFO] [stdout] | [INFO] [stdout] 21 | enum Instruction { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_instructions` is never used [INFO] [stdout] --> src/day3.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn parse_instructions(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day3.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn solve_part2() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `Input` is never used [INFO] [stdout] --> src/day4.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | const Input :&str = include_str!("../inputs/day4.txt"); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_xmas` is never used [INFO] [stdout] --> src/day4.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn count_xmas(input: &str) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_xmas` is never used [INFO] [stdout] --> src/day4.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn check_xmas(grid: &[Vec], i: usize, j: usize, di: i32, dj: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_x_mas` is never used [INFO] [stdout] --> src/day4.rs:59:4 [INFO] [stdout] | [INFO] [stdout] 59 | fn count_x_mas(input: &str) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_x_mas` is never used [INFO] [stdout] --> src/day4.rs:78:4 [INFO] [stdout] | [INFO] [stdout] 78 | fn check_x_mas(grid: &[Vec], i: usize, j: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day4.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn solve_part1() -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day4.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | pub fn solve_part2() -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day5.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn parse_input(input: &str) -> (Vec<(u32, u32)>, Vec>) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_order` is never used [INFO] [stdout] --> src/day5.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn is_valid_order(update: &[u32], rules: &[(u32, u32)]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `topological_sort` is never used [INFO] [stdout] --> src/day5.rs:49:4 [INFO] [stdout] | [INFO] [stdout] 49 | fn topological_sort(pages: &[u32], rules: &[(u32, u32)]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day5.rs:97:8 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn solve_part1() -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day5.rs:109:8 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn solve_part2() -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Direction` is never used [INFO] [stdout] --> src/day6.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | enum Direction { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `turn_right` and `move_position` are never used [INFO] [stdout] --> src/day6.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 11 | impl Direction { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 12 | fn turn_right(&self) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | fn move_position(&self, (x, y): (i32, i32)) -> (i32, i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_guard_patrol` is never used [INFO] [stdout] --> src/day6.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn solve_guard_patrol(map: &Vec>) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_guard_patrol_loop_positions` is never used [INFO] [stdout] --> src/day6.rs:72:4 [INFO] [stdout] | [INFO] [stdout] 72 | fn solve_guard_patrol_loop_positions(map: &Vec>) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `creates_loop` is never used [INFO] [stdout] --> src/day6.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 97 | fn creates_loop(map: &Vec>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_starting_info` is never used [INFO] [stdout] --> src/day6.rs:135:4 [INFO] [stdout] | [INFO] [stdout] 135 | fn find_starting_info(map: &Vec>) -> ((i32, i32), Direction) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_out_of_bounds` is never used [INFO] [stdout] --> src/day6.rs:150:4 [INFO] [stdout] | [INFO] [stdout] 150 | fn is_out_of_bounds(map: &Vec>, (x, y): (i32, i32)) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_blocked` is never used [INFO] [stdout] --> src/day6.rs:154:4 [INFO] [stdout] | [INFO] [stdout] 154 | fn is_blocked(map: &Vec>, (x, y): (i32, i32)) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day6.rs:158:4 [INFO] [stdout] | [INFO] [stdout] 158 | fn parse_input(input: &str) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day6.rs:162:8 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn solve_part1() -> usize{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day6.rs:165:8 [INFO] [stdout] | [INFO] [stdout] 165 | pub fn solve_part2() -> usize{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Equation` is never constructed [INFO] [stdout] --> src/day7.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | struct Equation { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `concatenate_numbers` is never used [INFO] [stdout] --> src/day7.rs:10:4 [INFO] [stdout] | [INFO] [stdout] 10 | fn concatenate_numbers(a: i64, b: i64) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `evaluate_expression` is never used [INFO] [stdout] --> src/day7.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn evaluate_expression(numbers: &[i64], operators: &[char]) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_operator_combinations` is never used [INFO] [stdout] --> src/day7.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn generate_operator_combinations(length: usize) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_equation` is never used [INFO] [stdout] --> src/day7.rs:60:4 [INFO] [stdout] | [INFO] [stdout] 60 | fn solve_equation(equation: &Equation) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day7.rs:73:4 [INFO] [stdout] | [INFO] [stdout] 73 | fn parse_input(filename: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day7.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn solve_part1()->i64{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day7.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn solve_part2()->i64{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Point` is never constructed [INFO] [stdout] --> src/day8.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct Point { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/day8.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 9 | impl Point { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 10 | fn new(x: i32, y: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_antenna_map` is never used [INFO] [stdout] --> src/day8.rs:15:4 [INFO] [stdout] | [INFO] [stdout] 15 | fn parse_antenna_map(input: &str) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_antinode` is never used [INFO] [stdout] --> src/day8.rs:32:4 [INFO] [stdout] | [INFO] [stdout] 32 | fn get_antinode(near: Point, far: Point) -> Point { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_antinodes` is never used [INFO] [stdout] --> src/day8.rs:44:4 [INFO] [stdout] | [INFO] [stdout] 44 | fn calculate_antinodes(antennas: &[Point]) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_antinodes_in_bounds` is never used [INFO] [stdout] --> src/day8.rs:68:4 [INFO] [stdout] | [INFO] [stdout] 68 | fn count_antinodes_in_bounds(input: &str) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_collinear` is never used [INFO] [stdout] --> src/day8.rs:95:4 [INFO] [stdout] | [INFO] [stdout] 95 | fn is_collinear(p1: Point, p2: Point, p3: Point) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_antinodes` is never used [INFO] [stdout] --> src/day8.rs:102:4 [INFO] [stdout] | [INFO] [stdout] 102 | fn find_antinodes(antennas: &[Point], width: i32, height: i32) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_antinodes_in_bounds2` is never used [INFO] [stdout] --> src/day8.rs:129:4 [INFO] [stdout] | [INFO] [stdout] 129 | fn count_antinodes_in_bounds2(input: &str) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day8.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn solve_part1() -> usize{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day8.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | pub fn solve_part2() -> usize{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compact_disk` is never used [INFO] [stdout] --> src/day9.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn compact_disk(disk: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_disk_map` is never used [INFO] [stdout] --> src/day9.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn parse_disk_map(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expand_disk_map` is never used [INFO] [stdout] --> src/day9.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn expand_disk_map(lengths: &[u32]) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `File` is never constructed [INFO] [stdout] --> src/day9.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 50 | struct File { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_files` is never used [INFO] [stdout] --> src/day9.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn find_files(disk: &[Option]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_free_space` is never used [INFO] [stdout] --> src/day9.rs:76:4 [INFO] [stdout] | [INFO] [stdout] 76 | fn find_free_space(disk: &[Option], start: usize, needed: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compact_disk_whole_files` is never used [INFO] [stdout] --> src/day9.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 97 | fn compact_disk_whole_files(disk: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_checksum` is never used [INFO] [stdout] --> src/day9.rs:112:4 [INFO] [stdout] | [INFO] [stdout] 112 | fn calculate_checksum(disk: &[Option]) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day9.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | pub fn solve_part2() -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day9.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn solve_part1() -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Point` is never constructed [INFO] [stdout] --> src/day10.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct Point { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `neighbors` are never used [INFO] [stdout] --> src/day10.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 9 | impl Point { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 10 | fn new(x: i32, y: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | fn neighbors(&self) -> impl Iterator + '_ { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Grid` is never constructed [INFO] [stdout] --> src/day10.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Grid { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/day10.rs:27:11 [INFO] [stdout] | [INFO] [stdout] 26 | impl Grid { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 27 | pub fn from_str(input: &str) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | fn get(&self, point: Point) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | fn find_trailheads(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | fn get_valid_neighbors(&self, point: Point) -> impl Iterator + '_ { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | fn find_reachable_nines(&self, start: Point) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | fn count_distinct_paths(&self, start: Point) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn solve_part1(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn solve_part2(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheKey` is never constructed [INFO] [stdout] --> src/day11.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct CacheKey { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blink` is never used [INFO] [stdout] --> src/day11.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn blink(stone: u64, n: usize, cache: &mut HashMap) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day11.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn parse_input(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day11.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn solve_part1() -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Point` is never used [INFO] [stdout] --> src/day12.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | type Point = (i32, i32); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DIRECTIONS` is never used [INFO] [stdout] --> src/day12.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const DIRECTIONS: [(i32, i32); 4] = [(1, 0), (0, 1), (-1, 0), (0, -1)]; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CELL_SIZE` is never used [INFO] [stdout] --> src/day12.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const CELL_SIZE: usize = 3; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Region` is never constructed [INFO] [stdout] --> src/day12.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Region { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `price`, and `side_price` are never used [INFO] [stdout] --> src/day12.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 15 | impl Region { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 16 | fn new(idx: char, start_position: Point) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | fn price(&self) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | fn side_price(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Field` is never constructed [INFO] [stdout] --> src/day12.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct Field { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/day12.rs:44:11 [INFO] [stdout] | [INFO] [stdout] 43 | impl Field { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 44 | pub fn new(field_map: Vec>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | fn fill_region(&mut self, start: Point, remaining: &mut HashSet) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | fn neighbourhood(&self, position: Point) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | fn count_corners(&self, position: Point) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | fn out_of_bounds(&self, position: Point) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn price(&self) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn bulk_price(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `Input` should have an upper case name [INFO] [stdout] --> src/day4.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | const Input :&str = include_str!("../inputs/day4.txt"); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 3 - const Input :&str = include_str!("../inputs/day4.txt"); [INFO] [stdout] 3 + const INPUT :&str = include_str!("../inputs/day4.txt"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.77s [INFO] running `Command { std: "docker" "inspect" "178b412d3db5cdbcd7e6ff3c98ab3f550bc03e58b46d393dd56195b670d4d836", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "178b412d3db5cdbcd7e6ff3c98ab3f550bc03e58b46d393dd56195b670d4d836", kill_on_drop: false }` [INFO] [stdout] 178b412d3db5cdbcd7e6ff3c98ab3f550bc03e58b46d393dd56195b670d4d836 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 59897d713233572b0e27834e756297a4611ac3ad43dd2a4827e9db977732a51b [INFO] running `Command { std: "docker" "start" "-a" "59897d713233572b0e27834e756297a4611ac3ad43dd2a4827e9db977732a51b", kill_on_drop: false }` [INFO] [stderr] Compiling aoc_2024_rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/day4.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/day6.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start_dir` [INFO] [stdout] --> src/day6.rs:73:21 [INFO] [stdout] | [INFO] [stdout] 73 | let (start_pos, start_dir) = find_starting_info(map); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_dir` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dx` [INFO] [stdout] --> src/day8.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | let dx = far.x - near.x; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_dx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dy` [INFO] [stdout] --> src/day8.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | let dy = far.y - near.y; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_dy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day1.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn solve_part1() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day1.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn solve_part2()-> i64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_total_distance` is never used [INFO] [stdout] --> src/day1.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn calculate_total_distance(input: &str) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_similarity_score` is never used [INFO] [stdout] --> src/day1.rs:48:4 [INFO] [stdout] | [INFO] [stdout] 48 | fn calculate_similarity_score(input: &str) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day2.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn solve_part1() -> usize{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day2.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn solve_part2() -> usize{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_safe` is never used [INFO] [stdout] --> src/day2.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn is_safe(levels: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_safe_with_dampener` is never used [INFO] [stdout] --> src/day2.rs:71:4 [INFO] [stdout] | [INFO] [stdout] 71 | fn is_safe_with_dampener(levels: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day3.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn solve_part1() -> i32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Instruction` is never used [INFO] [stdout] --> src/day3.rs:21:6 [INFO] [stdout] | [INFO] [stdout] 21 | enum Instruction { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_instructions` is never used [INFO] [stdout] --> src/day3.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn parse_instructions(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day3.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn solve_part2() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `Input` is never used [INFO] [stdout] --> src/day4.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | const Input :&str = include_str!("../inputs/day4.txt"); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_xmas` is never used [INFO] [stdout] --> src/day4.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn count_xmas(input: &str) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_xmas` is never used [INFO] [stdout] --> src/day4.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn check_xmas(grid: &[Vec], i: usize, j: usize, di: i32, dj: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_x_mas` is never used [INFO] [stdout] --> src/day4.rs:59:4 [INFO] [stdout] | [INFO] [stdout] 59 | fn count_x_mas(input: &str) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_x_mas` is never used [INFO] [stdout] --> src/day4.rs:78:4 [INFO] [stdout] | [INFO] [stdout] 78 | fn check_x_mas(grid: &[Vec], i: usize, j: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day4.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn solve_part1() -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day4.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | pub fn solve_part2() -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day5.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn parse_input(input: &str) -> (Vec<(u32, u32)>, Vec>) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_order` is never used [INFO] [stdout] --> src/day5.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn is_valid_order(update: &[u32], rules: &[(u32, u32)]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `topological_sort` is never used [INFO] [stdout] --> src/day5.rs:49:4 [INFO] [stdout] | [INFO] [stdout] 49 | fn topological_sort(pages: &[u32], rules: &[(u32, u32)]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day5.rs:97:8 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn solve_part1() -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day5.rs:109:8 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn solve_part2() -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Direction` is never used [INFO] [stdout] --> src/day6.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | enum Direction { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `turn_right` and `move_position` are never used [INFO] [stdout] --> src/day6.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 11 | impl Direction { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 12 | fn turn_right(&self) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | fn move_position(&self, (x, y): (i32, i32)) -> (i32, i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_guard_patrol` is never used [INFO] [stdout] --> src/day6.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn solve_guard_patrol(map: &Vec>) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_guard_patrol_loop_positions` is never used [INFO] [stdout] --> src/day6.rs:72:4 [INFO] [stdout] | [INFO] [stdout] 72 | fn solve_guard_patrol_loop_positions(map: &Vec>) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `creates_loop` is never used [INFO] [stdout] --> src/day6.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 97 | fn creates_loop(map: &Vec>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_starting_info` is never used [INFO] [stdout] --> src/day6.rs:135:4 [INFO] [stdout] | [INFO] [stdout] 135 | fn find_starting_info(map: &Vec>) -> ((i32, i32), Direction) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_out_of_bounds` is never used [INFO] [stdout] --> src/day6.rs:150:4 [INFO] [stdout] | [INFO] [stdout] 150 | fn is_out_of_bounds(map: &Vec>, (x, y): (i32, i32)) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_blocked` is never used [INFO] [stdout] --> src/day6.rs:154:4 [INFO] [stdout] | [INFO] [stdout] 154 | fn is_blocked(map: &Vec>, (x, y): (i32, i32)) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day6.rs:158:4 [INFO] [stdout] | [INFO] [stdout] 158 | fn parse_input(input: &str) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day6.rs:162:8 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn solve_part1() -> usize{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day6.rs:165:8 [INFO] [stdout] | [INFO] [stdout] 165 | pub fn solve_part2() -> usize{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Equation` is never constructed [INFO] [stdout] --> src/day7.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | struct Equation { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `concatenate_numbers` is never used [INFO] [stdout] --> src/day7.rs:10:4 [INFO] [stdout] | [INFO] [stdout] 10 | fn concatenate_numbers(a: i64, b: i64) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `evaluate_expression` is never used [INFO] [stdout] --> src/day7.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn evaluate_expression(numbers: &[i64], operators: &[char]) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_operator_combinations` is never used [INFO] [stdout] --> src/day7.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn generate_operator_combinations(length: usize) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_equation` is never used [INFO] [stdout] --> src/day7.rs:60:4 [INFO] [stdout] | [INFO] [stdout] 60 | fn solve_equation(equation: &Equation) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day7.rs:73:4 [INFO] [stdout] | [INFO] [stdout] 73 | fn parse_input(filename: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day7.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn solve_part1()->i64{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day7.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn solve_part2()->i64{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Point` is never constructed [INFO] [stdout] --> src/day8.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct Point { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/day8.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 9 | impl Point { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 10 | fn new(x: i32, y: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_antenna_map` is never used [INFO] [stdout] --> src/day8.rs:15:4 [INFO] [stdout] | [INFO] [stdout] 15 | fn parse_antenna_map(input: &str) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_antinode` is never used [INFO] [stdout] --> src/day8.rs:32:4 [INFO] [stdout] | [INFO] [stdout] 32 | fn get_antinode(near: Point, far: Point) -> Point { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_antinodes` is never used [INFO] [stdout] --> src/day8.rs:44:4 [INFO] [stdout] | [INFO] [stdout] 44 | fn calculate_antinodes(antennas: &[Point]) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_antinodes_in_bounds` is never used [INFO] [stdout] --> src/day8.rs:68:4 [INFO] [stdout] | [INFO] [stdout] 68 | fn count_antinodes_in_bounds(input: &str) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_collinear` is never used [INFO] [stdout] --> src/day8.rs:95:4 [INFO] [stdout] | [INFO] [stdout] 95 | fn is_collinear(p1: Point, p2: Point, p3: Point) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_antinodes` is never used [INFO] [stdout] --> src/day8.rs:102:4 [INFO] [stdout] | [INFO] [stdout] 102 | fn find_antinodes(antennas: &[Point], width: i32, height: i32) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_antinodes_in_bounds2` is never used [INFO] [stdout] --> src/day8.rs:129:4 [INFO] [stdout] | [INFO] [stdout] 129 | fn count_antinodes_in_bounds2(input: &str) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day8.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn solve_part1() -> usize{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day8.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | pub fn solve_part2() -> usize{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compact_disk` is never used [INFO] [stdout] --> src/day9.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn compact_disk(disk: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_disk_map` is never used [INFO] [stdout] --> src/day9.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn parse_disk_map(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expand_disk_map` is never used [INFO] [stdout] --> src/day9.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn expand_disk_map(lengths: &[u32]) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `File` is never constructed [INFO] [stdout] --> src/day9.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 50 | struct File { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_files` is never used [INFO] [stdout] --> src/day9.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn find_files(disk: &[Option]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_free_space` is never used [INFO] [stdout] --> src/day9.rs:76:4 [INFO] [stdout] | [INFO] [stdout] 76 | fn find_free_space(disk: &[Option], start: usize, needed: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compact_disk_whole_files` is never used [INFO] [stdout] --> src/day9.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 97 | fn compact_disk_whole_files(disk: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_checksum` is never used [INFO] [stdout] --> src/day9.rs:112:4 [INFO] [stdout] | [INFO] [stdout] 112 | fn calculate_checksum(disk: &[Option]) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part2` is never used [INFO] [stdout] --> src/day9.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | pub fn solve_part2() -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day9.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn solve_part1() -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Point` is never constructed [INFO] [stdout] --> src/day10.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct Point { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `neighbors` are never used [INFO] [stdout] --> src/day10.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 9 | impl Point { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 10 | fn new(x: i32, y: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | fn neighbors(&self) -> impl Iterator + '_ { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Grid` is never constructed [INFO] [stdout] --> src/day10.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Grid { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/day10.rs:27:11 [INFO] [stdout] | [INFO] [stdout] 26 | impl Grid { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 27 | pub fn from_str(input: &str) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | fn get(&self, point: Point) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | fn find_trailheads(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | fn get_valid_neighbors(&self, point: Point) -> impl Iterator + '_ { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | fn find_reachable_nines(&self, start: Point) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | fn count_distinct_paths(&self, start: Point) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn solve_part1(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn solve_part2(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheKey` is never constructed [INFO] [stdout] --> src/day11.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct CacheKey { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blink` is never used [INFO] [stdout] --> src/day11.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn blink(stone: u64, n: usize, cache: &mut HashMap) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/day11.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn parse_input(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_part1` is never used [INFO] [stdout] --> src/day11.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn solve_part1() -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Point` is never used [INFO] [stdout] --> src/day12.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | type Point = (i32, i32); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DIRECTIONS` is never used [INFO] [stdout] --> src/day12.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const DIRECTIONS: [(i32, i32); 4] = [(1, 0), (0, 1), (-1, 0), (0, -1)]; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CELL_SIZE` is never used [INFO] [stdout] --> src/day12.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const CELL_SIZE: usize = 3; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Region` is never constructed [INFO] [stdout] --> src/day12.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Region { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `price`, and `side_price` are never used [INFO] [stdout] --> src/day12.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 15 | impl Region { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 16 | fn new(idx: char, start_position: Point) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | fn price(&self) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | fn side_price(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Field` is never constructed [INFO] [stdout] --> src/day12.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct Field { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/day12.rs:44:11 [INFO] [stdout] | [INFO] [stdout] 43 | impl Field { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 44 | pub fn new(field_map: Vec>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | fn fill_region(&mut self, start: Point, remaining: &mut HashSet) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | fn neighbourhood(&self, position: Point) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | fn count_corners(&self, position: Point) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | fn out_of_bounds(&self, position: Point) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn price(&self) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn bulk_price(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `Input` should have an upper case name [INFO] [stdout] --> src/day4.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | const Input :&str = include_str!("../inputs/day4.txt"); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 3 - const Input :&str = include_str!("../inputs/day4.txt"); [INFO] [stdout] 3 + const INPUT :&str = include_str!("../inputs/day4.txt"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.50s [INFO] running `Command { std: "docker" "inspect" "59897d713233572b0e27834e756297a4611ac3ad43dd2a4827e9db977732a51b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "59897d713233572b0e27834e756297a4611ac3ad43dd2a4827e9db977732a51b", kill_on_drop: false }` [INFO] [stdout] 59897d713233572b0e27834e756297a4611ac3ad43dd2a4827e9db977732a51b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 44ce1e2b6e0b28cc3fb2a51a3c501bdbad1f96df7eb67ab9cb0fb1671635eb04 [INFO] running `Command { std: "docker" "start" "-a" "44ce1e2b6e0b28cc3fb2a51a3c501bdbad1f96df7eb67ab9cb0fb1671635eb04", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `std::collections::HashSet` [INFO] [stderr] --> src/day4.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashSet; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `VecDeque` [INFO] [stderr] --> src/day6.rs:1:33 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::{HashSet, VecDeque}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_dir` [INFO] [stderr] --> src/day6.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | let (start_pos, start_dir) = find_starting_info(map); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_dir` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dx` [INFO] [stderr] --> src/day8.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | let dx = far.x - near.x; [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_dx` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dy` [INFO] [stderr] --> src/day8.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | let dy = far.y - near.y; [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_dy` [INFO] [stderr] [INFO] [stderr] warning: function `solve_part1` is never used [INFO] [stderr] --> src/day1.rs:3:8 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn solve_part1() -> i64 { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `solve_part2` is never used [INFO] [stderr] --> src/day1.rs:9:8 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn solve_part2()-> i64 { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `calculate_total_distance` is never used [INFO] [stderr] --> src/day1.rs:14:4 [INFO] [stderr] | [INFO] [stderr] 14 | fn calculate_total_distance(input: &str) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `calculate_similarity_score` is never used [INFO] [stderr] --> src/day1.rs:48:4 [INFO] [stderr] | [INFO] [stderr] 48 | fn calculate_similarity_score(input: &str) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part1` is never used [INFO] [stderr] --> src/day2.rs:3:8 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn solve_part1() -> usize{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part2` is never used [INFO] [stderr] --> src/day2.rs:22:8 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn solve_part2() -> usize{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_safe` is never used [INFO] [stderr] --> src/day2.rs:39:4 [INFO] [stderr] | [INFO] [stderr] 39 | fn is_safe(levels: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_safe_with_dampener` is never used [INFO] [stderr] --> src/day2.rs:71:4 [INFO] [stderr] | [INFO] [stderr] 71 | fn is_safe_with_dampener(levels: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part1` is never used [INFO] [stderr] --> src/day3.rs:3:8 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn solve_part1() -> i32 { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `Instruction` is never used [INFO] [stderr] --> src/day3.rs:21:6 [INFO] [stderr] | [INFO] [stderr] 21 | enum Instruction { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_instructions` is never used [INFO] [stderr] --> src/day3.rs:27:4 [INFO] [stderr] | [INFO] [stderr] 27 | fn parse_instructions(input: &str) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part2` is never used [INFO] [stderr] --> src/day3.rs:63:8 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn solve_part2() -> i64 { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `Input` is never used [INFO] [stderr] --> src/day4.rs:3:8 [INFO] [stderr] | [INFO] [stderr] 3 | const Input :&str = include_str!("../inputs/day4.txt"); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `count_xmas` is never used [INFO] [stderr] --> src/day4.rs:6:4 [INFO] [stderr] | [INFO] [stderr] 6 | fn count_xmas(input: &str) -> usize { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `check_xmas` is never used [INFO] [stderr] --> src/day4.rs:39:4 [INFO] [stderr] | [INFO] [stderr] 39 | fn check_xmas(grid: &[Vec], i: usize, j: usize, di: i32, dj: i32) -> bool { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `count_x_mas` is never used [INFO] [stderr] --> src/day4.rs:59:4 [INFO] [stderr] | [INFO] [stderr] 59 | fn count_x_mas(input: &str) -> usize { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `check_x_mas` is never used [INFO] [stderr] --> src/day4.rs:78:4 [INFO] [stderr] | [INFO] [stderr] 78 | fn check_x_mas(grid: &[Vec], i: usize, j: usize) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part1` is never used [INFO] [stderr] --> src/day4.rs:101:8 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn solve_part1() -> usize { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part2` is never used [INFO] [stderr] --> src/day4.rs:104:8 [INFO] [stderr] | [INFO] [stderr] 104 | pub fn solve_part2() -> usize { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_input` is never used [INFO] [stderr] --> src/day5.rs:3:4 [INFO] [stderr] | [INFO] [stderr] 3 | fn parse_input(input: &str) -> (Vec<(u32, u32)>, Vec>) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_valid_order` is never used [INFO] [stderr] --> src/day5.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | fn is_valid_order(update: &[u32], rules: &[(u32, u32)]) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `topological_sort` is never used [INFO] [stderr] --> src/day5.rs:49:4 [INFO] [stderr] | [INFO] [stderr] 49 | fn topological_sort(pages: &[u32], rules: &[(u32, u32)]) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part1` is never used [INFO] [stderr] --> src/day5.rs:97:8 [INFO] [stderr] | [INFO] [stderr] 97 | pub fn solve_part1() -> u32 { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part2` is never used [INFO] [stderr] --> src/day5.rs:109:8 [INFO] [stderr] | [INFO] [stderr] 109 | pub fn solve_part2() -> u32 { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `Direction` is never used [INFO] [stderr] --> src/day6.rs:4:6 [INFO] [stderr] | [INFO] [stderr] 4 | enum Direction { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `turn_right` and `move_position` are never used [INFO] [stderr] --> src/day6.rs:12:8 [INFO] [stderr] | [INFO] [stderr] 11 | impl Direction { [INFO] [stderr] | -------------- methods in this implementation [INFO] [stderr] 12 | fn turn_right(&self) -> Self { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 21 | fn move_position(&self, (x, y): (i32, i32)) -> (i32, i32) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_guard_patrol` is never used [INFO] [stderr] --> src/day6.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | fn solve_guard_patrol(map: &Vec>) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_guard_patrol_loop_positions` is never used [INFO] [stderr] --> src/day6.rs:72:4 [INFO] [stderr] | [INFO] [stderr] 72 | fn solve_guard_patrol_loop_positions(map: &Vec>) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `creates_loop` is never used [INFO] [stderr] --> src/day6.rs:97:4 [INFO] [stderr] | [INFO] [stderr] 97 | fn creates_loop(map: &Vec>) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `find_starting_info` is never used [INFO] [stderr] --> src/day6.rs:135:4 [INFO] [stderr] | [INFO] [stderr] 135 | fn find_starting_info(map: &Vec>) -> ((i32, i32), Direction) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_out_of_bounds` is never used [INFO] [stderr] --> src/day6.rs:150:4 [INFO] [stderr] | [INFO] [stderr] 150 | fn is_out_of_bounds(map: &Vec>, (x, y): (i32, i32)) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_blocked` is never used [INFO] [stderr] --> src/day6.rs:154:4 [INFO] [stderr] | [INFO] [stderr] 154 | fn is_blocked(map: &Vec>, (x, y): (i32, i32)) -> bool { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_input` is never used [INFO] [stderr] --> src/day6.rs:158:4 [INFO] [stderr] | [INFO] [stderr] 158 | fn parse_input(input: &str) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part1` is never used [INFO] [stderr] --> src/day6.rs:162:8 [INFO] [stderr] | [INFO] [stderr] 162 | pub fn solve_part1() -> usize{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part2` is never used [INFO] [stderr] --> src/day6.rs:165:8 [INFO] [stderr] | [INFO] [stderr] 165 | pub fn solve_part2() -> usize{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Equation` is never constructed [INFO] [stderr] --> src/day7.rs:5:8 [INFO] [stderr] | [INFO] [stderr] 5 | struct Equation { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `concatenate_numbers` is never used [INFO] [stderr] --> src/day7.rs:10:4 [INFO] [stderr] | [INFO] [stderr] 10 | fn concatenate_numbers(a: i64, b: i64) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `evaluate_expression` is never used [INFO] [stderr] --> src/day7.rs:16:4 [INFO] [stderr] | [INFO] [stderr] 16 | fn evaluate_expression(numbers: &[i64], operators: &[char]) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `generate_operator_combinations` is never used [INFO] [stderr] --> src/day7.rs:29:4 [INFO] [stderr] | [INFO] [stderr] 29 | fn generate_operator_combinations(length: usize) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_equation` is never used [INFO] [stderr] --> src/day7.rs:60:4 [INFO] [stderr] | [INFO] [stderr] 60 | fn solve_equation(equation: &Equation) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_input` is never used [INFO] [stderr] --> src/day7.rs:73:4 [INFO] [stderr] | [INFO] [stderr] 73 | fn parse_input(filename: &str) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part1` is never used [INFO] [stderr] --> src/day7.rs:90:8 [INFO] [stderr] | [INFO] [stderr] 90 | pub fn solve_part1()->i64{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part2` is never used [INFO] [stderr] --> src/day7.rs:101:8 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn solve_part2()->i64{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Point` is never constructed [INFO] [stderr] --> src/day8.rs:4:8 [INFO] [stderr] | [INFO] [stderr] 4 | struct Point { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/day8.rs:10:8 [INFO] [stderr] | [INFO] [stderr] 9 | impl Point { [INFO] [stderr] | ---------- associated function in this implementation [INFO] [stderr] 10 | fn new(x: i32, y: i32) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_antenna_map` is never used [INFO] [stderr] --> src/day8.rs:15:4 [INFO] [stderr] | [INFO] [stderr] 15 | fn parse_antenna_map(input: &str) -> HashMap> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_antinode` is never used [INFO] [stderr] --> src/day8.rs:32:4 [INFO] [stderr] | [INFO] [stderr] 32 | fn get_antinode(near: Point, far: Point) -> Point { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `calculate_antinodes` is never used [INFO] [stderr] --> src/day8.rs:44:4 [INFO] [stderr] | [INFO] [stderr] 44 | fn calculate_antinodes(antennas: &[Point]) -> HashSet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `count_antinodes_in_bounds` is never used [INFO] [stderr] --> src/day8.rs:68:4 [INFO] [stderr] | [INFO] [stderr] 68 | fn count_antinodes_in_bounds(input: &str) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_collinear` is never used [INFO] [stderr] --> src/day8.rs:95:4 [INFO] [stderr] | [INFO] [stderr] 95 | fn is_collinear(p1: Point, p2: Point, p3: Point) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `find_antinodes` is never used [INFO] [stderr] --> src/day8.rs:102:4 [INFO] [stderr] | [INFO] [stderr] 102 | fn find_antinodes(antennas: &[Point], width: i32, height: i32) -> HashSet { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `count_antinodes_in_bounds2` is never used [INFO] [stderr] --> src/day8.rs:129:4 [INFO] [stderr] | [INFO] [stderr] 129 | fn count_antinodes_in_bounds2(input: &str) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part1` is never used [INFO] [stderr] --> src/day8.rs:147:8 [INFO] [stderr] | [INFO] [stderr] 147 | pub fn solve_part1() -> usize{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part2` is never used [INFO] [stderr] --> src/day8.rs:150:8 [INFO] [stderr] | [INFO] [stderr] 150 | pub fn solve_part2() -> usize{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `compact_disk` is never used [INFO] [stderr] --> src/day9.rs:3:4 [INFO] [stderr] | [INFO] [stderr] 3 | fn compact_disk(disk: &mut Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_disk_map` is never used [INFO] [stderr] --> src/day9.rs:23:4 [INFO] [stderr] | [INFO] [stderr] 23 | fn parse_disk_map(input: &str) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `expand_disk_map` is never used [INFO] [stderr] --> src/day9.rs:29:4 [INFO] [stderr] | [INFO] [stderr] 29 | fn expand_disk_map(lengths: &[u32]) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `File` is never constructed [INFO] [stderr] --> src/day9.rs:50:8 [INFO] [stderr] | [INFO] [stderr] 50 | struct File { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `find_files` is never used [INFO] [stderr] --> src/day9.rs:56:4 [INFO] [stderr] | [INFO] [stderr] 56 | fn find_files(disk: &[Option]) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `find_free_space` is never used [INFO] [stderr] --> src/day9.rs:76:4 [INFO] [stderr] | [INFO] [stderr] 76 | fn find_free_space(disk: &[Option], start: usize, needed: usize) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `compact_disk_whole_files` is never used [INFO] [stderr] --> src/day9.rs:97:4 [INFO] [stderr] | [INFO] [stderr] 97 | fn compact_disk_whole_files(disk: &mut Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `calculate_checksum` is never used [INFO] [stderr] --> src/day9.rs:112:4 [INFO] [stderr] | [INFO] [stderr] 112 | fn calculate_checksum(disk: &[Option]) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part2` is never used [INFO] [stderr] --> src/day9.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | pub fn solve_part2() -> usize { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part1` is never used [INFO] [stderr] --> src/day9.rs:128:8 [INFO] [stderr] | [INFO] [stderr] 128 | pub fn solve_part1() -> usize { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Point` is never constructed [INFO] [stderr] --> src/day10.rs:4:8 [INFO] [stderr] | [INFO] [stderr] 4 | struct Point { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `neighbors` are never used [INFO] [stderr] --> src/day10.rs:10:8 [INFO] [stderr] | [INFO] [stderr] 9 | impl Point { [INFO] [stderr] | ---------- associated items in this implementation [INFO] [stderr] 10 | fn new(x: i32, y: i32) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 14 | fn neighbors(&self) -> impl Iterator + '_ { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Grid` is never constructed [INFO] [stderr] --> src/day10.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 20 | pub struct Grid { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/day10.rs:27:11 [INFO] [stderr] | [INFO] [stderr] 26 | impl Grid { [INFO] [stderr] | --------- associated items in this implementation [INFO] [stderr] 27 | pub fn from_str(input: &str) -> Self { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 45 | fn get(&self, point: Point) -> Option { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 57 | fn find_trailheads(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 70 | fn get_valid_neighbors(&self, point: Point) -> impl Iterator + '_ { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 77 | fn find_reachable_nines(&self, start: Point) -> HashSet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | fn count_distinct_paths(&self, start: Point) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 134 | pub fn solve_part1(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 140 | pub fn solve_part2(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CacheKey` is never constructed [INFO] [stderr] --> src/day11.rs:4:8 [INFO] [stderr] | [INFO] [stderr] 4 | struct CacheKey { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `blink` is never used [INFO] [stderr] --> src/day11.rs:9:4 [INFO] [stderr] | [INFO] [stderr] 9 | fn blink(stone: u64, n: usize, cache: &mut HashMap) -> usize { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_input` is never used [INFO] [stderr] --> src/day11.rs:36:4 [INFO] [stderr] | [INFO] [stderr] 36 | fn parse_input(input: &str) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_part1` is never used [INFO] [stderr] --> src/day11.rs:44:8 [INFO] [stderr] | [INFO] [stderr] 44 | pub fn solve_part1() -> usize { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `Point` is never used [INFO] [stderr] --> src/day12.rs:3:6 [INFO] [stderr] | [INFO] [stderr] 3 | type Point = (i32, i32); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `DIRECTIONS` is never used [INFO] [stderr] --> src/day12.rs:5:7 [INFO] [stderr] | [INFO] [stderr] 5 | const DIRECTIONS: [(i32, i32); 4] = [(1, 0), (0, 1), (-1, 0), (0, -1)]; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `CELL_SIZE` is never used [INFO] [stderr] --> src/day12.rs:6:7 [INFO] [stderr] | [INFO] [stderr] 6 | const CELL_SIZE: usize = 3; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Region` is never constructed [INFO] [stderr] --> src/day12.rs:8:8 [INFO] [stderr] | [INFO] [stderr] 8 | struct Region { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `price`, and `side_price` are never used [INFO] [stderr] --> src/day12.rs:16:8 [INFO] [stderr] | [INFO] [stderr] 15 | impl Region { [INFO] [stderr] | ----------- associated items in this implementation [INFO] [stderr] 16 | fn new(idx: char, start_position: Point) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 27 | fn price(&self) -> i32 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 31 | fn side_price(&self) -> i32 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Field` is never constructed [INFO] [stderr] --> src/day12.rs:36:12 [INFO] [stderr] | [INFO] [stderr] 36 | pub struct Field { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/day12.rs:44:11 [INFO] [stderr] | [INFO] [stderr] 43 | impl Field { [INFO] [stderr] | ---------- associated items in this implementation [INFO] [stderr] 44 | pub fn new(field_map: Vec>) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 67 | fn fill_region(&mut self, start: Point, remaining: &mut HashSet) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 107 | fn neighbourhood(&self, position: Point) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 126 | fn count_corners(&self, position: Point) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 149 | fn out_of_bounds(&self, position: Point) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 153 | pub fn price(&self) -> i32 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 157 | pub fn bulk_price(&self) -> i32 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `Input` should have an upper case name [INFO] [stderr] --> src/day4.rs:3:8 [INFO] [stderr] | [INFO] [stderr] 3 | const Input :&str = include_str!("../inputs/day4.txt"); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] help: convert the identifier to upper case [INFO] [stderr] | [INFO] [stderr] 3 - const Input :&str = include_str!("../inputs/day4.txt"); [INFO] [stderr] 3 + const INPUT :&str = include_str!("../inputs/day4.txt"); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `aoc_2024_rs` (bin "aoc_2024_rs" test) generated 85 warnings (run `cargo fix --bin "aoc_2024_rs" --tests` to apply 3 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/aoc_2024_rs-e184fb9701dea1a2) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "44ce1e2b6e0b28cc3fb2a51a3c501bdbad1f96df7eb67ab9cb0fb1671635eb04", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "44ce1e2b6e0b28cc3fb2a51a3c501bdbad1f96df7eb67ab9cb0fb1671635eb04", kill_on_drop: false }` [INFO] [stdout] 44ce1e2b6e0b28cc3fb2a51a3c501bdbad1f96df7eb67ab9cb0fb1671635eb04