[INFO] cloning repository https://github.com/kyegupov/aoc2022
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kyegupov/aoc2022" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkyegupov%2Faoc2022", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkyegupov%2Faoc2022'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 70416b9f58820eb1fa6f49de31312dfba395e696
[INFO] checking kyegupov/aoc2022 against c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40 for pr-160391-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkyegupov%2Faoc2022" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kyegupov/aoc2022
[INFO] finished tweaking git repo https://github.com/kyegupov/aoc2022
[INFO] tweaked toml for git repo https://github.com/kyegupov/aoc2022 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kyegupov/aoc2022 on toolchain c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kyegupov/aoc2022 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" "+c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40" "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-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:c0af3998e971868164375a7dfb646c9933ddd1a3bdb00fa2041266763dc1eeab" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] df0e7e64011d8a5103db36e997de75c8480b172ce9974f5a8a781513c697963e
[INFO] running `Command { std: "docker" "start" "df0e7e64011d8a5103db36e997de75c8480b172ce9974f5a8a781513c697963e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "df0e7e64011d8a5103db36e997de75c8480b172ce9974f5a8a781513c697963e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "df0e7e64011d8a5103db36e997de75c8480b172ce9974f5a8a781513c697963e" "/opt/rustwide/cargo-home/bin/cargo" "+c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "df0e7e64011d8a5103db36e997de75c8480b172ce9974f5a8a781513c697963e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "df0e7e64011d8a5103db36e997de75c8480b172ce9974f5a8a781513c697963e" "/opt/rustwide/cargo-home/bin/cargo" "+c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]     Checking either v1.8.0
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking nom v7.1.1
[INFO] [stderr]     Checking aoc2022 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/main03b.rs:3:29
[INFO] [stdout]   |
[INFO] [stdout] 3 |     collections::{BTreeMap, BTreeSet},
[INFO] [stdout]   |                             ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]   --> src/main03b.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |                     'a'..='z' => (c as i64 - 'a' as i64 + 1),
[INFO] [stdout]    |                                  ^                         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 20 -                     'a'..='z' => (c as i64 - 'a' as i64 + 1),
[INFO] [stdout] 20 +                     'a'..='z' => c as i64 - 'a' as i64 + 1,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]   --> src/main03b.rs:21:34
[INFO] [stdout]    |
[INFO] [stdout] 21 |                     'A'..='Z' => (c as i64 - 'A' as i64 + 27),
[INFO] [stdout]    |                                  ^                          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 21 -                     'A'..='Z' => (c as i64 - 'A' as i64 + 27),
[INFO] [stdout] 21 +                     'A'..='Z' => c as i64 - 'A' as i64 + 27,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> src/main04a.rs:16:73
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let pair = |x| map(tuple((&number, tag("-"), &number)), |(x, _, y)| (x..=y))(x);
[INFO] [stdout]    |                                                                         ^     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 16 -     let pair = |x| map(tuple((&number, tag("-"), &number)), |(x, _, y)| (x..=y))(x);
[INFO] [stdout] 16 +     let pair = |x| map(tuple((&number, tag("-"), &number)), |(x, _, y)| x..=y)(x);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/main12.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 |     collections::{BTreeMap, BTreeSet, VecDeque},
[INFO] [stdout]   |                             ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> src/main16.rs:95:30
[INFO] [stdout]    |
[INFO] [stdout] 95 |                     .filter(|(k)| !s.opened.contains(*k))
[INFO] [stdout]    |                              ^ ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 95 -                     .filter(|(k)| !s.opened.contains(*k))
[INFO] [stdout] 95 +                     .filter(|k| !s.opened.contains(*k))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `bytes::complete::tag`, `character::complete::digit0`, `combinator::map`, `error`, and `sequence::tuple`
[INFO] [stdout]  --> src/main08.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     bytes::complete::tag, character::complete::digit0, combinator::map, error, sequence::tuple,
[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 variable: `i`
[INFO] [stdout]  --> src/main01a.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 |     for (i, line) in read_to_string("input01.txt")?.lines().enumerate() {
[INFO] [stdout]   |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main01a.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Err(x) => {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> src/main16.rs:96:27
[INFO] [stdout]    |
[INFO] [stdout] 96 |                     .map(|(k)| r.flows_by_idx[k] * (26 - 1 - r.distances_by_idx[0][k]))
[INFO] [stdout]    |                           ^ ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 96 -                     .map(|(k)| r.flows_by_idx[k] * (26 - 1 - r.distances_by_idx[0][k]))
[INFO] [stdout] 96 +                     .map(|k| r.flows_by_idx[k] * (26 - 1 - r.distances_by_idx[0][k]))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main08.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/main01a.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 |     for (i, line) in read_to_string("input01.txt")?.lines().enumerate() {
[INFO] [stdout]   |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main01a.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Err(x) => {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/main12.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 |     collections::{BTreeMap, BTreeSet, VecDeque},
[INFO] [stdout]   |                             ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `directions` should have an upper case name
[INFO] [stdout]   --> src/main12.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const directions: [Coord2D; 4] = [
[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] 23 - const directions: [Coord2D; 4] = [
[INFO] [stdout] 23 + const DIRECTIONS: [Coord2D; 4] = [
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/main03b.rs:3:29
[INFO] [stdout]   |
[INFO] [stdout] 3 |     collections::{BTreeMap, BTreeSet},
[INFO] [stdout]   |                             ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]   --> src/main03b.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |                     'a'..='z' => (c as i64 - 'a' as i64 + 1),
[INFO] [stdout]    |                                  ^                         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 20 -                     'a'..='z' => (c as i64 - 'a' as i64 + 1),
[INFO] [stdout] 20 +                     'a'..='z' => c as i64 - 'a' as i64 + 1,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]   --> src/main03b.rs:21:34
[INFO] [stdout]    |
[INFO] [stdout] 21 |                     'A'..='Z' => (c as i64 - 'A' as i64 + 27),
[INFO] [stdout]    |                                  ^                          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 21 -                     'A'..='Z' => (c as i64 - 'A' as i64 + 27),
[INFO] [stdout] 21 +                     'A'..='Z' => c as i64 - 'A' as i64 + 27,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `directions` should have an upper case name
[INFO] [stdout]   --> src/main12.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const directions: [Coord2D; 4] = [
[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] 23 - const directions: [Coord2D; 4] = [
[INFO] [stdout] 23 + const DIRECTIONS: [Coord2D; 4] = [
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `bytes::complete::tag`, `character::complete::digit0`, `combinator::map`, `error`, and `sequence::tuple`
[INFO] [stdout]  --> src/main05b.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     bytes::complete::tag, character::complete::digit0, combinator::map, error, sequence::tuple,
[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 variable: `i`
[INFO] [stdout]   --> src/main04a.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 |     for (i, line) in read_to_string("input04.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]  --> src/main04a.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main08.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 |     for (i, line) in read_to_string("input08.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]   --> src/main08.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Entry` is never used
[INFO] [stdout]   --> src/main08.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum Entry {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main05b.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 |     for (i, line) in read_to_string("input05.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main05b.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 |             for i in 0..qty {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]   --> src/main05b.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `bytes::complete::tag`, `character::complete::digit0`, `combinator::map`, `error`, and `sequence::tuple`
[INFO] [stdout]  --> src/main07.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     bytes::complete::tag, character::complete::digit0, combinator::map, error, sequence::tuple,
[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 imports: `bytes::complete::tag`, `character::complete::digit0`, `combinator::map`, `error`, and `sequence::tuple`
[INFO] [stdout]  --> src/main06.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     bytes::complete::tag, character::complete::digit0, combinator::map, error, sequence::tuple,
[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 imports: `bytes::complete::tag`, `character::complete::digit0`, `combinator::map`, `error`, and `sequence::tuple`
[INFO] [stdout]  --> src/main05b.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     bytes::complete::tag, character::complete::digit0, combinator::map, error, sequence::tuple,
[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 variable: `i`
[INFO] [stdout]   --> src/main06.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for (i, line) in read_to_string("input06.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]   --> src/main06.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `VecDeque`
[INFO] [stdout]  --> src/main15.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 |     collections::{BTreeMap, BTreeSet, VecDeque},
[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: `itertools::Itertools`
[INFO] [stdout]  --> src/main15.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error`, `is_digit`, and `multi::separated_list1`
[INFO] [stdout]   --> src/main15.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 |     character::{complete::digit1, is_digit},
[INFO] [stdout]    |                                   ^^^^^^^^
[INFO] [stdout] 12 |     combinator::{map, map_res, recognize},
[INFO] [stdout] 13 |     error,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 14 |     multi::separated_list1,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `bytes::complete::tag`, `character::complete::digit0`, `combinator::map`, `error`, and `sequence::tuple`
[INFO] [stdout]  --> src/main07.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     bytes::complete::tag, character::complete::digit0, combinator::map, error, sequence::tuple,
[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 variable: `i`
[INFO] [stdout]   --> src/main05b.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 |     for (i, line) in read_to_string("input05.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main05b.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 |             for i in 0..qty {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]   --> src/main05b.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main16.rs:167:10
[INFO] [stdout]     |
[INFO] [stdout] 167 |     for (y, line) in read_to_string("input16.txt")?.lines().enumerate() {
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i1`
[INFO] [stdout]    --> src/main16.rs:204:10
[INFO] [stdout]     |
[INFO] [stdout] 204 |     for (i1, n1) in iter::once(&rules.start)
[INFO] [stdout]     |          ^^ help: if this is intentional, prefix it with an underscore: `_i1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i2`
[INFO] [stdout]    --> src/main16.rs:209:14
[INFO] [stdout]     |
[INFO] [stdout] 209 |         for (i2, n2) in iter::once(&rules.start)
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_i2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_i64` is never used
[INFO] [stdout]    --> src/main16.rs:133:4
[INFO] [stdout]     |
[INFO] [stdout] 133 | fn parse_i64(input: &str) -> IResult<&str, 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: unnecessary parentheses around match arm expression
[INFO] [stdout]   --> src/main03a.rs:10:30
[INFO] [stdout]    |
[INFO] [stdout] 10 |                 'a'..='z' => (*c as i64 - 'a' as i64 + 1),
[INFO] [stdout]    |                              ^                          ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 10 -                 'a'..='z' => (*c as i64 - 'a' as i64 + 1),
[INFO] [stdout] 10 +                 'a'..='z' => *c as i64 - 'a' as i64 + 1,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]   --> src/main03a.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 |                 'A'..='Z' => (*c as i64 - 'A' as i64 + 27),
[INFO] [stdout]    |                              ^                           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 11 -                 'A'..='Z' => (*c as i64 - 'A' as i64 + 27),
[INFO] [stdout] 11 +                 'A'..='Z' => *c as i64 - 'A' as i64 + 27,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main07.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 |     for (i, line) in read_to_string("input07.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]   --> src/main07.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/main03a.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for (i, line) in read_to_string("input03.txt")?.lines().enumerate() {
[INFO] [stdout]   |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `bytes::complete::tag`, `character::complete::digit0`, `combinator::map`, `error`, and `sequence::tuple`
[INFO] [stdout]  --> src/main05a.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     bytes::complete::tag, character::complete::digit0, combinator::map, error, sequence::tuple,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> src/main16.rs:95:30
[INFO] [stdout]    |
[INFO] [stdout] 95 |                     .filter(|(k)| !s.opened.contains(*k))
[INFO] [stdout]    |                              ^ ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 95 -                     .filter(|(k)| !s.opened.contains(*k))
[INFO] [stdout] 95 +                     .filter(|k| !s.opened.contains(*k))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> src/main16.rs:96:27
[INFO] [stdout]    |
[INFO] [stdout] 96 |                     .map(|(k)| r.flows_by_idx[k] * (26 - 1 - r.distances_by_idx[0][k]))
[INFO] [stdout]    |                           ^ ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 96 -                     .map(|(k)| r.flows_by_idx[k] * (26 - 1 - r.distances_by_idx[0][k]))
[INFO] [stdout] 96 +                     .map(|k| r.flows_by_idx[k] * (26 - 1 - r.distances_by_idx[0][k]))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main07.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 |     for (i, line) in read_to_string("input07.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]   --> src/main07.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rules`
[INFO] [stdout]   --> src/main15.rs:95:27
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn do_tick(&mut self, rules: &Rules) {}
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_rules`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main15.rs:105:10
[INFO] [stdout]     |
[INFO] [stdout] 105 |     for (y, line) in read_to_string("input15.txt")?.lines().enumerate() {
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main15.rs:145:14
[INFO] [stdout]     |
[INFO] [stdout] 145 |         for (s, b) in rules.sensors_beacons {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add` and `signum` are never used
[INFO] [stdout]   --> src/main15.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Coord2D {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 26 |     fn add(self, o: Self) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn signum(&self) -> Self {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `directions4` is never used
[INFO] [stdout]   --> src/main15.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const directions4: [Coord2D; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `State` is never constructed
[INFO] [stdout]   --> src/main15.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct State {}
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_u64` is never used
[INFO] [stdout]   --> src/main15.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn parse_u64(input: &str) -> IResult<&str, u64> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `do_tick` is never used
[INFO] [stdout]   --> src/main15.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | impl State {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 95 |     fn do_tick(&mut self, rules: &Rules) {}
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]   --> src/main03a.rs:10:30
[INFO] [stdout]    |
[INFO] [stdout] 10 |                 'a'..='z' => (*c as i64 - 'a' as i64 + 1),
[INFO] [stdout]    |                              ^                          ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 10 -                 'a'..='z' => (*c as i64 - 'a' as i64 + 1),
[INFO] [stdout] 10 +                 'a'..='z' => *c as i64 - 'a' as i64 + 1,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]   --> src/main03a.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 |                 'A'..='Z' => (*c as i64 - 'A' as i64 + 27),
[INFO] [stdout]    |                              ^                           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 11 -                 'A'..='Z' => (*c as i64 - 'A' as i64 + 27),
[INFO] [stdout] 11 +                 'A'..='Z' => *c as i64 - 'A' as i64 + 27,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `directions4` should have an upper case name
[INFO] [stdout]   --> src/main15.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const directions4: [Coord2D; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^ help: convert the identifier to upper case: `DIRECTIONS4`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `bytes::complete::tag`, `character::complete::digit0`, `combinator::map`, `error`, and `sequence::tuple`
[INFO] [stdout]  --> src/main06.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     bytes::complete::tag, character::complete::digit0, combinator::map, error, sequence::tuple,
[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 imports: `BTreeMap` and `VecDeque`
[INFO] [stdout]  --> src/main15.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 |     collections::{BTreeMap, BTreeSet, VecDeque},
[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: `itertools::Itertools`
[INFO] [stdout]  --> src/main15.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error`, `is_digit`, and `multi::separated_list1`
[INFO] [stdout]   --> src/main15.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 |     character::{complete::digit1, is_digit},
[INFO] [stdout]    |                                   ^^^^^^^^
[INFO] [stdout] 12 |     combinator::{map, map_res, recognize},
[INFO] [stdout] 13 |     error,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 14 |     multi::separated_list1,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main05a.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 |     for (i, line) in read_to_string("input05.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main05a.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |             for i in 0..qty {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]   --> src/main05a.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/main03a.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for (i, line) in read_to_string("input03.txt")?.lines().enumerate() {
[INFO] [stdout]   |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `cmp::max`, and `iter`
[INFO] [stdout]  --> src/main10.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     cmp::max,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     collections::{BTreeMap, BTreeSet},
[INFO] [stdout]   |                   ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     iter,
[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 imports: `IResult`, `bytes::complete::tag`, `character::complete::digit0`, `combinator::map`, `error`, and `sequence::tuple`
[INFO] [stdout]   --> src/main10.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     bytes::complete::tag, character::complete::digit0, combinator::map, error, sequence::tuple,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     IResult,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main06.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for (i, line) in read_to_string("input06.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]   --> src/main06.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main10.rs:56:10
[INFO] [stdout]    |
[INFO] [stdout] 56 |     for (i, line) in read_to_string("input10.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `bytes::complete::tag`, `character::complete::digit0`, `combinator::map`, `error`, and `sequence::tuple`
[INFO] [stdout]  --> src/main05a.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     bytes::complete::tag, character::complete::digit0, combinator::map, error, sequence::tuple,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> src/main04b.rs:16:73
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let pair = |x| map(tuple((&number, tag("-"), &number)), |(x, _, y)| (x..=y))(x);
[INFO] [stdout]    |                                                                         ^     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 16 -     let pair = |x| map(tuple((&number, tag("-"), &number)), |(x, _, y)| (x..=y))(x);
[INFO] [stdout] 16 +     let pair = |x| map(tuple((&number, tag("-"), &number)), |(x, _, y)| x..=y)(x);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/main02a.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for (i, line) in read_to_string("input02.txt")?.lines().enumerate() {
[INFO] [stdout]   |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rules`
[INFO] [stdout]   --> src/main15.rs:95:27
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn do_tick(&mut self, rules: &Rules) {}
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_rules`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main05a.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 |     for (i, line) in read_to_string("input05.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main05a.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |             for i in 0..qty {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]   --> src/main05a.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main04b.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 |     for (i, line) in read_to_string("input04.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]  --> src/main04b.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `cmp::max`, and `iter`
[INFO] [stdout]  --> src/main10.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     cmp::max,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     collections::{BTreeMap, BTreeSet},
[INFO] [stdout]   |                   ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     iter,
[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 imports: `IResult`, `bytes::complete::tag`, `character::complete::digit0`, `combinator::map`, `error`, and `sequence::tuple`
[INFO] [stdout]   --> src/main10.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     bytes::complete::tag, character::complete::digit0, combinator::map, error, sequence::tuple,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     IResult,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main15.rs:105:10
[INFO] [stdout]     |
[INFO] [stdout] 105 |     for (y, line) in read_to_string("input15.txt")?.lines().enumerate() {
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main15.rs:145:14
[INFO] [stdout]     |
[INFO] [stdout] 145 |         for (s, b) in rules.sensors_beacons {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add` and `signum` are never used
[INFO] [stdout]   --> src/main15.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Coord2D {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 26 |     fn add(self, o: Self) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn signum(&self) -> Self {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `directions4` is never used
[INFO] [stdout]   --> src/main15.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const directions4: [Coord2D; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `State` is never constructed
[INFO] [stdout]   --> src/main15.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct State {}
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_u64` is never used
[INFO] [stdout]   --> src/main15.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn parse_u64(input: &str) -> IResult<&str, u64> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `do_tick` is never used
[INFO] [stdout]   --> src/main15.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | impl State {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 95 |     fn do_tick(&mut self, rules: &Rules) {}
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `directions4` should have an upper case name
[INFO] [stdout]   --> src/main15.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const directions4: [Coord2D; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^ help: convert the identifier to upper case: `DIRECTIONS4`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/main02b.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for (i, line) in read_to_string("input02.txt")?.lines().enumerate() {
[INFO] [stdout]   |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main16.rs:167:10
[INFO] [stdout]     |
[INFO] [stdout] 167 |     for (y, line) in read_to_string("input16.txt")?.lines().enumerate() {
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i1`
[INFO] [stdout]    --> src/main16.rs:204:10
[INFO] [stdout]     |
[INFO] [stdout] 204 |     for (i1, n1) in iter::once(&rules.start)
[INFO] [stdout]     |          ^^ help: if this is intentional, prefix it with an underscore: `_i1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i2`
[INFO] [stdout]    --> src/main16.rs:209:14
[INFO] [stdout]     |
[INFO] [stdout] 209 |         for (i2, n2) in iter::once(&rules.start)
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_i2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_i64` is never used
[INFO] [stdout]    --> src/main16.rs:133:4
[INFO] [stdout]     |
[INFO] [stdout] 133 | fn parse_i64(input: &str) -> IResult<&str, 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: unused import: `cmp::max`
[INFO] [stdout]  --> src/main09.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     cmp::max,
[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 imports: `bytes::complete::tag`, `character::complete::digit0`, `combinator::map`, `error`, and `sequence::tuple`
[INFO] [stdout]   --> src/main09.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     bytes::complete::tag, character::complete::digit0, combinator::map, error, sequence::tuple,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeSet` and `VecDeque`
[INFO] [stdout]  --> src/main14.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 |     collections::{BTreeMap, BTreeSet, VecDeque},
[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 variable: `i`
[INFO] [stdout]   --> src/main09.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 |     for (i, line) in read_to_string("input09.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]   --> src/main09.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Entry` is never used
[INFO] [stdout]   --> src/main09.rs:20:6
[INFO] [stdout]    |
[INFO] [stdout] 20 | enum Entry {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main10.rs:56:10
[INFO] [stdout]    |
[INFO] [stdout] 56 |     for (i, line) in read_to_string("input10.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/main02a.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for (i, line) in read_to_string("input02.txt")?.lines().enumerate() {
[INFO] [stdout]   |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/main02b.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for (i, line) in read_to_string("input02.txt")?.lines().enumerate() {
[INFO] [stdout]   |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> src/main04b.rs:16:73
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let pair = |x| map(tuple((&number, tag("-"), &number)), |(x, _, y)| (x..=y))(x);
[INFO] [stdout]    |                                                                         ^     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 16 -     let pair = |x| map(tuple((&number, tag("-"), &number)), |(x, _, y)| (x..=y))(x);
[INFO] [stdout] 16 +     let pair = |x| map(tuple((&number, tag("-"), &number)), |(x, _, y)| x..=y)(x);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Index`
[INFO] [stdout]  --> src/main13.rs:1:62
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{env, error::Error, fmt::Debug, fs::read_to_string, ops::Index};
[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: `digit0`
[INFO] [stdout]  --> src/main13.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 |     character::complete::{digit0, digit1},
[INFO] [stdout]   |                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cmp::max`
[INFO] [stdout]  --> src/main09.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     cmp::max,
[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 imports: `bytes::complete::tag`, `character::complete::digit0`, `combinator::map`, `error`, and `sequence::tuple`
[INFO] [stdout]   --> src/main09.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     bytes::complete::tag, character::complete::digit0, combinator::map, error, sequence::tuple,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeSet` and `VecDeque`
[INFO] [stdout]  --> src/main14.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 |     collections::{BTreeMap, BTreeSet, VecDeque},
[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 variable: `i`
[INFO] [stdout]   --> src/main09.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 |     for (i, line) in read_to_string("input09.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]   --> src/main09.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Entry` is never used
[INFO] [stdout]   --> src/main09.rs:20:6
[INFO] [stdout]    |
[INFO] [stdout] 20 | enum Entry {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `bytes::complete::tag`, `character::complete::digit0`, `combinator::map`, `error`, and `sequence::tuple`
[INFO] [stdout]  --> src/main08.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     bytes::complete::tag, character::complete::digit0, combinator::map, error, sequence::tuple,
[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: `itertools::Itertools`
[INFO] [stdout]  --> src/main08.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> src/main04a.rs:16:73
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let pair = |x| map(tuple((&number, tag("-"), &number)), |(x, _, y)| (x..=y))(x);
[INFO] [stdout]    |                                                                         ^     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 16 -     let pair = |x| map(tuple((&number, tag("-"), &number)), |(x, _, y)| (x..=y))(x);
[INFO] [stdout] 16 +     let pair = |x| map(tuple((&number, tag("-"), &number)), |(x, _, y)| x..=y)(x);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main04b.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 |     for (i, line) in read_to_string("input04.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main14.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 |     for (y, line) in read_to_string("input14.txt")?.lines().enumerate() {
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Index`
[INFO] [stdout]  --> src/main13.rs:1:62
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{env, error::Error, fmt::Debug, fs::read_to_string, ops::Index};
[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: `digit0`
[INFO] [stdout]  --> src/main13.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 |     character::complete::{digit0, digit1},
[INFO] [stdout]   |                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/main01b.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 |     for (i, line) in read_to_string("input01.txt")?.lines().enumerate() {
[INFO] [stdout]   |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main01b.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Err(x) => {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `directions` is never used
[INFO] [stdout]   --> src/main14.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const directions: [Coord2D; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `directions` should have an upper case name
[INFO] [stdout]   --> src/main14.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const directions: [Coord2D; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^ help: convert the identifier to upper case: `DIRECTIONS`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]  --> src/main04b.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main13.rs:36:27
[INFO] [stdout]    |
[INFO] [stdout] 36 |             (Item::Number(x), Item::List(_)) => Item::List(vec![self.clone()]).cmp(other),
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/main13.rs:37:42
[INFO] [stdout]    |
[INFO] [stdout] 37 |             (Item::List(_), Item::Number(y)) => self.cmp(&Item::List(vec![other.clone()])),
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main08.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 |     for (i, line) in read_to_string("input08.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]   --> src/main08.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Entry` is never used
[INFO] [stdout]   --> src/main08.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum Entry {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main14.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 |     for (y, line) in read_to_string("input14.txt")?.lines().enumerate() {
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `directions` is never used
[INFO] [stdout]   --> src/main14.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const directions: [Coord2D; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `directions` should have an upper case name
[INFO] [stdout]   --> src/main14.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const directions: [Coord2D; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^ help: convert the identifier to upper case: `DIRECTIONS`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main04a.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 |     for (i, line) in read_to_string("input04.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Parser` is never used
[INFO] [stdout]  --> src/main04a.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type Parser<'a, T> = fn(&'a str) -> IResult<&'a str, T>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main13.rs:36:27
[INFO] [stdout]    |
[INFO] [stdout] 36 |             (Item::Number(x), Item::List(_)) => Item::List(vec![self.clone()]).cmp(other),
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/main13.rs:37:42
[INFO] [stdout]    |
[INFO] [stdout] 37 |             (Item::List(_), Item::Number(y)) => self.cmp(&Item::List(vec![other.clone()])),
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/main01b.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 |     for (i, line) in read_to_string("input01.txt")?.lines().enumerate() {
[INFO] [stdout]   |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main01b.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Err(x) => {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.72s
[INFO] running `Command { std: "docker" "inspect" "df0e7e64011d8a5103db36e997de75c8480b172ce9974f5a8a781513c697963e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "df0e7e64011d8a5103db36e997de75c8480b172ce9974f5a8a781513c697963e", kill_on_drop: false }`
[INFO] [stdout] df0e7e64011d8a5103db36e997de75c8480b172ce9974f5a8a781513c697963e
