[INFO] cloning repository https://github.com/codingismy11to7/aoc2023
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/codingismy11to7/aoc2023" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcodingismy11to7%2Faoc2023", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcodingismy11to7%2Faoc2023'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e25d067eae93586a951874e6772dd3f3b1c7d413
[INFO] checking codingismy11to7/aoc2023 against try#b1f2594eac607c1f051534800237eeedb5590a49 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcodingismy11to7%2Faoc2023" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/codingismy11to7/aoc2023
[INFO] finished tweaking git repo https://github.com/codingismy11to7/aoc2023
[INFO] tweaked toml for git repo https://github.com/codingismy11to7/aoc2023 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/codingismy11to7/aoc2023 on toolchain b1f2594eac607c1f051534800237eeedb5590a49
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/codingismy11to7/aoc2023 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" "+b1f2594eac607c1f051534800237eeedb5590a49" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4f4e200eb056f16e34f477a3011a73efd4a65896e500c6968b65213aa2a4129f
[INFO] running `Command { std: "docker" "start" "-a" "4f4e200eb056f16e34f477a3011a73efd4a65896e500c6968b65213aa2a4129f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4f4e200eb056f16e34f477a3011a73efd4a65896e500c6968b65213aa2a4129f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4f4e200eb056f16e34f477a3011a73efd4a65896e500c6968b65213aa2a4129f", kill_on_drop: false }`
[INFO] [stdout] 4f4e200eb056f16e34f477a3011a73efd4a65896e500c6968b65213aa2a4129f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 274ba7187b7ca451283d1f3b50f483ade2288cb7a32ad97d1e9ef7637ec8cb0a
[INFO] running `Command { std: "docker" "start" "-a" "274ba7187b7ca451283d1f3b50f483ade2288cb7a32ad97d1e9ef7637ec8cb0a", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking rangemap v1.4.0
[INFO] [stderr]    Compiling tailcall-impl v0.1.6
[INFO] [stderr]     Checking tailcall v0.1.6
[INFO] [stderr]     Checking aoc2023 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `DataLine`
[INFO] [stdout]  --> src/day14.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::util::{get_non_empty_lines, DataLine};
[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: `regex::Regex`
[INFO] [stdout]  --> src/day14.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DataLine`
[INFO] [stdout]  --> src/day14.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::util::{get_non_empty_lines, DataLine};
[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: `regex::Regex`
[INFO] [stdout]  --> src/day14.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day14.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |     let mut board = get_non_empty_lines(data)
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day14.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let mut memo = HashMap::new();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_board`
[INFO] [stdout]    --> src/day14.rs:146:68
[INFO] [stdout]     |
[INFO] [stdout] 146 |     let (board, _) = (0..1000000000).fold((board.clone(), memo), |(old_board, memo), _| {
[INFO] [stdout]     |                                                                    ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_board`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NUM_STRS` is never used
[INFO] [stdout]  --> src/day1.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const NUM_STRS: [&str; 9] = [
[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 `convert_num` is never used
[INFO] [stdout]  --> src/day1.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn convert_num(num: &str) -> u64 {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_and_convert` is never used
[INFO] [stdout]   --> src/day1.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn match_and_convert<'a, I>(re: &Regex, strs_to_test: I) -> u64
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_num` is never used
[INFO] [stdout]   --> src/day1.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn first_num(from: &str, re: &Regex) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `last_num` is never used
[INFO] [stdout]   --> src/day1.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn last_num(from: &str, re: &Regex) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_first_and_last_as_num` is never used
[INFO] [stdout]   --> src/day1.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn get_first_and_last_as_num(dl: &DataLine, re: &Regex) -> Option<u64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit_impl` is never used
[INFO] [stdout]   --> src/day1.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn doit_impl(data: &str, re: Regex) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit` is never used
[INFO] [stdout]   --> src/day1.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn doit(data: &str) -> u64 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_str_num_regex` is never used
[INFO] [stdout]   --> src/day1.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn build_str_num_regex() -> Regex {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit2` is never used
[INFO] [stdout]   --> src/day1.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn doit2(data: &str) -> u64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `XPos` is never used
[INFO] [stdout]  --> src/day10.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type XPos = usize;
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `YPos` is never used
[INFO] [stdout]  --> src/day10.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type YPos = usize;
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Coord` is never used
[INFO] [stdout]  --> src/day10.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Coord = (XPos, YPos);
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Grid` is never used
[INFO] [stdout]  --> src/day10.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type Grid = Vec<Vec<char>>;
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `GridAndStartPoint` is never used
[INFO] [stdout]  --> src/day10.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type GridAndStartPoint = (Grid, Coord);
[INFO] [stdout]   |      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Cardinal` is never used
[INFO] [stdout]   --> src/day10.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | enum Cardinal {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `north` is never used
[INFO] [stdout]   --> src/day10.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn north(c: Coord) -> Option<Coord> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `south` is never used
[INFO] [stdout]   --> src/day10.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn south(c: Coord) -> Option<Coord> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `west` is never used
[INFO] [stdout]   --> src/day10.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn west(c: Coord) -> Option<Coord> {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `east` is never used
[INFO] [stdout]   --> src/day10.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn east(c: Coord) -> Option<Coord> {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `neighbor` is never used
[INFO] [stdout]   --> src/day10.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn neighbor(c: Coord, dir: Cardinal) -> Option<Coord> {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pipe_for` is never used
[INFO] [stdout]   --> src/day10.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn pipe_for(dir_a: Cardinal, dir_b: Cardinal) -> char {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `connects` is never used
[INFO] [stdout]   --> src/day10.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn connects(c: char) -> Option<(Cardinal, Cardinal)> {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `opposite` is never used
[INFO] [stdout]   --> src/day10.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn opposite(dir: Cardinal) -> Cardinal {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `connects_to` is never used
[INFO] [stdout]   --> src/day10.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn connects_to(c: char, dir: Cardinal) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `char_at` is never used
[INFO] [stdout]   --> src/day10.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn char_at(grid: &Grid, coord: Coord) -> Option<char> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replace_start_point` is never used
[INFO] [stdout]   --> src/day10.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn replace_start_point((mut grid, sp): GridAndStartPoint) -> GridAndStartPoint {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_grid` is never used
[INFO] [stdout]    --> src/day10.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn parse_grid(data: &str) -> GridAndStartPoint {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Step` is never used
[INFO] [stdout]    --> src/day10.rs:143:6
[INFO] [stdout]     |
[INFO] [stdout] 143 | type Step = u64;
[INFO] [stdout]     |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `traverse_loop` is never used
[INFO] [stdout]    --> src/day10.rs:149:4
[INFO] [stdout]     |
[INFO] [stdout] 149 | fn traverse_loop<F>(grid: &Grid, start_point: Coord, init_dir: Cardinal, mut callback: F)
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit` is never used
[INFO] [stdout]    --> src/day10.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn doit(data: &GridAndStartPoint) -> u64 {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit2` is never used
[INFO] [stdout]    --> src/day10.rs:213:4
[INFO] [stdout]     |
[INFO] [stdout] 213 | fn doit2(data: &GridAndStartPoint) -> i64 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `XPos` is never used
[INFO] [stdout]  --> src/day11.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type XPos = i64;
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `YPos` is never used
[INFO] [stdout]  --> src/day11.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type YPos = i64;
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Coord` is never used
[INFO] [stdout]  --> src/day11.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type Coord = (XPos, YPos);
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PictureData` is never constructed
[INFO] [stdout]  --> src/day11.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct PictureData {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_picture_data` is never used
[INFO] [stdout]   --> src/day11.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn get_picture_data(data: &str) -> PictureData {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expand_universe` is never used
[INFO] [stdout]   --> src/day11.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn expand_universe(picture: &PictureData, expansion_factor: u32) -> Vec<Coord> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit_impl` is never used
[INFO] [stdout]   --> src/day11.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn doit_impl(data: &PictureData, expansion_factor: u32) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit` is never used
[INFO] [stdout]   --> src/day11.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn doit(data: &PictureData) -> i64 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit2` is never used
[INFO] [stdout]   --> src/day11.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn doit2(data: &PictureData) -> i64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParsedLine` is never constructed
[INFO] [stdout]   --> src/day12.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct ParsedLine {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_line` is never used
[INFO] [stdout]   --> src/day12.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn parse_line(line: DataLine) -> ParsedLine {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_valid_solutions` is never used
[INFO] [stdout]   --> src/day12.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn count_valid_solutions(line: ParsedLine) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit` is never used
[INFO] [stdout]   --> src/day12.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn doit(data: &str) -> u64 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit2` is never used
[INFO] [stdout]   --> src/day12.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn doit2(data: &str) -> u64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockInfo` is never constructed
[INFO] [stdout]  --> src/day13.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct BlockInfo {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Block` is never constructed
[INFO] [stdout]   --> src/day13.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Block {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NumBlock` is never constructed
[INFO] [stdout]   --> src/day13.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct NumBlock {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MirrorPoint` is never used
[INFO] [stdout]   --> src/day13.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 18 | enum MirrorPoint {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value_if` is never used
[INFO] [stdout]   --> src/day13.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl MirrorPoint {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 24 |     fn value_if(&self, is_col: bool) -> Option<usize> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_to_number` is never used
[INFO] [stdout]   --> src/day13.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn convert_to_number<'a>(chars: impl Iterator<Item = &'a char>) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `block_to_numblock` is never used
[INFO] [stdout]   --> src/day13.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn block_to_numblock(block: &Block) -> NumBlock {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_mirrorpoint` is never used
[INFO] [stdout]   --> src/day13.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn is_mirrorpoint(nums: &Vec<u64>, mirror_after: usize) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `block_to_smudge_corrected` is never used
[INFO] [stdout]    --> src/day13.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn block_to_smudge_corrected(block: &Block) -> Vec<Block> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_mirrorpoint` is never used
[INFO] [stdout]    --> src/day13.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn find_mirrorpoint(nums: &Vec<u64>, but_not: Option<usize>) -> Option<usize> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `numblock_to_mirrorpoint_opt` is never used
[INFO] [stdout]    --> src/day13.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn numblock_to_mirrorpoint_opt(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `numblock_to_mirrorpoint` is never used
[INFO] [stdout]    --> src/day13.rs:143:4
[INFO] [stdout]     |
[INFO] [stdout] 143 | fn numblock_to_mirrorpoint(but_not: &Option<MirrorPoint>, block: NumBlock) -> MirrorPoint {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mirrorpoint_to_num` is never used
[INFO] [stdout]    --> src/day13.rs:147:4
[INFO] [stdout]     |
[INFO] [stdout] 147 | fn mirrorpoint_to_num(mp: MirrorPoint) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_blocks` is never used
[INFO] [stdout]    --> src/day13.rs:154:4
[INFO] [stdout]     |
[INFO] [stdout] 154 | fn parse_blocks(data: &str) -> Vec<Block> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit` is never used
[INFO] [stdout]    --> src/day13.rs:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | fn doit(data: &str) -> u64 {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit2` is never used
[INFO] [stdout]    --> src/day13.rs:199:4
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn doit2(data: &str) -> u64 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `slide_north` is never used
[INFO] [stdout]  --> src/day14.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn slide_north(board: &mut Vec<Vec<char>>) {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `slide_west` is never used
[INFO] [stdout]   --> src/day14.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn slide_west(board: &mut Vec<Vec<char>>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `slide_south` is never used
[INFO] [stdout]   --> src/day14.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn slide_south(board: &mut Vec<Vec<char>>) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `slide_east` is never used
[INFO] [stdout]   --> src/day14.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn slide_east(board: &mut Vec<Vec<char>>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_cycle` is never used
[INFO] [stdout]   --> src/day14.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn run_cycle<'a>(
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_load` is never used
[INFO] [stdout]    --> src/day14.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn get_load(board: Vec<Vec<char>>) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit` is never used
[INFO] [stdout]    --> src/day14.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn doit(data: &str) -> u64 {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_board` is never used
[INFO] [stdout]    --> src/day14.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn print_board(desc: &str, board: &Vec<Vec<char>>) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit2` is never used
[INFO] [stdout]    --> src/day14.rs:136:4
[INFO] [stdout]     |
[INFO] [stdout] 136 | fn doit2(data: &str) -> u64 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Parse` is never used
[INFO] [stdout]   --> src/day2.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | trait Parse {
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Regexes` is never constructed
[INFO] [stdout]   --> src/day2.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct Regexes {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_parse` is never used
[INFO] [stdout]   --> src/day2.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn create_parse() -> Result<Regexes, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Color` is never used
[INFO] [stdout]   --> src/day2.rs:62:6
[INFO] [stdout]    |
[INFO] [stdout] 62 | type Color = str;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Count` is never used
[INFO] [stdout]   --> src/day2.rs:63:6
[INFO] [stdout]    |
[INFO] [stdout] 63 | type Count = u64;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Draw` is never used
[INFO] [stdout]   --> src/day2.rs:64:6
[INFO] [stdout]    |
[INFO] [stdout] 64 | type Draw<'a> = HashMap<&'a Color, Count>;
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DiceCounts` is never used
[INFO] [stdout]   --> src/day2.rs:65:6
[INFO] [stdout]    |
[INFO] [stdout] 65 | type DiceCounts<'a> = Draw<'a>;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Game` is never constructed
[INFO] [stdout]   --> src/day2.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | struct Game<'a> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParseError` is never constructed
[INFO] [stdout]   --> src/day2.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct ParseError;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_game` is never used
[INFO] [stdout]   --> src/day2.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn parse_game<'a>(line: &DataLine<'a>, parser: &impl Parse) -> Result<Game<'a>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_games` is never used
[INFO] [stdout]    --> src/day2.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn parse_games<'a, I>(lines: I) -> Result<Vec<Game<'a>>, Box<dyn Error>>
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `game_is_possible` is never used
[INFO] [stdout]    --> src/day2.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn game_is_possible(game: &Game, dice_counts: &DiceCounts) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit` is never used
[INFO] [stdout]    --> src/day2.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn doit(games: &[Game]) -> u64 {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit2` is never used
[INFO] [stdout]    --> src/day2.rs:140:4
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn doit2(games: &[Game]) -> u64 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PartNum` is never constructed
[INFO] [stdout]  --> src/day3.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct PartNum {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Coord` is never constructed
[INFO] [stdout]   --> src/day3.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Coord {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `surrounding_coords` is never used
[INFO] [stdout]   --> src/day3.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn surrounding_coords(line_num: usize, indices: &Range<usize>) -> Vec<Coord> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_nums_from_lines` is never used
[INFO] [stdout]   --> src/day3.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn part_nums_from_lines<'a, I>(lines: I) -> Vec<PartNum>
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit` is never used
[INFO] [stdout]   --> src/day3.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn doit(data: &str) -> u64 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit2` is never used
[INFO] [stdout]   --> src/day3.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn doit2(data: &str) -> u64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Card` is never constructed
[INFO] [stdout]  --> src/day4.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Card {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_to_num` is never used
[INFO] [stdout]   --> src/day4.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn match_to_num(m: Match) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_cards` is never used
[INFO] [stdout]   --> src/day4.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn parse_cards<'a, I>(lines: I) -> Vec<Card>
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_num_matches` is never used
[INFO] [stdout]   --> src/day4.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn get_num_matches(card: &Card) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit` is never used
[INFO] [stdout]   --> src/day4.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn doit(cards: &[Card]) -> u64 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit2` is never used
[INFO] [stdout]   --> src/day4.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn doit2(cards: &[Card]) -> u64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Delta` is never used
[INFO] [stdout]  --> src/day5.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type Delta = i64;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Map` is never constructed
[INFO] [stdout]   --> src/day5.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Map<'a> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Almanac` is never constructed
[INFO] [stdout]   --> src/day5.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct Almanac<'a> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_range_map` is never used
[INFO] [stdout]   --> src/day5.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn default_range_map() -> RangeMap<i64, Delta> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_almanac` is never used
[INFO] [stdout]   --> src/day5.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn parse_almanac(data: &str) -> Almanac {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_location` is never used
[INFO] [stdout]   --> src/day5.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn find_location(seed: i64, almanac: &Almanac) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit` is never used
[INFO] [stdout]   --> src/day5.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn doit(almanac: &Almanac) -> i64 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lowest_location` is never used
[INFO] [stdout]   --> src/day5.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn lowest_location(ranges: Vec<Range<i64>>, rem: &[Map]) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit2` is never used
[INFO] [stdout]    --> src/day5.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn doit2(almanac: &Almanac) -> i64 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Record` is never constructed
[INFO] [stdout]  --> src/day6.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Record {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_data` is never used
[INFO] [stdout]  --> src/day6.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn parse_data(data: &str) -> Vec<Record> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `number_of_ways_to_win` is never used
[INFO] [stdout]   --> src/day6.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn number_of_ways_to_win(prev_rec: &Record) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit` is never used
[INFO] [stdout]   --> src/day6.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn doit(data: &str) -> u64 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit2` is never used
[INFO] [stdout]   --> src/day6.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn doit2(data: &str) -> u64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HandType` is never used
[INFO] [stdout]   --> src/day7.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum HandType {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawHand` is never constructed
[INFO] [stdout]   --> src/day7.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | struct RawHand<'a> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HandTypeAndPower` is never constructed
[INFO] [stdout]   --> src/day7.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | struct HandTypeAndPower {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HandAndType` is never constructed
[INFO] [stdout]   --> src/day7.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct HandAndType<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_hands` is never used
[INFO] [stdout]   --> src/day7.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn parse_hands(data: &str) -> Vec<RawHand> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_type` is never used
[INFO] [stdout]   --> src/day7.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn get_type(cards: &str) -> HandTypeAndPower {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit_impl` is never used
[INFO] [stdout]    --> src/day7.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn doit_impl<F>(data: &str, enrich: F, card_power_map: &HashMap<char, u32>) -> u64
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit` is never used
[INFO] [stdout]    --> src/day7.rs:159:4
[INFO] [stdout]     |
[INFO] [stdout] 159 | fn doit(data: &str) -> u64 {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_possible_hands` is never used
[INFO] [stdout]    --> src/day7.rs:168:4
[INFO] [stdout]     |
[INFO] [stdout] 168 | fn get_possible_hands(non_jokers: &HashSet<char>, hand: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit2` is never used
[INFO] [stdout]    --> src/day7.rs:189:4
[INFO] [stdout]     |
[INFO] [stdout] 189 | fn doit2(data: &str) -> u64 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Elems` is never constructed
[INFO] [stdout]  --> src/day8.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Elems<'a> {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Map` is never constructed
[INFO] [stdout]   --> src/day8.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Map<'a> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_map` is never used
[INFO] [stdout]   --> src/day8.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn parse_map(data: &str) -> Map {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_num_steps` is never used
[INFO] [stdout]   --> src/day8.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn get_num_steps<F>(map: &Map, start: &str, is_end_point: F) -> u64
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit` is never used
[INFO] [stdout]   --> src/day8.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn doit(map: &Map) -> u64 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lcm` is never used
[INFO] [stdout]   --> src/day8.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn lcm(a: u64, b: u64) -> u64 {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit2` is never used
[INFO] [stdout]    --> src/day8.rs:100:4
[INFO] [stdout]     |
[INFO] [stdout] 100 | fn doit2(map: &Map) -> u64 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_impl` is never used
[INFO] [stdout]  --> src/day9.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn calculate_impl(history: Vec<i64>, next: bool) -> i64 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_lines` is never used
[INFO] [stdout]   --> src/day9.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn parse_lines(data: &str) -> Vec<Vec<i64>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit_impl` is never used
[INFO] [stdout]   --> src/day9.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn doit_impl(data: &str, next: bool) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit` is never used
[INFO] [stdout]   --> src/day9.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn doit(data: &str) -> i64 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `doit2` is never used
[INFO] [stdout]   --> src/day9.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn doit2(data: &str) -> i64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DataLine` is never constructed
[INFO] [stdout]  --> src/util.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct DataLine<'a> {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_non_empty_lines` is never used
[INFO] [stdout]   --> src/util.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn get_non_empty_lines(data: &str) -> impl Iterator<Item = DataLine> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_lines` is never used
[INFO] [stdout]   --> src/util.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn get_lines(data: &str) -> impl Iterator<Item = DataLine> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file_panic` is never used
[INFO] [stdout]   --> src/util.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn read_file_panic(fname: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_dur` is never used
[INFO] [stdout]   --> src/util.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn print_dur<F, R>(desc: &str, thunk: F) -> R
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/day5.rs:27:24
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn parse_almanac(data: &str) -> Almanac {
[INFO] [stdout]    |                        ^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn parse_almanac(data: &str) -> Almanac<'_> {
[INFO] [stdout]    |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/day7.rs:72:22
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn parse_hands(data: &str) -> Vec<RawHand> {
[INFO] [stdout]    |                      ^^^^         ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn parse_hands(data: &str) -> Vec<RawHand<'_>> {
[INFO] [stdout]    |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/day8.rs:19:20
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn parse_map(data: &str) -> Map {
[INFO] [stdout]    |                    ^^^^     ^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn parse_map(data: &str) -> Map<'_> {
[INFO] [stdout]    |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/util.rs:18:34
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn get_non_empty_lines(data: &str) -> impl Iterator<Item = DataLine> {
[INFO] [stdout]    |                                  ^^^^                          ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn get_non_empty_lines(data: &str) -> impl Iterator<Item = DataLine<'_>> {
[INFO] [stdout]    |                                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/util.rs:25:24
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn get_lines(data: &str) -> impl Iterator<Item = DataLine> {
[INFO] [stdout]    |                        ^^^^                          ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn get_lines(data: &str) -> impl Iterator<Item = DataLine<'_>> {
[INFO] [stdout]    |                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day14.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |     let mut board = get_non_empty_lines(data)
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day14.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let mut memo = HashMap::new();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_board`
[INFO] [stdout]    --> src/day14.rs:146:68
[INFO] [stdout]     |
[INFO] [stdout] 146 |     let (board, _) = (0..1000000000).fold((board.clone(), memo), |(old_board, memo), _| {
[INFO] [stdout]     |                                                                    ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_board`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_board` is never used
[INFO] [stdout]    --> src/day14.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn print_board(desc: &str, board: &Vec<Vec<char>>) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/day5.rs:27:24
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn parse_almanac(data: &str) -> Almanac {
[INFO] [stdout]    |                        ^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn parse_almanac(data: &str) -> Almanac<'_> {
[INFO] [stdout]    |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/day7.rs:72:22
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn parse_hands(data: &str) -> Vec<RawHand> {
[INFO] [stdout]    |                      ^^^^         ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn parse_hands(data: &str) -> Vec<RawHand<'_>> {
[INFO] [stdout]    |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/day8.rs:19:20
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn parse_map(data: &str) -> Map {
[INFO] [stdout]    |                    ^^^^     ^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn parse_map(data: &str) -> Map<'_> {
[INFO] [stdout]    |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/util.rs:18:34
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn get_non_empty_lines(data: &str) -> impl Iterator<Item = DataLine> {
[INFO] [stdout]    |                                  ^^^^                          ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn get_non_empty_lines(data: &str) -> impl Iterator<Item = DataLine<'_>> {
[INFO] [stdout]    |                                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/util.rs:25:24
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn get_lines(data: &str) -> impl Iterator<Item = DataLine> {
[INFO] [stdout]    |                        ^^^^                          ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn get_lines(data: &str) -> impl Iterator<Item = DataLine<'_>> {
[INFO] [stdout]    |                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.91s
[INFO] running `Command { std: "docker" "inspect" "274ba7187b7ca451283d1f3b50f483ade2288cb7a32ad97d1e9ef7637ec8cb0a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "274ba7187b7ca451283d1f3b50f483ade2288cb7a32ad97d1e9ef7637ec8cb0a", kill_on_drop: false }`
[INFO] [stdout] 274ba7187b7ca451283d1f3b50f483ade2288cb7a32ad97d1e9ef7637ec8cb0a
