[INFO] cloning repository https://github.com/tomnis/aoc21
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tomnis/aoc21" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftomnis%2Faoc21", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftomnis%2Faoc21'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 194831bbc18c1613189ddb288163d7abf77a081b
[INFO] checking tomnis/aoc21 against try#c86ec274072509d26d0ee52682a0c94ed012ed89 for pr-153027
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftomnis%2Faoc21" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tomnis/aoc21
[INFO] finished tweaking git repo https://github.com/tomnis/aoc21
[INFO] tweaked toml for git repo https://github.com/tomnis/aoc21 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tomnis/aoc21 on toolchain c86ec274072509d26d0ee52682a0c94ed012ed89
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tomnis/aoc21 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" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "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-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c3808254001603fc24182eae1a794842075abc282e4b6bbc6e898de204fd7d1d
[INFO] running `Command { std: "docker" "start" "-a" "c3808254001603fc24182eae1a794842075abc282e4b6bbc6e898de204fd7d1d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c3808254001603fc24182eae1a794842075abc282e4b6bbc6e898de204fd7d1d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c3808254001603fc24182eae1a794842075abc282e4b6bbc6e898de204fd7d1d", kill_on_drop: false }`
[INFO] [stdout] c3808254001603fc24182eae1a794842075abc282e4b6bbc6e898de204fd7d1d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 712496eec142b96ae8dc597141835b53179d7b0d134b5597f7845f71f98782d5
[INFO] running `Command { std: "docker" "start" "-a" "712496eec142b96ae8dc597141835b53179d7b0d134b5597f7845f71f98782d5", kill_on_drop: false }`
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]     Checking untitled v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/prob2.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[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: `BufReader` and `Lines`
[INFO] [stdout]  --> src/prob2.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{BufReader, Lines};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/prob2.rs:29:33
[INFO] [stdout]    |
[INFO] [stdout] 29 |         else if cmd.starts_with(("down")) {
[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] 29 -         else if cmd.starts_with(("down")) {
[INFO] [stdout] 29 +         else if cmd.starts_with("down" ) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/prob2.rs:56:22
[INFO] [stdout]    |
[INFO] [stdout] 56 |             depth += (aim * x);
[INFO] [stdout]    |                      ^       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 56 -             depth += (aim * x);
[INFO] [stdout] 56 +             depth += aim * x ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/prob2.rs:64:33
[INFO] [stdout]    |
[INFO] [stdout] 64 |         else if cmd.starts_with(("down")) {
[INFO] [stdout]    |                                 ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 64 -         else if cmd.starts_with(("down")) {
[INFO] [stdout] 64 +         else if cmd.starts_with("down" ) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Lines`, `Result`, and `self`
[INFO] [stdout]  --> src/util.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{self, BufRead, BufReader, Lines, Result};
[INFO] [stdout]   |               ^^^^                      ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/prob1.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader` and `Lines`
[INFO] [stdout]  --> src/prob1.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{BufReader, Lines};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/prob3.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader` and `Lines`
[INFO] [stdout]  --> src/prob3.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{BufReader, Lines};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/prob4.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader` and `Lines`
[INFO] [stdout]  --> src/prob4.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{BufReader, Lines};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]  --> src/prob7.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> src/prob12.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Borrow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/prob12.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let graph: Graph = edges2graph((parse_edges(lines)));
[INFO] [stdout]    |                                    ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 14 -     let graph: Graph = edges2graph((parse_edges(lines)));
[INFO] [stdout] 14 +     let graph: Graph = edges2graph(parse_edges(lines) );
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/prob14.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::LinkedList`
[INFO] [stdout]  --> src/prob14.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::LinkedList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> src/prob15.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Borrow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/prob15.rs:3:45
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BinaryHeap, HashMap, HashSet};
[INFO] [stdout]   |                                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice::Chunks`
[INFO] [stdout]  --> src/prob16.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::slice::Chunks;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/prob16.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Formatter`
[INFO] [stdout]  --> src/prob16.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::Formatter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/prob16.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 |     if (type_id == 4) {
[INFO] [stdout]    |        ^            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 85 -     if (type_id == 4) {
[INFO] [stdout] 85 +     if type_id == 4  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/prob16.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 108 |     while true {
[INFO] [stdout]     |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/prob2.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[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 assigned value
[INFO] [stdout]    --> src/prob16.rs:128:26
[INFO] [stdout]     |
[INFO] [stdout] 128 |         bits_consumed += (new_cursor - cursor);
[INFO] [stdout]     |                          ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -         bits_consumed += (new_cursor - cursor);
[INFO] [stdout] 128 +         bits_consumed += new_cursor - cursor ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BorrowMut`
[INFO] [stdout]  --> src/prob17.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::{Borrow, BorrowMut};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> src/prob18.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Borrow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::VecDeque`
[INFO] [stdout]  --> src/prob18.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::VecDeque;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader` and `Lines`
[INFO] [stdout]  --> src/prob2.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{BufReader, Lines};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/prob2.rs:29:33
[INFO] [stdout]    |
[INFO] [stdout] 29 |         else if cmd.starts_with(("down")) {
[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] 29 -         else if cmd.starts_with(("down")) {
[INFO] [stdout] 29 +         else if cmd.starts_with("down" ) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/prob2.rs:56:22
[INFO] [stdout]    |
[INFO] [stdout] 56 |             depth += (aim * x);
[INFO] [stdout]    |                      ^       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 56 -             depth += (aim * x);
[INFO] [stdout] 56 +             depth += aim * x ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/prob2.rs:64:33
[INFO] [stdout]    |
[INFO] [stdout] 64 |         else if cmd.starts_with(("down")) {
[INFO] [stdout]    |                                 ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 64 -         else if cmd.starts_with(("down")) {
[INFO] [stdout] 64 +         else if cmd.starts_with("down" ) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Lines`, `Result`, and `self`
[INFO] [stdout]  --> src/util.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{self, BufRead, BufReader, Lines, Result};
[INFO] [stdout]   |               ^^^^                      ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/prob1.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader` and `Lines`
[INFO] [stdout]  --> src/prob1.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{BufReader, Lines};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/prob3.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader` and `Lines`
[INFO] [stdout]  --> src/prob3.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{BufReader, Lines};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/prob4.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader` and `Lines`
[INFO] [stdout]  --> src/prob4.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{BufReader, Lines};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]  --> src/prob7.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> src/prob12.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Borrow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/prob12.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let graph: Graph = edges2graph((parse_edges(lines)));
[INFO] [stdout]    |                                    ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 14 -     let graph: Graph = edges2graph((parse_edges(lines)));
[INFO] [stdout] 14 +     let graph: Graph = edges2graph(parse_edges(lines) );
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/prob14.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::LinkedList`
[INFO] [stdout]  --> src/prob14.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::LinkedList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> src/prob15.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Borrow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/prob15.rs:3:45
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BinaryHeap, HashMap, HashSet};
[INFO] [stdout]   |                                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice::Chunks`
[INFO] [stdout]  --> src/prob16.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::slice::Chunks;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/prob16.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Formatter`
[INFO] [stdout]  --> src/prob16.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::Formatter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/prob16.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 |     if (type_id == 4) {
[INFO] [stdout]    |        ^            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 85 -     if (type_id == 4) {
[INFO] [stdout] 85 +     if type_id == 4  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/prob16.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 108 |     while true {
[INFO] [stdout]     |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/prob16.rs:128:26
[INFO] [stdout]     |
[INFO] [stdout] 128 |         bits_consumed += (new_cursor - cursor);
[INFO] [stdout]     |                          ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -         bits_consumed += (new_cursor - cursor);
[INFO] [stdout] 128 +         bits_consumed += new_cursor - cursor ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BorrowMut`
[INFO] [stdout]  --> src/prob17.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::{Borrow, BorrowMut};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> src/prob18.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Borrow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::VecDeque`
[INFO] [stdout]  --> src/prob18.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::VecDeque;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `#![feature]` attribute can only be used at the crate root
[INFO] [stdout]  --> src/prob3.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(drain_filter)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `#![feature]` attribute can only be used at the crate root
[INFO] [stdout]  --> src/prob5.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(iter_zip)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `#![feature]` attribute can only be used at the crate root
[INFO] [stdout]  --> src/prob3.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(drain_filter)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `#![feature]` attribute can only be used at the crate root
[INFO] [stdout]  --> src/prob5.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(iter_zip)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0283]: type annotations needed
[INFO] [stdout]   --> src/prob11.rs:43:41
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let (bd, flashed_pts) = bfs(tf, OctopusBoard::from(board.borrow()));
[INFO] [stdout]    |                                         ^^^^^^^^^^^^ cannot infer type for reference `&_`
[INFO] [stdout]    |
[INFO] [stdout]    = note: multiple `impl`s satisfying `Vec<Vec<i64>>: From<&_>` found in the `alloc` crate:
[INFO] [stdout]            - impl<T, N> From<&[T; N]> for Vec<T>
[INFO] [stdout]              where the constant `N` has type `usize`, T: Clone;
[INFO] [stdout]            - impl<T> From<&[T]> for Vec<T>
[INFO] [stdout]              where T: Clone;
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0283]: type annotations needed
[INFO] [stdout]   --> src/prob11.rs:43:66
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let (bd, flashed_pts) = bfs(tf, OctopusBoard::from(board.borrow()));
[INFO] [stdout]    |                                                                  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: multiple `impl`s satisfying `Vec<Vec<i64>>: Borrow<_>` found in the following crates: `alloc`, `core`:
[INFO] [stdout]            - impl<T, A> Borrow<[T]> for Vec<T, A>
[INFO] [stdout]              where A: Allocator;
[INFO] [stdout]            - impl<T> Borrow<T> for T
[INFO] [stdout]              where T: ?Sized;
[INFO] [stdout] help: try using a fully qualified path to specify the expected types
[INFO] [stdout]    |
[INFO] [stdout] 43 -         let (bd, flashed_pts) = bfs(tf, OctopusBoard::from(board.borrow()));
[INFO] [stdout] 43 +         let (bd, flashed_pts) = bfs(tf, OctopusBoard::from(<Vec<Vec<i64>> as Borrow<Borrowed>>::borrow(&board)));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0283]: type annotations needed
[INFO] [stdout]   --> src/prob11.rs:43:41
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let (bd, flashed_pts) = bfs(tf, OctopusBoard::from(board.borrow()));
[INFO] [stdout]    |                                         ^^^^^^^^^^^^ cannot infer type for reference `&_`
[INFO] [stdout]    |
[INFO] [stdout]    = note: multiple `impl`s satisfying `Vec<Vec<i64>>: From<&_>` found in the `alloc` crate:
[INFO] [stdout]            - impl<T, N> From<&[T; N]> for Vec<T>
[INFO] [stdout]              where the constant `N` has type `usize`, T: Clone;
[INFO] [stdout]            - impl<T> From<&[T]> for Vec<T>
[INFO] [stdout]              where T: Clone;
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0283]: type annotations needed
[INFO] [stdout]   --> src/prob11.rs:74:96
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let (bd, flashed_octopuses): (OctopusBoard, Vec<Point>) = bfs(first_flashed_octopuses, OctopusBoard::from(board.borrow()));
[INFO] [stdout]    |                                                                                                ^^^^^^^^^^^^ cannot infer type for reference `&_`
[INFO] [stdout]    |
[INFO] [stdout]    = note: multiple `impl`s satisfying `Vec<Vec<i64>>: From<&_>` found in the `alloc` crate:
[INFO] [stdout]            - impl<T, N> From<&[T; N]> for Vec<T>
[INFO] [stdout]              where the constant `N` has type `usize`, T: Clone;
[INFO] [stdout]            - impl<T> From<&[T]> for Vec<T>
[INFO] [stdout]              where T: Clone;
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0283]: type annotations needed
[INFO] [stdout]   --> src/prob11.rs:43:66
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let (bd, flashed_pts) = bfs(tf, OctopusBoard::from(board.borrow()));
[INFO] [stdout]    |                                                                  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: multiple `impl`s satisfying `Vec<Vec<i64>>: Borrow<_>` found in the following crates: `alloc`, `core`:
[INFO] [stdout]            - impl<T, A> Borrow<[T]> for Vec<T, A>
[INFO] [stdout]              where A: Allocator;
[INFO] [stdout]            - impl<T> Borrow<T> for T
[INFO] [stdout]              where T: ?Sized;
[INFO] [stdout] help: try using a fully qualified path to specify the expected types
[INFO] [stdout]    |
[INFO] [stdout] 43 -         let (bd, flashed_pts) = bfs(tf, OctopusBoard::from(board.borrow()));
[INFO] [stdout] 43 +         let (bd, flashed_pts) = bfs(tf, OctopusBoard::from(<Vec<Vec<i64>> as Borrow<Borrowed>>::borrow(&board)));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0283]: type annotations needed
[INFO] [stdout]   --> src/prob11.rs:74:121
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let (bd, flashed_octopuses): (OctopusBoard, Vec<Point>) = bfs(first_flashed_octopuses, OctopusBoard::from(board.borrow()));
[INFO] [stdout]    |                                                                                                                         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: multiple `impl`s satisfying `Vec<Vec<i64>>: Borrow<_>` found in the following crates: `alloc`, `core`:
[INFO] [stdout]            - impl<T, A> Borrow<[T]> for Vec<T, A>
[INFO] [stdout]              where A: Allocator;
[INFO] [stdout]            - impl<T> Borrow<T> for T
[INFO] [stdout]              where T: ?Sized;
[INFO] [stdout] help: try using a fully qualified path to specify the expected types
[INFO] [stdout]    |
[INFO] [stdout] 74 -         let (bd, flashed_octopuses): (OctopusBoard, Vec<Point>) = bfs(first_flashed_octopuses, OctopusBoard::from(board.borrow()));
[INFO] [stdout] 74 +         let (bd, flashed_octopuses): (OctopusBoard, Vec<Point>) = bfs(first_flashed_octopuses, OctopusBoard::from(<Vec<Vec<i64>> as Borrow<Borrowed>>::borrow(&board)));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0283]: type annotations needed
[INFO] [stdout]   --> src/prob11.rs:74:96
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let (bd, flashed_octopuses): (OctopusBoard, Vec<Point>) = bfs(first_flashed_octopuses, OctopusBoard::from(board.borrow()));
[INFO] [stdout]    |                                                                                                ^^^^^^^^^^^^ cannot infer type for reference `&_`
[INFO] [stdout]    |
[INFO] [stdout]    = note: multiple `impl`s satisfying `Vec<Vec<i64>>: From<&_>` found in the `alloc` crate:
[INFO] [stdout]            - impl<T, N> From<&[T; N]> for Vec<T>
[INFO] [stdout]              where the constant `N` has type `usize`, T: Clone;
[INFO] [stdout]            - impl<T> From<&[T]> for Vec<T>
[INFO] [stdout]              where T: Clone;
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0283]: type annotations needed
[INFO] [stdout]   --> src/prob11.rs:74:121
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let (bd, flashed_octopuses): (OctopusBoard, Vec<Point>) = bfs(first_flashed_octopuses, OctopusBoard::from(board.borrow()));
[INFO] [stdout]    |                                                                                                                         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: multiple `impl`s satisfying `Vec<Vec<i64>>: Borrow<_>` found in the following crates: `alloc`, `core`:
[INFO] [stdout]            - impl<T, A> Borrow<[T]> for Vec<T, A>
[INFO] [stdout]              where A: Allocator;
[INFO] [stdout]            - impl<T> Borrow<T> for T
[INFO] [stdout]              where T: ?Sized;
[INFO] [stdout] help: try using a fully qualified path to specify the expected types
[INFO] [stdout]    |
[INFO] [stdout] 74 -         let (bd, flashed_octopuses): (OctopusBoard, Vec<Point>) = bfs(first_flashed_octopuses, OctopusBoard::from(board.borrow()));
[INFO] [stdout] 74 +         let (bd, flashed_octopuses): (OctopusBoard, Vec<Point>) = bfs(first_flashed_octopuses, OctopusBoard::from(<Vec<Vec<i64>> as Borrow<Borrowed>>::borrow(&board)));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/prob4.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let mut b: BingoBoard = parse_board(bd_lines.to_vec());
[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: unused variable: `u`
[INFO] [stdout]    --> src/prob4.rs:134:58
[INFO] [stdout]     |
[INFO] [stdout] 134 |     return boards.clone().into_iter().enumerate().find(|(u,b)| is_winning(b.clone()));
[INFO] [stdout]     |                                                          ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/prob4.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let mut b: BingoBoard = parse_board(bd_lines.to_vec());
[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: unused variable: `u`
[INFO] [stdout]    --> src/prob4.rs:134:58
[INFO] [stdout]     |
[INFO] [stdout] 134 |     return boards.clone().into_iter().enumerate().find(|(u,b)| is_winning(b.clone()));
[INFO] [stdout]     |                                                          ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pt`
[INFO] [stdout]   --> src/prob5.rs:48:37
[INFO] [stdout]    |
[INFO] [stdout] 48 |     return pts.into_iter().filter(|(pt, cnt)| *cnt >= 2).collect::<Vec<(Point, i64)>>().len() as i64;
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_pt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pt`
[INFO] [stdout]   --> src/prob5.rs:48:37
[INFO] [stdout]    |
[INFO] [stdout] 48 |     return pts.into_iter().filter(|(pt, cnt)| *cnt >= 2).collect::<Vec<(Point, i64)>>().len() as i64;
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_pt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pt`
[INFO] [stdout]   --> src/prob5.rs:73:37
[INFO] [stdout]    |
[INFO] [stdout] 73 |     return pts.into_iter().filter(|(pt, cnt)| *cnt >= 2).collect::<Vec<(Point, i64)>>().len() as i64;
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_pt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pt`
[INFO] [stdout]   --> src/prob5.rs:73:37
[INFO] [stdout]    |
[INFO] [stdout] 73 |     return pts.into_iter().filter(|(pt, cnt)| *cnt >= 2).collect::<Vec<(Point, i64)>>().len() as i64;
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_pt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test_input`
[INFO] [stdout]   --> src/prob6.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let test_input: String = "3,4,3,1,2".to_string();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test_input`
[INFO] [stdout]   --> src/prob6.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let test_input: String = "3,4,3,1,2".to_string();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/prob6.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut lanternfish: Vec<i64> = state.split(",").map(|x| x.parse().unwrap()).collect();
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `day`
[INFO] [stdout]   --> src/prob6.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     for day in 0..days {
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_day`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/prob6.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut lanternfish: Vec<i64> = state.split(",").map(|x| x.parse().unwrap()).collect();
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `day`
[INFO] [stdout]   --> src/prob6.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     for day in 0..days {
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_day`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/prob11.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn bfs(mut starting_points: Vec<Point>, mut board: OctopusBoard) ->  (OctopusBoard, Vec<Point>) {
[INFO] [stdout]     |        ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |        |
[INFO] [stdout]     |        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/prob11.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn bfs(mut starting_points: Vec<Point>, mut board: OctopusBoard) ->  (OctopusBoard, Vec<Point>) {
[INFO] [stdout]     |        ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |        |
[INFO] [stdout]     |        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/prob14.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut cur_polymer: Polymer = polymer.clone();
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/prob14.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut cur_polymer: Polymer = polymer.clone();
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/prob15.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut cur_pos: Point = Point { row: 0, col: 0 };
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/prob15.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 |             let mut new_row: Vec<i64> = og_row.clone().into_iter().map(|e| ((e + i) % 9) + 1).collect();
[INFO] [stdout]    |                 ----^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/prob15.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let mut cur_pos: Point = Point { row: 0, col: 0 };
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev`
[INFO] [stdout]   --> src/prob15.rs:83:16
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let (dist, prev) = dijkstra(cur_pos, goal, new_board.clone());
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_prev`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/prob15.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut cur_pos: Point = Point { row: 0, col: 0 };
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/prob15.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 |             let mut new_row: Vec<i64> = og_row.clone().into_iter().map(|e| ((e + i) % 9) + 1).collect();
[INFO] [stdout]    |                 ----^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/prob15.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let mut cur_pos: Point = Point { row: 0, col: 0 };
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev`
[INFO] [stdout]   --> src/prob15.rs:83:16
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let (dist, prev) = dijkstra(cur_pos, goal, new_board.clone());
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_prev`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cursor`
[INFO] [stdout]   --> src/prob16.rs:29:18
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let (packet, cursor) = decode(transmission, 0);
[INFO] [stdout]    |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cursor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cursor`
[INFO] [stdout]   --> src/prob16.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let (packet, cursor) = decode(transmission, 0);
[INFO] [stdout]    |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cursor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cursor`
[INFO] [stdout]   --> src/prob16.rs:29:18
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let (packet, cursor) = decode(transmission, 0);
[INFO] [stdout]    |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cursor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cursor`
[INFO] [stdout]   --> src/prob16.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let (packet, cursor) = decode(transmission, 0);
[INFO] [stdout]    |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cursor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_line`
[INFO] [stdout]   --> src/prob17.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let first_line: String = lines.clone().into_iter().nth(0).unwrap();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_line`
[INFO] [stdout]   --> src/prob17.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let first_line: String = lines.clone().into_iter().nth(0).unwrap();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/prob18.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn reduce(p: Pair) -> Pair {
[INFO] [stdout]    |           ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/prob18.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn reduce(p: Pair) -> Pair {
[INFO] [stdout]    |           ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0283`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0283`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `untitled` (bin "untitled") due to 4 previous errors; 47 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `untitled` (bin "untitled" test) due to 4 previous errors; 47 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "712496eec142b96ae8dc597141835b53179d7b0d134b5597f7845f71f98782d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "712496eec142b96ae8dc597141835b53179d7b0d134b5597f7845f71f98782d5", kill_on_drop: false }`
[INFO] [stdout] 712496eec142b96ae8dc597141835b53179d7b0d134b5597f7845f71f98782d5
