[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] testing tomnis/aoc21 against 1.73.0 for beta-1.74-4 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftomnis%2Faoc21" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/tomnis/aoc21 on toolchain 1.73.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.73.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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-0-tc1/source/Cargo.toml [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" "+1.73.0" "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] [stderr] Downloading crates ... [INFO] [stderr] Downloaded either v1.6.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:023092b8bfa974c7f3e45c5ce651cc8dd3afd5e76915d5995b8dacd3032bf956" "/opt/rustwide/cargo-home/bin/cargo" "+1.73.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6927977418e62f14cc6237f17a8a018f899996d238f9811d02a885852a0bc3a6 [INFO] running `Command { std: "docker" "start" "-a" "6927977418e62f14cc6237f17a8a018f899996d238f9811d02a885852a0bc3a6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6927977418e62f14cc6237f17a8a018f899996d238f9811d02a885852a0bc3a6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6927977418e62f14cc6237f17a8a018f899996d238f9811d02a885852a0bc3a6", kill_on_drop: false }` [INFO] [stdout] 6927977418e62f14cc6237f17a8a018f899996d238f9811d02a885852a0bc3a6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:023092b8bfa974c7f3e45c5ce651cc8dd3afd5e76915d5995b8dacd3032bf956" "/opt/rustwide/cargo-home/bin/cargo" "+1.73.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d16cdd25aaa5cba7eddd6fd14c75a15105748c6f6bfd161b17682508cd95af7e [INFO] running `Command { std: "docker" "start" "-a" "d16cdd25aaa5cba7eddd6fd14c75a15105748c6f6bfd161b17682508cd95af7e", kill_on_drop: false }` [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling 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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufReader`, `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)]` 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`, `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`, `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`, `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`, `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: crate-level attribute should be in the root module [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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate-level attribute should be in the root module [INFO] [stdout] --> src/prob5.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(iter_zip)] [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)]` 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)]` 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::>().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::>().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: `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 = 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: `step` [INFO] [stdout] --> src/prob11.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | for step in 0..100 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [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, mut board: OctopusBoard) -> (OctopusBoard, Vec) { [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: 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:73:17 [INFO] [stdout] | [INFO] [stdout] 73 | let mut new_row: Vec = 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: `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: `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: function `prob2` is never used [INFO] [stdout] --> src/prob2.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | pub(crate) fn prob2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob2.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn part1(lines: Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob2.rs:42:4 [INFO] [stdout] | [INFO] [stdout] 42 | fn part2(lines: Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_binary` is never used [INFO] [stdout] --> src/util.rs:20:15 [INFO] [stdout] | [INFO] [stdout] 20 | pub(crate) fn parse_binary(bits: String) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_binary_substring` is never used [INFO] [stdout] --> src/util.rs:25:15 [INFO] [stdout] | [INFO] [stdout] 25 | pub(crate) fn parse_binary_substring(bits: String, start: usize, end: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_superset` is never used [INFO] [stdout] --> src/util.rs:31:15 [INFO] [stdout] | [INFO] [stdout] 31 | pub(crate) fn is_superset(a: String, b: String) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `all_same_chars` is never used [INFO] [stdout] --> src/util.rs:35:15 [INFO] [stdout] | [INFO] [stdout] 35 | pub(crate) fn all_same_chars(a: String, b: String) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob1` is never used [INFO] [stdout] --> src/prob1.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | pub(crate) fn prob1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob1.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn part1(nums: Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob1.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn part2(nums: Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_pairs_greater` is never used [INFO] [stdout] --> src/prob1.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn count_pairs_greater(nums: Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob3` is never used [INFO] [stdout] --> src/prob3.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) fn prob3() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob3.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn part1(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob3.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn part2(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `oxygen_rating` is never used [INFO] [stdout] --> src/prob3.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn oxygen_rating(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `co2_scrubber_rating` is never used [INFO] [stdout] --> src/prob3.rs:53:4 [INFO] [stdout] | [INFO] [stdout] 53 | fn co2_scrubber_rating(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gamma` is never used [INFO] [stdout] --> src/prob3.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 77 | fn gamma(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `epsilon` is never used [INFO] [stdout] --> src/prob3.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn epsilon(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `most_common` is never used [INFO] [stdout] --> src/prob3.rs:109:4 [INFO] [stdout] | [INFO] [stdout] 109 | fn most_common(col: i32, lines: Vec) -> char { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `least_common` is never used [INFO] [stdout] --> src/prob3.rs:138:4 [INFO] [stdout] | [INFO] [stdout] 138 | fn least_common(col: i32, lines: Vec) -> char { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `num` and `is_marked` are never read [INFO] [stdout] --> src/prob4.rs:6:20 [INFO] [stdout] | [INFO] [stdout] 6 | struct BingoCell { num: i32, is_marked: bool} [INFO] [stdout] | --------- ^^^ ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this struct [INFO] [stdout] | [INFO] [stdout] = note: `BingoCell` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `BingoBoard` is never used [INFO] [stdout] --> src/prob4.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | type BingoBoard = Vec>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob4` is never used [INFO] [stdout] --> src/prob4.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) fn prob4() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob4.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn part1(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob4.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn part2(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `call_num` is never used [INFO] [stdout] --> src/prob4.rs:68:4 [INFO] [stdout] | [INFO] [stdout] 68 | fn call_num(num: i32, boards: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `call_num_board` is never used [INFO] [stdout] --> src/prob4.rs:73:4 [INFO] [stdout] | [INFO] [stdout] 73 | fn call_num_board(num: i32, board: BingoBoard) -> BingoBoard { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `called_nums` is never used [INFO] [stdout] --> src/prob4.rs:88:4 [INFO] [stdout] | [INFO] [stdout] 88 | fn called_nums(line: String) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_boards` is never used [INFO] [stdout] --> src/prob4.rs:92:4 [INFO] [stdout] | [INFO] [stdout] 92 | fn parse_boards(lines: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_board` is never used [INFO] [stdout] --> src/prob4.rs:109:4 [INFO] [stdout] | [INFO] [stdout] 109 | fn parse_board(lines: Vec) -> BingoBoard { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `winning_board` is never used [INFO] [stdout] --> src/prob4.rs:129:4 [INFO] [stdout] | [INFO] [stdout] 129 | fn winning_board(boards: Vec) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `winning_board_and_idx` is never used [INFO] [stdout] --> src/prob4.rs:133:4 [INFO] [stdout] | [INFO] [stdout] 133 | fn winning_board_and_idx(boards: Vec) -> Option<(usize, BingoBoard)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_winning` is never used [INFO] [stdout] --> src/prob4.rs:137:4 [INFO] [stdout] | [INFO] [stdout] 137 | fn is_winning(board: BingoBoard) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_col_winning` is never used [INFO] [stdout] --> src/prob4.rs:156:4 [INFO] [stdout] | [INFO] [stdout] 156 | fn is_col_winning(col: i32, board: BingoBoard) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `score` is never used [INFO] [stdout] --> src/prob4.rs:169:4 [INFO] [stdout] | [INFO] [stdout] 169 | fn score(board: BingoBoard) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `start` and `end` are never read [INFO] [stdout] --> src/prob5.rs:11:22 [INFO] [stdout] | [INFO] [stdout] 11 | struct LineSegment { start: Point, end: Point } [INFO] [stdout] | ----------- ^^^^^ ^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this struct [INFO] [stdout] | [INFO] [stdout] = note: `LineSegment` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob5` is never used [INFO] [stdout] --> src/prob5.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | pub(crate) fn prob5() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob5.rs:22:4 [INFO] [stdout] | [INFO] [stdout] 22 | fn part1(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob5.rs:52:4 [INFO] [stdout] | [INFO] [stdout] 52 | fn part2(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_line_segments` is never used [INFO] [stdout] --> src/prob5.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 77 | fn parse_line_segments(lines: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `points_on_segment` is never used [INFO] [stdout] --> src/prob5.rs:95:4 [INFO] [stdout] | [INFO] [stdout] 95 | fn points_on_segment(segment: LineSegment) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_horizontal_or_vertical` is never used [INFO] [stdout] --> src/prob5.rs:156:4 [INFO] [stdout] | [INFO] [stdout] 156 | fn is_horizontal_or_vertical(segment: LineSegment) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob6` is never used [INFO] [stdout] --> src/prob6.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) fn prob6() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob6.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn part1(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob6.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn part2(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `simulate_fish` is never used [INFO] [stdout] --> src/prob6.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn simulate_fish(state: String, days: i64) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `simulate_fish_fast` is never used [INFO] [stdout] --> src/prob6.rs:49:4 [INFO] [stdout] | [INFO] [stdout] 49 | fn simulate_fish_fast(state: String, days: i64) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob7` is never used [INFO] [stdout] --> src/prob7.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) fn prob7() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob7.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn part1(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob7.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn part2(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `score` is never used [INFO] [stdout] --> src/prob7.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn score(goal: i64, crabs: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `score2` is never used [INFO] [stdout] --> src/prob7.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn score2(goal: i64, crabs: Vec) -> i64 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `signal_patterns` and `output_values` are never read [INFO] [stdout] --> src/prob8.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | struct Entry { signal_patterns: Vec, output_values: Vec } [INFO] [stdout] | ----- ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this struct [INFO] [stdout] | [INFO] [stdout] = note: `Entry` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob8` is never used [INFO] [stdout] --> src/prob8.rs:8:15 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) fn prob8() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob8.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn part1(entries: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob8.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn part2(entries: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_entry` is never used [INFO] [stdout] --> src/prob8.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn decode_entry(entry: Entry) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_1_4_7_8` is never used [INFO] [stdout] --> src/prob8.rs:128:4 [INFO] [stdout] | [INFO] [stdout] 128 | fn count_1_4_7_8(output_values: Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_entries` is never used [INFO] [stdout] --> src/prob8.rs:132:4 [INFO] [stdout] | [INFO] [stdout] 132 | fn parse_entries(lines: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_line` is never used [INFO] [stdout] --> src/prob8.rs:136:4 [INFO] [stdout] | [INFO] [stdout] 136 | fn parse_line(line: String) -> Entry { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_1_4_7_8` is never used [INFO] [stdout] --> src/prob8.rs:143:4 [INFO] [stdout] | [INFO] [stdout] 143 | fn is_1_4_7_8(output_value: String) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Board` is never used [INFO] [stdout] --> src/prob9.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type Board = Vec>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Basin` is never used [INFO] [stdout] --> src/prob9.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | type Basin = Vec; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob9` is never used [INFO] [stdout] --> src/prob9.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | pub(crate) fn prob9() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob9.rs:28:4 [INFO] [stdout] | [INFO] [stdout] 28 | fn part1(board: Board) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob9.rs:53:4 [INFO] [stdout] | [INFO] [stdout] 53 | fn part2(board: Board) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_basin` is never used [INFO] [stdout] --> src/prob9.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 66 | fn get_basin(low_point: Point, board: Board) -> Basin { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `neighbors` is never used [INFO] [stdout] --> src/prob9.rs:91:4 [INFO] [stdout] | [INFO] [stdout] 91 | fn neighbors(p: Point, board: Board) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `low_points` is never used [INFO] [stdout] --> src/prob9.rs:100:4 [INFO] [stdout] | [INFO] [stdout] 100 | fn low_points(board: Board) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_low_point` is never used [INFO] [stdout] --> src/prob9.rs:115:4 [INFO] [stdout] | [INFO] [stdout] 115 | fn is_low_point(row: usize, col: usize, board: Board) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_board` is never used [INFO] [stdout] --> src/prob9.rs:125:4 [INFO] [stdout] | [INFO] [stdout] 125 | fn parse_board(lines: Vec) -> Board { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_line` is never used [INFO] [stdout] --> src/prob9.rs:129:4 [INFO] [stdout] | [INFO] [stdout] 129 | fn parse_line(line: String) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob10` is never used [INFO] [stdout] --> src/prob10.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) fn prob10() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob10.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn part1(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob10.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn part2(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `closing_char` is never used [INFO] [stdout] --> src/prob10.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn closing_char(ch: char) -> char { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `closing_sequence` is never used [INFO] [stdout] --> src/prob10.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn closing_sequence(line: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `score_completion_sequence` is never used [INFO] [stdout] --> src/prob10.rs:71:4 [INFO] [stdout] | [INFO] [stdout] 71 | fn score_completion_sequence(seq: String) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `first_illegal_character` is never used [INFO] [stdout] --> src/prob10.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn first_illegal_character(line: String) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `matches` is never used [INFO] [stdout] --> src/prob10.rs:113:4 [INFO] [stdout] | [INFO] [stdout] 113 | fn matches(a: char, b: char) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `score` is never used [INFO] [stdout] --> src/prob10.rs:139:4 [INFO] [stdout] | [INFO] [stdout] 139 | fn score(ch: char) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `OctopusBoard` is never used [INFO] [stdout] --> src/prob11.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | type OctopusBoard = Vec>; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob11` is never used [INFO] [stdout] --> src/prob11.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) fn prob11() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob11.rs:28:4 [INFO] [stdout] | [INFO] [stdout] 28 | fn part1(mut board: OctopusBoard) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob11.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn part2(mut board: OctopusBoard) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `neighbors` is never used [INFO] [stdout] --> src/prob11.rs:89:4 [INFO] [stdout] | [INFO] [stdout] 89 | fn neighbors(p: Point, board: OctopusBoard) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bfs` is never used [INFO] [stdout] --> src/prob11.rs:103:4 [INFO] [stdout] | [INFO] [stdout] 103 | fn bfs(mut starting_points: Vec, mut board: OctopusBoard) -> (OctopusBoard, Vec) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `greater_than` is never used [INFO] [stdout] --> src/prob11.rs:129:4 [INFO] [stdout] | [INFO] [stdout] 129 | fn greater_than(target: i64, board: OctopusBoard) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_board` is never used [INFO] [stdout] --> src/prob11.rs:143:4 [INFO] [stdout] | [INFO] [stdout] 143 | fn parse_board(lines: Vec) -> OctopusBoard { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Path` is never used [INFO] [stdout] --> src/prob12.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type Path = Vec; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Graph` is never used [INFO] [stdout] --> src/prob12.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | type Graph = HashMap>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob12` is never used [INFO] [stdout] --> src/prob12.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | pub(crate) fn prob12() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob12.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn part1(graph: Graph) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob12.rs:49:4 [INFO] [stdout] | [INFO] [stdout] 49 | fn part2(graph: Graph) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_visit_lower` is never used [INFO] [stdout] --> src/prob12.rs:79:4 [INFO] [stdout] | [INFO] [stdout] 79 | fn can_visit_lower(node: String, path: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lower_counts` is never used [INFO] [stdout] --> src/prob12.rs:84:4 [INFO] [stdout] | [INFO] [stdout] 84 | fn lower_counts(path: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `edges2graph` is never used [INFO] [stdout] --> src/prob12.rs:102:4 [INFO] [stdout] | [INFO] [stdout] 102 | fn edges2graph(edges: Vec) -> Graph { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_edges` is never used [INFO] [stdout] --> src/prob12.rs:124:4 [INFO] [stdout] | [INFO] [stdout] 124 | fn parse_edges(lines: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_edge` is never used [INFO] [stdout] --> src/prob12.rs:128:4 [INFO] [stdout] | [INFO] [stdout] 128 | fn parse_edge(line: String) -> Edge { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Input` is never used [INFO] [stdout] --> src/prob13.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | type Input = (Vec, Vec); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob13` is never used [INFO] [stdout] --> src/prob13.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | pub(crate) fn prob13() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob13.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn part1(input: Input) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob13.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn part2(input: Input) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_output` is never used [INFO] [stdout] --> src/prob13.rs:58:4 [INFO] [stdout] | [INFO] [stdout] 58 | fn print_output(paper: HashSet) -> () { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fold` is never used [INFO] [stdout] --> src/prob13.rs:72:4 [INFO] [stdout] | [INFO] [stdout] 72 | fn fold(paper: HashSet, fold: Fold) -> HashSet { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fold_x` is never used [INFO] [stdout] --> src/prob13.rs:84:4 [INFO] [stdout] | [INFO] [stdout] 84 | fn fold_x(paper: HashSet, fold: Fold) -> HashSet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fold_y` is never used [INFO] [stdout] --> src/prob13.rs:116:4 [INFO] [stdout] | [INFO] [stdout] 116 | fn fold_y(paper: HashSet, fold: Fold) -> HashSet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_lines` is never used [INFO] [stdout] --> src/prob13.rs:135:4 [INFO] [stdout] | [INFO] [stdout] 135 | fn parse_lines(lines: Vec) -> Input { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_point` is never used [INFO] [stdout] --> src/prob13.rs:143:4 [INFO] [stdout] | [INFO] [stdout] 143 | fn parse_point(line: String) -> Point { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_fold` is never used [INFO] [stdout] --> src/prob13.rs:148:4 [INFO] [stdout] | [INFO] [stdout] 148 | fn parse_fold(line: String) -> Fold { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Polymer` is never used [INFO] [stdout] --> src/prob14.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type Polymer = String; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Input` is never used [INFO] [stdout] --> src/prob14.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 13 | type Input = (Polymer, Vec); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob14` is never used [INFO] [stdout] --> src/prob14.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | pub(crate) fn prob14() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob14.rs:24:4 [INFO] [stdout] | [INFO] [stdout] 24 | fn part1(input: Input) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob14.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn part2(input: Input) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `step` is never used [INFO] [stdout] --> src/prob14.rs:135:4 [INFO] [stdout] | [INFO] [stdout] 135 | fn step(old_polymer: Polymer, rules: Vec) -> Polymer { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pair` is never used [INFO] [stdout] --> src/prob14.rs:164:4 [INFO] [stdout] | [INFO] [stdout] 164 | fn pair(win: &[char], rules: Vec) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `counts` is never used [INFO] [stdout] --> src/prob14.rs:183:4 [INFO] [stdout] | [INFO] [stdout] 183 | fn counts(polymer: Polymer) -> HashMap { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/prob14.rs:197:4 [INFO] [stdout] | [INFO] [stdout] 197 | fn parse_input(lines: Vec) -> Input { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_rules` is never used [INFO] [stdout] --> src/prob14.rs:204:4 [INFO] [stdout] | [INFO] [stdout] 204 | fn parse_rules(lines: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_rule` is never used [INFO] [stdout] --> src/prob14.rs:208:4 [INFO] [stdout] | [INFO] [stdout] 208 | fn parse_rule(line: String) -> PairInsertionRule { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Board` is never used [INFO] [stdout] --> src/prob15.rs:18:6 [INFO] [stdout] | [INFO] [stdout] 18 | type Board = Vec>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob15` is never used [INFO] [stdout] --> src/prob15.rs:38:15 [INFO] [stdout] | [INFO] [stdout] 38 | pub(crate) fn prob15() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob15.rs:45:4 [INFO] [stdout] | [INFO] [stdout] 45 | fn part1(board: Board) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob15.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn part2(board: Board) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dijkstra` is never used [INFO] [stdout] --> src/prob15.rs:89:4 [INFO] [stdout] | [INFO] [stdout] 89 | fn dijkstra(start: Point, goal: Point, graph: Board) -> (HashMap, HashMap) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_min_risk_value` is never used [INFO] [stdout] --> src/prob15.rs:133:4 [INFO] [stdout] | [INFO] [stdout] 133 | fn find_min_risk_value(cur_pos: Point, goal: Point, board: Board, mut cache: &mut HashMap) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `neighbors` is never used [INFO] [stdout] --> src/prob15.rs:156:4 [INFO] [stdout] | [INFO] [stdout] 156 | fn neighbors(p: Point, b: Board) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_board` is never used [INFO] [stdout] --> src/prob15.rs:165:4 [INFO] [stdout] | [INFO] [stdout] 165 | fn parse_board(lines: Vec) -> Board { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_row` is never used [INFO] [stdout] --> src/prob15.rs:169:4 [INFO] [stdout] | [INFO] [stdout] 169 | fn parse_row(line: String) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Packet` is never constructed [INFO] [stdout] --> src/prob16.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Packet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob16` is never used [INFO] [stdout] --> src/prob16.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | pub(crate) fn prob16() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob16.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn part1(s: String) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob16.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn part2(s: String) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `value_of` is never used [INFO] [stdout] --> src/prob16.rs:42:4 [INFO] [stdout] | [INFO] [stdout] 42 | fn value_of(packet: Packet) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cursor_test` is never used [INFO] [stdout] --> src/prob16.rs:65:4 [INFO] [stdout] | [INFO] [stdout] 65 | fn cursor_test(mut cursor: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sum_versions` is never used [INFO] [stdout] --> src/prob16.rs:72:4 [INFO] [stdout] | [INFO] [stdout] 72 | fn sum_versions(packet: Packet) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode` is never used [INFO] [stdout] --> src/prob16.rs:78:4 [INFO] [stdout] | [INFO] [stdout] 78 | fn decode(transmission: String, mut cursor: usize) -> (Packet, usize) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_literal` is never used [INFO] [stdout] --> src/prob16.rs:105:4 [INFO] [stdout] | [INFO] [stdout] 105 | fn decode_literal(transmission: String, mut cursor: usize) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_subpackets_fixed_bits` is never used [INFO] [stdout] --> src/prob16.rs:120:4 [INFO] [stdout] | [INFO] [stdout] 120 | fn decode_subpackets_fixed_bits(transmission: String, mut cursor: usize) -> (Vec, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_subpackets_fixed_num` is never used [INFO] [stdout] --> src/prob16.rs:135:4 [INFO] [stdout] | [INFO] [stdout] 135 | fn decode_subpackets_fixed_num(transmission: String, mut cursor: usize) -> (Vec, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_packet` is never used [INFO] [stdout] --> src/prob16.rs:150:4 [INFO] [stdout] | [INFO] [stdout] 150 | fn print_packet(packet: Packet) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expand_hex` is never used [INFO] [stdout] --> src/prob16.rs:161:4 [INFO] [stdout] | [INFO] [stdout] 161 | fn expand_hex(ch: char) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Velocity` is never used [INFO] [stdout] --> src/prob17.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type Velocity = Pair2; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Position` is never used [INFO] [stdout] --> src/prob17.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type Position = Pair2; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob17` is never used [INFO] [stdout] --> src/prob17.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | pub(crate) fn prob17() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob17.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn part1(area: TargetArea) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob17.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn part2(area: TargetArea) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shoot` is never used [INFO] [stdout] --> src/prob17.rs:80:4 [INFO] [stdout] | [INFO] [stdout] 80 | fn shoot(init_pos: Position, init_v: Velocity, area: TargetArea) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `step` is never used [INFO] [stdout] --> src/prob17.rs:103:4 [INFO] [stdout] | [INFO] [stdout] 103 | fn step(pos: &mut Position, v: &mut Velocity) -> () { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_within_area` is never used [INFO] [stdout] --> src/prob17.rs:117:4 [INFO] [stdout] | [INFO] [stdout] 117 | fn is_within_area(pos: Position, area: TargetArea) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `missed` is never used [INFO] [stdout] --> src/prob17.rs:121:4 [INFO] [stdout] | [INFO] [stdout] 121 | fn missed(pos: Position, area: TargetArea) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing [INFO] [stdout] --> src/prob17.rs:89:31 [INFO] [stdout] | [INFO] [stdout] 89 | max_y = max(max_y, pos.borrow().y); [INFO] [stdout] | ^^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `Pair2` does not implement `Borrow`, so calling `borrow` on `&Pair2` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 201 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.97s [INFO] running `Command { std: "docker" "inspect" "d16cdd25aaa5cba7eddd6fd14c75a15105748c6f6bfd161b17682508cd95af7e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d16cdd25aaa5cba7eddd6fd14c75a15105748c6f6bfd161b17682508cd95af7e", kill_on_drop: false }` [INFO] [stdout] d16cdd25aaa5cba7eddd6fd14c75a15105748c6f6bfd161b17682508cd95af7e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:023092b8bfa974c7f3e45c5ce651cc8dd3afd5e76915d5995b8dacd3032bf956" "/opt/rustwide/cargo-home/bin/cargo" "+1.73.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] efb8d7548e5a1bbbcc3ab207d670f3c3c7025955706821f6c7a0e26626d46855 [INFO] running `Command { std: "docker" "start" "-a" "efb8d7548e5a1bbbcc3ab207d670f3c3c7025955706821f6c7a0e26626d46855", kill_on_drop: false }` [INFO] [stderr] Compiling 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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufReader`, `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)]` 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`, `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`, `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`, `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`, `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: crate-level attribute should be in the root module [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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate-level attribute should be in the root module [INFO] [stdout] --> src/prob5.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(iter_zip)] [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)]` 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)]` 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::>().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::>().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: `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 = 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: `step` [INFO] [stdout] --> src/prob11.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | for step in 0..100 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [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, mut board: OctopusBoard) -> (OctopusBoard, Vec) { [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: 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:73:17 [INFO] [stdout] | [INFO] [stdout] 73 | let mut new_row: Vec = 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: `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: `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: function `prob2` is never used [INFO] [stdout] --> src/prob2.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | pub(crate) fn prob2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob2.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn part1(lines: Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob2.rs:42:4 [INFO] [stdout] | [INFO] [stdout] 42 | fn part2(lines: Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_binary` is never used [INFO] [stdout] --> src/util.rs:20:15 [INFO] [stdout] | [INFO] [stdout] 20 | pub(crate) fn parse_binary(bits: String) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_binary_substring` is never used [INFO] [stdout] --> src/util.rs:25:15 [INFO] [stdout] | [INFO] [stdout] 25 | pub(crate) fn parse_binary_substring(bits: String, start: usize, end: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_superset` is never used [INFO] [stdout] --> src/util.rs:31:15 [INFO] [stdout] | [INFO] [stdout] 31 | pub(crate) fn is_superset(a: String, b: String) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `all_same_chars` is never used [INFO] [stdout] --> src/util.rs:35:15 [INFO] [stdout] | [INFO] [stdout] 35 | pub(crate) fn all_same_chars(a: String, b: String) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob1` is never used [INFO] [stdout] --> src/prob1.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | pub(crate) fn prob1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob1.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn part1(nums: Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob1.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn part2(nums: Vec) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_pairs_greater` is never used [INFO] [stdout] --> src/prob1.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn count_pairs_greater(nums: Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob3` is never used [INFO] [stdout] --> src/prob3.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) fn prob3() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob3.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn part1(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob3.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn part2(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `oxygen_rating` is never used [INFO] [stdout] --> src/prob3.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn oxygen_rating(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `co2_scrubber_rating` is never used [INFO] [stdout] --> src/prob3.rs:53:4 [INFO] [stdout] | [INFO] [stdout] 53 | fn co2_scrubber_rating(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gamma` is never used [INFO] [stdout] --> src/prob3.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 77 | fn gamma(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `epsilon` is never used [INFO] [stdout] --> src/prob3.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn epsilon(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `most_common` is never used [INFO] [stdout] --> src/prob3.rs:109:4 [INFO] [stdout] | [INFO] [stdout] 109 | fn most_common(col: i32, lines: Vec) -> char { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `least_common` is never used [INFO] [stdout] --> src/prob3.rs:138:4 [INFO] [stdout] | [INFO] [stdout] 138 | fn least_common(col: i32, lines: Vec) -> char { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `num` and `is_marked` are never read [INFO] [stdout] --> src/prob4.rs:6:20 [INFO] [stdout] | [INFO] [stdout] 6 | struct BingoCell { num: i32, is_marked: bool} [INFO] [stdout] | --------- ^^^ ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this struct [INFO] [stdout] | [INFO] [stdout] = note: `BingoCell` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `BingoBoard` is never used [INFO] [stdout] --> src/prob4.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | type BingoBoard = Vec>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob4` is never used [INFO] [stdout] --> src/prob4.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) fn prob4() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob4.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn part1(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob4.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn part2(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `call_num` is never used [INFO] [stdout] --> src/prob4.rs:68:4 [INFO] [stdout] | [INFO] [stdout] 68 | fn call_num(num: i32, boards: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `call_num_board` is never used [INFO] [stdout] --> src/prob4.rs:73:4 [INFO] [stdout] | [INFO] [stdout] 73 | fn call_num_board(num: i32, board: BingoBoard) -> BingoBoard { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `called_nums` is never used [INFO] [stdout] --> src/prob4.rs:88:4 [INFO] [stdout] | [INFO] [stdout] 88 | fn called_nums(line: String) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_boards` is never used [INFO] [stdout] --> src/prob4.rs:92:4 [INFO] [stdout] | [INFO] [stdout] 92 | fn parse_boards(lines: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_board` is never used [INFO] [stdout] --> src/prob4.rs:109:4 [INFO] [stdout] | [INFO] [stdout] 109 | fn parse_board(lines: Vec) -> BingoBoard { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `winning_board` is never used [INFO] [stdout] --> src/prob4.rs:129:4 [INFO] [stdout] | [INFO] [stdout] 129 | fn winning_board(boards: Vec) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `winning_board_and_idx` is never used [INFO] [stdout] --> src/prob4.rs:133:4 [INFO] [stdout] | [INFO] [stdout] 133 | fn winning_board_and_idx(boards: Vec) -> Option<(usize, BingoBoard)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_winning` is never used [INFO] [stdout] --> src/prob4.rs:137:4 [INFO] [stdout] | [INFO] [stdout] 137 | fn is_winning(board: BingoBoard) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_col_winning` is never used [INFO] [stdout] --> src/prob4.rs:156:4 [INFO] [stdout] | [INFO] [stdout] 156 | fn is_col_winning(col: i32, board: BingoBoard) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `score` is never used [INFO] [stdout] --> src/prob4.rs:169:4 [INFO] [stdout] | [INFO] [stdout] 169 | fn score(board: BingoBoard) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `start` and `end` are never read [INFO] [stdout] --> src/prob5.rs:11:22 [INFO] [stdout] | [INFO] [stdout] 11 | struct LineSegment { start: Point, end: Point } [INFO] [stdout] | ----------- ^^^^^ ^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this struct [INFO] [stdout] | [INFO] [stdout] = note: `LineSegment` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob5` is never used [INFO] [stdout] --> src/prob5.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | pub(crate) fn prob5() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob5.rs:22:4 [INFO] [stdout] | [INFO] [stdout] 22 | fn part1(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob5.rs:52:4 [INFO] [stdout] | [INFO] [stdout] 52 | fn part2(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_line_segments` is never used [INFO] [stdout] --> src/prob5.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 77 | fn parse_line_segments(lines: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `points_on_segment` is never used [INFO] [stdout] --> src/prob5.rs:95:4 [INFO] [stdout] | [INFO] [stdout] 95 | fn points_on_segment(segment: LineSegment) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_horizontal_or_vertical` is never used [INFO] [stdout] --> src/prob5.rs:156:4 [INFO] [stdout] | [INFO] [stdout] 156 | fn is_horizontal_or_vertical(segment: LineSegment) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob6` is never used [INFO] [stdout] --> src/prob6.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) fn prob6() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob6.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn part1(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob6.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn part2(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `simulate_fish` is never used [INFO] [stdout] --> src/prob6.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn simulate_fish(state: String, days: i64) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `simulate_fish_fast` is never used [INFO] [stdout] --> src/prob6.rs:49:4 [INFO] [stdout] | [INFO] [stdout] 49 | fn simulate_fish_fast(state: String, days: i64) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob7` is never used [INFO] [stdout] --> src/prob7.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) fn prob7() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob7.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn part1(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob7.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn part2(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `score` is never used [INFO] [stdout] --> src/prob7.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn score(goal: i64, crabs: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `score2` is never used [INFO] [stdout] --> src/prob7.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn score2(goal: i64, crabs: Vec) -> i64 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `signal_patterns` and `output_values` are never read [INFO] [stdout] --> src/prob8.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | struct Entry { signal_patterns: Vec, output_values: Vec } [INFO] [stdout] | ----- ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this struct [INFO] [stdout] | [INFO] [stdout] = note: `Entry` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob8` is never used [INFO] [stdout] --> src/prob8.rs:8:15 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) fn prob8() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob8.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn part1(entries: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob8.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn part2(entries: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_entry` is never used [INFO] [stdout] --> src/prob8.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn decode_entry(entry: Entry) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_1_4_7_8` is never used [INFO] [stdout] --> src/prob8.rs:128:4 [INFO] [stdout] | [INFO] [stdout] 128 | fn count_1_4_7_8(output_values: Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_entries` is never used [INFO] [stdout] --> src/prob8.rs:132:4 [INFO] [stdout] | [INFO] [stdout] 132 | fn parse_entries(lines: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_line` is never used [INFO] [stdout] --> src/prob8.rs:136:4 [INFO] [stdout] | [INFO] [stdout] 136 | fn parse_line(line: String) -> Entry { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_1_4_7_8` is never used [INFO] [stdout] --> src/prob8.rs:143:4 [INFO] [stdout] | [INFO] [stdout] 143 | fn is_1_4_7_8(output_value: String) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Board` is never used [INFO] [stdout] --> src/prob9.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type Board = Vec>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Basin` is never used [INFO] [stdout] --> src/prob9.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | type Basin = Vec; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob9` is never used [INFO] [stdout] --> src/prob9.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | pub(crate) fn prob9() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob9.rs:28:4 [INFO] [stdout] | [INFO] [stdout] 28 | fn part1(board: Board) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob9.rs:53:4 [INFO] [stdout] | [INFO] [stdout] 53 | fn part2(board: Board) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_basin` is never used [INFO] [stdout] --> src/prob9.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 66 | fn get_basin(low_point: Point, board: Board) -> Basin { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `neighbors` is never used [INFO] [stdout] --> src/prob9.rs:91:4 [INFO] [stdout] | [INFO] [stdout] 91 | fn neighbors(p: Point, board: Board) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `low_points` is never used [INFO] [stdout] --> src/prob9.rs:100:4 [INFO] [stdout] | [INFO] [stdout] 100 | fn low_points(board: Board) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_low_point` is never used [INFO] [stdout] --> src/prob9.rs:115:4 [INFO] [stdout] | [INFO] [stdout] 115 | fn is_low_point(row: usize, col: usize, board: Board) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_board` is never used [INFO] [stdout] --> src/prob9.rs:125:4 [INFO] [stdout] | [INFO] [stdout] 125 | fn parse_board(lines: Vec) -> Board { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_line` is never used [INFO] [stdout] --> src/prob9.rs:129:4 [INFO] [stdout] | [INFO] [stdout] 129 | fn parse_line(line: String) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob10` is never used [INFO] [stdout] --> src/prob10.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) fn prob10() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob10.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn part1(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob10.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn part2(lines: Vec) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `closing_char` is never used [INFO] [stdout] --> src/prob10.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn closing_char(ch: char) -> char { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `closing_sequence` is never used [INFO] [stdout] --> src/prob10.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn closing_sequence(line: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `score_completion_sequence` is never used [INFO] [stdout] --> src/prob10.rs:71:4 [INFO] [stdout] | [INFO] [stdout] 71 | fn score_completion_sequence(seq: String) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `first_illegal_character` is never used [INFO] [stdout] --> src/prob10.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn first_illegal_character(line: String) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `matches` is never used [INFO] [stdout] --> src/prob10.rs:113:4 [INFO] [stdout] | [INFO] [stdout] 113 | fn matches(a: char, b: char) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `score` is never used [INFO] [stdout] --> src/prob10.rs:139:4 [INFO] [stdout] | [INFO] [stdout] 139 | fn score(ch: char) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `OctopusBoard` is never used [INFO] [stdout] --> src/prob11.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | type OctopusBoard = Vec>; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob11` is never used [INFO] [stdout] --> src/prob11.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) fn prob11() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob11.rs:28:4 [INFO] [stdout] | [INFO] [stdout] 28 | fn part1(mut board: OctopusBoard) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob11.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn part2(mut board: OctopusBoard) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `neighbors` is never used [INFO] [stdout] --> src/prob11.rs:89:4 [INFO] [stdout] | [INFO] [stdout] 89 | fn neighbors(p: Point, board: OctopusBoard) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bfs` is never used [INFO] [stdout] --> src/prob11.rs:103:4 [INFO] [stdout] | [INFO] [stdout] 103 | fn bfs(mut starting_points: Vec, mut board: OctopusBoard) -> (OctopusBoard, Vec) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `greater_than` is never used [INFO] [stdout] --> src/prob11.rs:129:4 [INFO] [stdout] | [INFO] [stdout] 129 | fn greater_than(target: i64, board: OctopusBoard) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_board` is never used [INFO] [stdout] --> src/prob11.rs:143:4 [INFO] [stdout] | [INFO] [stdout] 143 | fn parse_board(lines: Vec) -> OctopusBoard { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Path` is never used [INFO] [stdout] --> src/prob12.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type Path = Vec; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Graph` is never used [INFO] [stdout] --> src/prob12.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | type Graph = HashMap>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob12` is never used [INFO] [stdout] --> src/prob12.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | pub(crate) fn prob12() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob12.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn part1(graph: Graph) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob12.rs:49:4 [INFO] [stdout] | [INFO] [stdout] 49 | fn part2(graph: Graph) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_visit_lower` is never used [INFO] [stdout] --> src/prob12.rs:79:4 [INFO] [stdout] | [INFO] [stdout] 79 | fn can_visit_lower(node: String, path: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lower_counts` is never used [INFO] [stdout] --> src/prob12.rs:84:4 [INFO] [stdout] | [INFO] [stdout] 84 | fn lower_counts(path: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `edges2graph` is never used [INFO] [stdout] --> src/prob12.rs:102:4 [INFO] [stdout] | [INFO] [stdout] 102 | fn edges2graph(edges: Vec) -> Graph { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_edges` is never used [INFO] [stdout] --> src/prob12.rs:124:4 [INFO] [stdout] | [INFO] [stdout] 124 | fn parse_edges(lines: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_edge` is never used [INFO] [stdout] --> src/prob12.rs:128:4 [INFO] [stdout] | [INFO] [stdout] 128 | fn parse_edge(line: String) -> Edge { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Input` is never used [INFO] [stdout] --> src/prob13.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | type Input = (Vec, Vec); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob13` is never used [INFO] [stdout] --> src/prob13.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | pub(crate) fn prob13() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob13.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn part1(input: Input) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob13.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn part2(input: Input) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_output` is never used [INFO] [stdout] --> src/prob13.rs:58:4 [INFO] [stdout] | [INFO] [stdout] 58 | fn print_output(paper: HashSet) -> () { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fold` is never used [INFO] [stdout] --> src/prob13.rs:72:4 [INFO] [stdout] | [INFO] [stdout] 72 | fn fold(paper: HashSet, fold: Fold) -> HashSet { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fold_x` is never used [INFO] [stdout] --> src/prob13.rs:84:4 [INFO] [stdout] | [INFO] [stdout] 84 | fn fold_x(paper: HashSet, fold: Fold) -> HashSet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fold_y` is never used [INFO] [stdout] --> src/prob13.rs:116:4 [INFO] [stdout] | [INFO] [stdout] 116 | fn fold_y(paper: HashSet, fold: Fold) -> HashSet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_lines` is never used [INFO] [stdout] --> src/prob13.rs:135:4 [INFO] [stdout] | [INFO] [stdout] 135 | fn parse_lines(lines: Vec) -> Input { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_point` is never used [INFO] [stdout] --> src/prob13.rs:143:4 [INFO] [stdout] | [INFO] [stdout] 143 | fn parse_point(line: String) -> Point { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_fold` is never used [INFO] [stdout] --> src/prob13.rs:148:4 [INFO] [stdout] | [INFO] [stdout] 148 | fn parse_fold(line: String) -> Fold { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Polymer` is never used [INFO] [stdout] --> src/prob14.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type Polymer = String; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Input` is never used [INFO] [stdout] --> src/prob14.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 13 | type Input = (Polymer, Vec); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob14` is never used [INFO] [stdout] --> src/prob14.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | pub(crate) fn prob14() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob14.rs:24:4 [INFO] [stdout] | [INFO] [stdout] 24 | fn part1(input: Input) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob14.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn part2(input: Input) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `step` is never used [INFO] [stdout] --> src/prob14.rs:135:4 [INFO] [stdout] | [INFO] [stdout] 135 | fn step(old_polymer: Polymer, rules: Vec) -> Polymer { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pair` is never used [INFO] [stdout] --> src/prob14.rs:164:4 [INFO] [stdout] | [INFO] [stdout] 164 | fn pair(win: &[char], rules: Vec) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `counts` is never used [INFO] [stdout] --> src/prob14.rs:183:4 [INFO] [stdout] | [INFO] [stdout] 183 | fn counts(polymer: Polymer) -> HashMap { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/prob14.rs:197:4 [INFO] [stdout] | [INFO] [stdout] 197 | fn parse_input(lines: Vec) -> Input { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_rules` is never used [INFO] [stdout] --> src/prob14.rs:204:4 [INFO] [stdout] | [INFO] [stdout] 204 | fn parse_rules(lines: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_rule` is never used [INFO] [stdout] --> src/prob14.rs:208:4 [INFO] [stdout] | [INFO] [stdout] 208 | fn parse_rule(line: String) -> PairInsertionRule { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Board` is never used [INFO] [stdout] --> src/prob15.rs:18:6 [INFO] [stdout] | [INFO] [stdout] 18 | type Board = Vec>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob15` is never used [INFO] [stdout] --> src/prob15.rs:38:15 [INFO] [stdout] | [INFO] [stdout] 38 | pub(crate) fn prob15() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob15.rs:45:4 [INFO] [stdout] | [INFO] [stdout] 45 | fn part1(board: Board) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob15.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn part2(board: Board) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dijkstra` is never used [INFO] [stdout] --> src/prob15.rs:89:4 [INFO] [stdout] | [INFO] [stdout] 89 | fn dijkstra(start: Point, goal: Point, graph: Board) -> (HashMap, HashMap) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_min_risk_value` is never used [INFO] [stdout] --> src/prob15.rs:133:4 [INFO] [stdout] | [INFO] [stdout] 133 | fn find_min_risk_value(cur_pos: Point, goal: Point, board: Board, mut cache: &mut HashMap) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `neighbors` is never used [INFO] [stdout] --> src/prob15.rs:156:4 [INFO] [stdout] | [INFO] [stdout] 156 | fn neighbors(p: Point, b: Board) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_board` is never used [INFO] [stdout] --> src/prob15.rs:165:4 [INFO] [stdout] | [INFO] [stdout] 165 | fn parse_board(lines: Vec) -> Board { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_row` is never used [INFO] [stdout] --> src/prob15.rs:169:4 [INFO] [stdout] | [INFO] [stdout] 169 | fn parse_row(line: String) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Packet` is never constructed [INFO] [stdout] --> src/prob16.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Packet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob16` is never used [INFO] [stdout] --> src/prob16.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | pub(crate) fn prob16() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob16.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn part1(s: String) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob16.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn part2(s: String) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `value_of` is never used [INFO] [stdout] --> src/prob16.rs:42:4 [INFO] [stdout] | [INFO] [stdout] 42 | fn value_of(packet: Packet) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cursor_test` is never used [INFO] [stdout] --> src/prob16.rs:65:4 [INFO] [stdout] | [INFO] [stdout] 65 | fn cursor_test(mut cursor: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sum_versions` is never used [INFO] [stdout] --> src/prob16.rs:72:4 [INFO] [stdout] | [INFO] [stdout] 72 | fn sum_versions(packet: Packet) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode` is never used [INFO] [stdout] --> src/prob16.rs:78:4 [INFO] [stdout] | [INFO] [stdout] 78 | fn decode(transmission: String, mut cursor: usize) -> (Packet, usize) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_literal` is never used [INFO] [stdout] --> src/prob16.rs:105:4 [INFO] [stdout] | [INFO] [stdout] 105 | fn decode_literal(transmission: String, mut cursor: usize) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_subpackets_fixed_bits` is never used [INFO] [stdout] --> src/prob16.rs:120:4 [INFO] [stdout] | [INFO] [stdout] 120 | fn decode_subpackets_fixed_bits(transmission: String, mut cursor: usize) -> (Vec, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_subpackets_fixed_num` is never used [INFO] [stdout] --> src/prob16.rs:135:4 [INFO] [stdout] | [INFO] [stdout] 135 | fn decode_subpackets_fixed_num(transmission: String, mut cursor: usize) -> (Vec, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_packet` is never used [INFO] [stdout] --> src/prob16.rs:150:4 [INFO] [stdout] | [INFO] [stdout] 150 | fn print_packet(packet: Packet) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expand_hex` is never used [INFO] [stdout] --> src/prob16.rs:161:4 [INFO] [stdout] | [INFO] [stdout] 161 | fn expand_hex(ch: char) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Velocity` is never used [INFO] [stdout] --> src/prob17.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type Velocity = Pair2; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Position` is never used [INFO] [stdout] --> src/prob17.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type Position = Pair2; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prob17` is never used [INFO] [stdout] --> src/prob17.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | pub(crate) fn prob17() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/prob17.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn part1(area: TargetArea) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/prob17.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn part2(area: TargetArea) -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shoot` is never used [INFO] [stdout] --> src/prob17.rs:80:4 [INFO] [stdout] | [INFO] [stdout] 80 | fn shoot(init_pos: Position, init_v: Velocity, area: TargetArea) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `step` is never used [INFO] [stdout] --> src/prob17.rs:103:4 [INFO] [stdout] | [INFO] [stdout] 103 | fn step(pos: &mut Position, v: &mut Velocity) -> () { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_within_area` is never used [INFO] [stdout] --> src/prob17.rs:117:4 [INFO] [stdout] | [INFO] [stdout] 117 | fn is_within_area(pos: Position, area: TargetArea) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `missed` is never used [INFO] [stdout] --> src/prob17.rs:121:4 [INFO] [stdout] | [INFO] [stdout] 121 | fn missed(pos: Position, area: TargetArea) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing [INFO] [stdout] --> src/prob17.rs:89:31 [INFO] [stdout] | [INFO] [stdout] 89 | max_y = max(max_y, pos.borrow().y); [INFO] [stdout] | ^^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `Pair2` does not implement `Borrow`, so calling `borrow` on `&Pair2` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 201 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.74s [INFO] running `Command { std: "docker" "inspect" "efb8d7548e5a1bbbcc3ab207d670f3c3c7025955706821f6c7a0e26626d46855", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "efb8d7548e5a1bbbcc3ab207d670f3c3c7025955706821f6c7a0e26626d46855", kill_on_drop: false }` [INFO] [stdout] efb8d7548e5a1bbbcc3ab207d670f3c3c7025955706821f6c7a0e26626d46855 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:023092b8bfa974c7f3e45c5ce651cc8dd3afd5e76915d5995b8dacd3032bf956" "/opt/rustwide/cargo-home/bin/cargo" "+1.73.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 82f4c1031c18b52561802e7b7ba52b4cd68c936828cadddb75c0aed75c77fb1c [INFO] running `Command { std: "docker" "start" "-a" "82f4c1031c18b52561802e7b7ba52b4cd68c936828cadddb75c0aed75c77fb1c", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/prob2.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BufReader`, `Lines` [INFO] [stderr] --> src/prob2.rs:2:15 [INFO] [stderr] | [INFO] [stderr] 2 | use std::io::{BufReader, Lines}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/prob2.rs:29:33 [INFO] [stderr] | [INFO] [stderr] 29 | else if cmd.starts_with(("down")) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 29 - else if cmd.starts_with(("down")) { [INFO] [stderr] 29 + else if cmd.starts_with("down") { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/prob2.rs:56:22 [INFO] [stderr] | [INFO] [stderr] 56 | depth += (aim * x); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 56 - depth += (aim * x); [INFO] [stderr] 56 + depth += aim * x; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/prob2.rs:64:33 [INFO] [stderr] | [INFO] [stderr] 64 | else if cmd.starts_with(("down")) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 64 - else if cmd.starts_with(("down")) { [INFO] [stderr] 64 + else if cmd.starts_with("down") { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Lines`, `Result`, `self` [INFO] [stderr] --> src/util.rs:2:15 [INFO] [stderr] | [INFO] [stderr] 2 | use std::io::{self, BufRead, BufReader, Lines, Result}; [INFO] [stderr] | ^^^^ ^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/prob1.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BufReader`, `Lines` [INFO] [stderr] --> src/prob1.rs:2:15 [INFO] [stderr] | [INFO] [stderr] 2 | use std::io::{BufReader, Lines}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/prob3.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BufReader`, `Lines` [INFO] [stderr] --> src/prob3.rs:3:15 [INFO] [stderr] | [INFO] [stderr] 3 | use std::io::{BufReader, Lines}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/prob4.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BufReader`, `Lines` [INFO] [stderr] --> src/prob4.rs:2:15 [INFO] [stderr] | [INFO] [stderr] 2 | use std::io::{BufReader, Lines}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp::min` [INFO] [stderr] --> src/prob7.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::cmp::min; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::borrow::Borrow` [INFO] [stderr] --> src/prob12.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::borrow::Borrow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/prob12.rs:14:36 [INFO] [stderr] | [INFO] [stderr] 14 | let graph: Graph = edges2graph((parse_edges(lines))); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 14 - let graph: Graph = edges2graph((parse_edges(lines))); [INFO] [stderr] 14 + let graph: Graph = edges2graph(parse_edges(lines)); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `HashSet` [INFO] [stderr] --> src/prob14.rs:1:33 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::LinkedList` [INFO] [stderr] --> src/prob14.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::collections::LinkedList; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::borrow::Borrow` [INFO] [stderr] --> src/prob15.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::borrow::Borrow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `HashSet` [INFO] [stderr] --> src/prob15.rs:3:45 [INFO] [stderr] | [INFO] [stderr] 3 | use std::collections::{BinaryHeap, HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::slice::Chunks` [INFO] [stderr] --> src/prob16.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::slice::Chunks; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt` [INFO] [stderr] --> src/prob16.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::fmt; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::Formatter` [INFO] [stderr] --> src/prob16.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::fmt::Formatter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/prob16.rs:85:8 [INFO] [stderr] | [INFO] [stderr] 85 | if (type_id == 4) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 85 - if (type_id == 4) { [INFO] [stderr] 85 + if type_id == 4 { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: denote infinite loops with `loop { ... }` [INFO] [stderr] --> src/prob16.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | while true { [INFO] [stderr] | ^^^^^^^^^^ help: use `loop` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(while_true)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/prob16.rs:128:26 [INFO] [stderr] | [INFO] [stderr] 128 | bits_consumed += (new_cursor - cursor); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 128 - bits_consumed += (new_cursor - cursor); [INFO] [stderr] 128 + bits_consumed += new_cursor - cursor; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `BorrowMut` [INFO] [stderr] --> src/prob17.rs:1:27 [INFO] [stderr] | [INFO] [stderr] 1 | use std::borrow::{Borrow, BorrowMut}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::borrow::Borrow` [INFO] [stderr] --> src/prob18.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::borrow::Borrow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::VecDeque` [INFO] [stderr] --> src/prob18.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::collections::VecDeque; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: crate-level attribute should be in the root module [INFO] [stderr] --> src/prob3.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(drain_filter)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_attributes)]` on by default [INFO] [stderr] [INFO] [stderr] warning: crate-level attribute should be in the root module [INFO] [stderr] --> src/prob5.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(iter_zip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/prob4.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | let mut b: BingoBoard = parse_board(bd_lines.to_vec()); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `u` [INFO] [stderr] --> src/prob4.rs:134:58 [INFO] [stderr] | [INFO] [stderr] 134 | return boards.clone().into_iter().enumerate().find(|(u,b)| is_winning(b.clone())); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pt` [INFO] [stderr] --> src/prob5.rs:48:37 [INFO] [stderr] | [INFO] [stderr] 48 | return pts.into_iter().filter(|(pt, cnt)| *cnt >= 2).collect::>().len() as i64; [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_pt` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pt` [INFO] [stderr] --> src/prob5.rs:73:37 [INFO] [stderr] | [INFO] [stderr] 73 | return pts.into_iter().filter(|(pt, cnt)| *cnt >= 2).collect::>().len() as i64; [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_pt` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `test_input` [INFO] [stderr] --> src/prob6.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | let test_input: String = "3,4,3,1,2".to_string(); [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_input` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `day` [INFO] [stderr] --> src/prob6.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | for day in 0..days { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_day` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/prob6.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | let mut lanternfish: Vec = state.split(",").map(|x| x.parse().unwrap()).collect(); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `step` [INFO] [stderr] --> src/prob11.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | for step in 0..100 { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/prob11.rs:103:8 [INFO] [stderr] | [INFO] [stderr] 103 | fn bfs(mut starting_points: Vec, mut board: OctopusBoard) -> (OctopusBoard, Vec) { [INFO] [stderr] | ----^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/prob14.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | let mut cur_polymer: Polymer = polymer.clone(); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/prob15.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | let mut cur_pos: Point = Point { row: 0, col: 0 }; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `prev` [INFO] [stderr] --> src/prob15.rs:83:16 [INFO] [stderr] | [INFO] [stderr] 83 | let (dist, prev) = dijkstra(cur_pos, goal, new_board.clone()); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_prev` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/prob15.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | let mut new_row: Vec = og_row.clone().into_iter().map(|e| ((e + i) % 9) + 1).collect(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/prob15.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | let mut cur_pos: Point = Point { row: 0, col: 0 }; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cursor` [INFO] [stderr] --> src/prob16.rs:29:18 [INFO] [stderr] | [INFO] [stderr] 29 | let (packet, cursor) = decode(transmission, 0); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cursor` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cursor` [INFO] [stderr] --> src/prob16.rs:37:18 [INFO] [stderr] | [INFO] [stderr] 37 | let (packet, cursor) = decode(transmission, 0); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cursor` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `first_line` [INFO] [stderr] --> src/prob17.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | let first_line: String = lines.clone().into_iter().nth(0).unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_line` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `p` [INFO] [stderr] --> src/prob18.rs:48:11 [INFO] [stderr] | [INFO] [stderr] 48 | fn reduce(p: Pair) -> Pair { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stderr] [INFO] [stderr] warning: function `prob2` is never used [INFO] [stderr] --> src/prob2.rs:6:15 [INFO] [stderr] | [INFO] [stderr] 6 | pub(crate) fn prob2() { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob2.rs:14:4 [INFO] [stderr] | [INFO] [stderr] 14 | fn part1(lines: Vec) -> i32 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob2.rs:42:4 [INFO] [stderr] | [INFO] [stderr] 42 | fn part2(lines: Vec) -> i32 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_binary` is never used [INFO] [stderr] --> src/util.rs:20:15 [INFO] [stderr] | [INFO] [stderr] 20 | pub(crate) fn parse_binary(bits: String) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_binary_substring` is never used [INFO] [stderr] --> src/util.rs:25:15 [INFO] [stderr] | [INFO] [stderr] 25 | pub(crate) fn parse_binary_substring(bits: String, start: usize, end: usize) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_superset` is never used [INFO] [stderr] --> src/util.rs:31:15 [INFO] [stderr] | [INFO] [stderr] 31 | pub(crate) fn is_superset(a: String, b: String) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `all_same_chars` is never used [INFO] [stderr] --> src/util.rs:35:15 [INFO] [stderr] | [INFO] [stderr] 35 | pub(crate) fn all_same_chars(a: String, b: String) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `prob1` is never used [INFO] [stderr] --> src/prob1.rs:6:15 [INFO] [stderr] | [INFO] [stderr] 6 | pub(crate) fn prob1() { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob1.rs:13:4 [INFO] [stderr] | [INFO] [stderr] 13 | fn part1(nums: Vec) -> i32 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob1.rs:17:4 [INFO] [stderr] | [INFO] [stderr] 17 | fn part2(nums: Vec) -> i32 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `count_pairs_greater` is never used [INFO] [stderr] --> src/prob1.rs:26:4 [INFO] [stderr] | [INFO] [stderr] 26 | fn count_pairs_greater(nums: Vec) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `prob3` is never used [INFO] [stderr] --> src/prob3.rs:7:15 [INFO] [stderr] | [INFO] [stderr] 7 | pub(crate) fn prob3() { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob3.rs:13:4 [INFO] [stderr] | [INFO] [stderr] 13 | fn part1(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob3.rs:19:4 [INFO] [stderr] | [INFO] [stderr] 19 | fn part2(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `oxygen_rating` is never used [INFO] [stderr] --> src/prob3.rs:34:4 [INFO] [stderr] | [INFO] [stderr] 34 | fn oxygen_rating(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `co2_scrubber_rating` is never used [INFO] [stderr] --> src/prob3.rs:53:4 [INFO] [stderr] | [INFO] [stderr] 53 | fn co2_scrubber_rating(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `gamma` is never used [INFO] [stderr] --> src/prob3.rs:77:4 [INFO] [stderr] | [INFO] [stderr] 77 | fn gamma(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `epsilon` is never used [INFO] [stderr] --> src/prob3.rs:94:4 [INFO] [stderr] | [INFO] [stderr] 94 | fn epsilon(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `most_common` is never used [INFO] [stderr] --> src/prob3.rs:109:4 [INFO] [stderr] | [INFO] [stderr] 109 | fn most_common(col: i32, lines: Vec) -> char { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `least_common` is never used [INFO] [stderr] --> src/prob3.rs:138:4 [INFO] [stderr] | [INFO] [stderr] 138 | fn least_common(col: i32, lines: Vec) -> char { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `num` and `is_marked` are never read [INFO] [stderr] --> src/prob4.rs:6:20 [INFO] [stderr] | [INFO] [stderr] 6 | struct BingoCell { num: i32, is_marked: bool} [INFO] [stderr] | --------- ^^^ ^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | fields in this struct [INFO] [stderr] | [INFO] [stderr] = note: `BingoCell` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: type alias `BingoBoard` is never used [INFO] [stderr] --> src/prob4.rs:7:6 [INFO] [stderr] | [INFO] [stderr] 7 | type BingoBoard = Vec>; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `prob4` is never used [INFO] [stderr] --> src/prob4.rs:9:15 [INFO] [stderr] | [INFO] [stderr] 9 | pub(crate) fn prob4() { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob4.rs:23:4 [INFO] [stderr] | [INFO] [stderr] 23 | fn part1(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob4.rs:47:4 [INFO] [stderr] | [INFO] [stderr] 47 | fn part2(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `call_num` is never used [INFO] [stderr] --> src/prob4.rs:68:4 [INFO] [stderr] | [INFO] [stderr] 68 | fn call_num(num: i32, boards: Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `call_num_board` is never used [INFO] [stderr] --> src/prob4.rs:73:4 [INFO] [stderr] | [INFO] [stderr] 73 | fn call_num_board(num: i32, board: BingoBoard) -> BingoBoard { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `called_nums` is never used [INFO] [stderr] --> src/prob4.rs:88:4 [INFO] [stderr] | [INFO] [stderr] 88 | fn called_nums(line: String) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_boards` is never used [INFO] [stderr] --> src/prob4.rs:92:4 [INFO] [stderr] | [INFO] [stderr] 92 | fn parse_boards(lines: Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_board` is never used [INFO] [stderr] --> src/prob4.rs:109:4 [INFO] [stderr] | [INFO] [stderr] 109 | fn parse_board(lines: Vec) -> BingoBoard { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `winning_board` is never used [INFO] [stderr] --> src/prob4.rs:129:4 [INFO] [stderr] | [INFO] [stderr] 129 | fn winning_board(boards: Vec) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `winning_board_and_idx` is never used [INFO] [stderr] --> src/prob4.rs:133:4 [INFO] [stderr] | [INFO] [stderr] 133 | fn winning_board_and_idx(boards: Vec) -> Option<(usize, BingoBoard)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_winning` is never used [INFO] [stderr] --> src/prob4.rs:137:4 [INFO] [stderr] | [INFO] [stderr] 137 | fn is_winning(board: BingoBoard) -> bool { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_col_winning` is never used [INFO] [stderr] --> src/prob4.rs:156:4 [INFO] [stderr] | [INFO] [stderr] 156 | fn is_col_winning(col: i32, board: BingoBoard) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `score` is never used [INFO] [stderr] --> src/prob4.rs:169:4 [INFO] [stderr] | [INFO] [stderr] 169 | fn score(board: BingoBoard) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `start` and `end` are never read [INFO] [stderr] --> src/prob5.rs:11:22 [INFO] [stderr] | [INFO] [stderr] 11 | struct LineSegment { start: Point, end: Point } [INFO] [stderr] | ----------- ^^^^^ ^^^ [INFO] [stderr] | | [INFO] [stderr] | fields in this struct [INFO] [stderr] | [INFO] [stderr] = note: `LineSegment` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `prob5` is never used [INFO] [stderr] --> src/prob5.rs:14:15 [INFO] [stderr] | [INFO] [stderr] 14 | pub(crate) fn prob5() { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob5.rs:22:4 [INFO] [stderr] | [INFO] [stderr] 22 | fn part1(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob5.rs:52:4 [INFO] [stderr] | [INFO] [stderr] 52 | fn part2(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_line_segments` is never used [INFO] [stderr] --> src/prob5.rs:77:4 [INFO] [stderr] | [INFO] [stderr] 77 | fn parse_line_segments(lines: Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `points_on_segment` is never used [INFO] [stderr] --> src/prob5.rs:95:4 [INFO] [stderr] | [INFO] [stderr] 95 | fn points_on_segment(segment: LineSegment) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_horizontal_or_vertical` is never used [INFO] [stderr] --> src/prob5.rs:156:4 [INFO] [stderr] | [INFO] [stderr] 156 | fn is_horizontal_or_vertical(segment: LineSegment) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `prob6` is never used [INFO] [stderr] --> src/prob6.rs:4:15 [INFO] [stderr] | [INFO] [stderr] 4 | pub(crate) fn prob6() { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob6.rs:13:4 [INFO] [stderr] | [INFO] [stderr] 13 | fn part1(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob6.rs:19:4 [INFO] [stderr] | [INFO] [stderr] 19 | fn part2(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `simulate_fish` is never used [INFO] [stderr] --> src/prob6.rs:25:4 [INFO] [stderr] | [INFO] [stderr] 25 | fn simulate_fish(state: String, days: i64) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `simulate_fish_fast` is never used [INFO] [stderr] --> src/prob6.rs:49:4 [INFO] [stderr] | [INFO] [stderr] 49 | fn simulate_fish_fast(state: String, days: i64) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `prob7` is never used [INFO] [stderr] --> src/prob7.rs:4:15 [INFO] [stderr] | [INFO] [stderr] 4 | pub(crate) fn prob7() { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob7.rs:14:4 [INFO] [stderr] | [INFO] [stderr] 14 | fn part1(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob7.rs:23:4 [INFO] [stderr] | [INFO] [stderr] 23 | fn part2(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `score` is never used [INFO] [stderr] --> src/prob7.rs:34:4 [INFO] [stderr] | [INFO] [stderr] 34 | fn score(goal: i64, crabs: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `score2` is never used [INFO] [stderr] --> src/prob7.rs:39:4 [INFO] [stderr] | [INFO] [stderr] 39 | fn score2(goal: i64, crabs: Vec) -> i64 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `signal_patterns` and `output_values` are never read [INFO] [stderr] --> src/prob8.rs:6:16 [INFO] [stderr] | [INFO] [stderr] 6 | struct Entry { signal_patterns: Vec, output_values: Vec } [INFO] [stderr] | ----- ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | fields in this struct [INFO] [stderr] | [INFO] [stderr] = note: `Entry` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `prob8` is never used [INFO] [stderr] --> src/prob8.rs:8:15 [INFO] [stderr] | [INFO] [stderr] 8 | pub(crate) fn prob8() { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob8.rs:31:4 [INFO] [stderr] | [INFO] [stderr] 31 | fn part1(entries: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob8.rs:36:4 [INFO] [stderr] | [INFO] [stderr] 36 | fn part2(entries: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `decode_entry` is never used [INFO] [stderr] --> src/prob8.rs:40:4 [INFO] [stderr] | [INFO] [stderr] 40 | fn decode_entry(entry: Entry) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `count_1_4_7_8` is never used [INFO] [stderr] --> src/prob8.rs:128:4 [INFO] [stderr] | [INFO] [stderr] 128 | fn count_1_4_7_8(output_values: Vec) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_entries` is never used [INFO] [stderr] --> src/prob8.rs:132:4 [INFO] [stderr] | [INFO] [stderr] 132 | fn parse_entries(lines: Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_line` is never used [INFO] [stderr] --> src/prob8.rs:136:4 [INFO] [stderr] | [INFO] [stderr] 136 | fn parse_line(line: String) -> Entry { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_1_4_7_8` is never used [INFO] [stderr] --> src/prob8.rs:143:4 [INFO] [stderr] | [INFO] [stderr] 143 | fn is_1_4_7_8(output_value: String) -> bool { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `Board` is never used [INFO] [stderr] --> src/prob9.rs:8:6 [INFO] [stderr] | [INFO] [stderr] 8 | type Board = Vec>; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `Basin` is never used [INFO] [stderr] --> src/prob9.rs:10:6 [INFO] [stderr] | [INFO] [stderr] 10 | type Basin = Vec; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `prob9` is never used [INFO] [stderr] --> src/prob9.rs:12:15 [INFO] [stderr] | [INFO] [stderr] 12 | pub(crate) fn prob9() { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob9.rs:28:4 [INFO] [stderr] | [INFO] [stderr] 28 | fn part1(board: Board) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob9.rs:53:4 [INFO] [stderr] | [INFO] [stderr] 53 | fn part2(board: Board) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_basin` is never used [INFO] [stderr] --> src/prob9.rs:66:4 [INFO] [stderr] | [INFO] [stderr] 66 | fn get_basin(low_point: Point, board: Board) -> Basin { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `neighbors` is never used [INFO] [stderr] --> src/prob9.rs:91:4 [INFO] [stderr] | [INFO] [stderr] 91 | fn neighbors(p: Point, board: Board) -> Vec { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `low_points` is never used [INFO] [stderr] --> src/prob9.rs:100:4 [INFO] [stderr] | [INFO] [stderr] 100 | fn low_points(board: Board) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_low_point` is never used [INFO] [stderr] --> src/prob9.rs:115:4 [INFO] [stderr] | [INFO] [stderr] 115 | fn is_low_point(row: usize, col: usize, board: Board) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_board` is never used [INFO] [stderr] --> src/prob9.rs:125:4 [INFO] [stderr] | [INFO] [stderr] 125 | fn parse_board(lines: Vec) -> Board { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_line` is never used [INFO] [stderr] --> src/prob9.rs:129:4 [INFO] [stderr] | [INFO] [stderr] 129 | fn parse_line(line: String) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `prob10` is never used [INFO] [stderr] --> src/prob10.rs:4:15 [INFO] [stderr] | [INFO] [stderr] 4 | pub(crate) fn prob10() { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob10.rs:13:4 [INFO] [stderr] | [INFO] [stderr] 13 | fn part1(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob10.rs:19:4 [INFO] [stderr] | [INFO] [stderr] 19 | fn part2(lines: Vec) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `closing_char` is never used [INFO] [stderr] --> src/prob10.rs:29:4 [INFO] [stderr] | [INFO] [stderr] 29 | fn closing_char(ch: char) -> char { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `closing_sequence` is never used [INFO] [stderr] --> src/prob10.rs:47:4 [INFO] [stderr] | [INFO] [stderr] 47 | fn closing_sequence(line: String) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `score_completion_sequence` is never used [INFO] [stderr] --> src/prob10.rs:71:4 [INFO] [stderr] | [INFO] [stderr] 71 | fn score_completion_sequence(seq: String) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `first_illegal_character` is never used [INFO] [stderr] --> src/prob10.rs:94:4 [INFO] [stderr] | [INFO] [stderr] 94 | fn first_illegal_character(line: String) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `matches` is never used [INFO] [stderr] --> src/prob10.rs:113:4 [INFO] [stderr] | [INFO] [stderr] 113 | fn matches(a: char, b: char) -> bool { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `score` is never used [INFO] [stderr] --> src/prob10.rs:139:4 [INFO] [stderr] | [INFO] [stderr] 139 | fn score(ch: char) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `OctopusBoard` is never used [INFO] [stderr] --> src/prob11.rs:7:6 [INFO] [stderr] | [INFO] [stderr] 7 | type OctopusBoard = Vec>; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `prob11` is never used [INFO] [stderr] --> src/prob11.rs:9:15 [INFO] [stderr] | [INFO] [stderr] 9 | pub(crate) fn prob11() { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob11.rs:28:4 [INFO] [stderr] | [INFO] [stderr] 28 | fn part1(mut board: OctopusBoard) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob11.rs:57:4 [INFO] [stderr] | [INFO] [stderr] 57 | fn part2(mut board: OctopusBoard) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `neighbors` is never used [INFO] [stderr] --> src/prob11.rs:89:4 [INFO] [stderr] | [INFO] [stderr] 89 | fn neighbors(p: Point, board: OctopusBoard) -> Vec { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `bfs` is never used [INFO] [stderr] --> src/prob11.rs:103:4 [INFO] [stderr] | [INFO] [stderr] 103 | fn bfs(mut starting_points: Vec, mut board: OctopusBoard) -> (OctopusBoard, Vec) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `greater_than` is never used [INFO] [stderr] --> src/prob11.rs:129:4 [INFO] [stderr] | [INFO] [stderr] 129 | fn greater_than(target: i64, board: OctopusBoard) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_board` is never used [INFO] [stderr] --> src/prob11.rs:143:4 [INFO] [stderr] | [INFO] [stderr] 143 | fn parse_board(lines: Vec) -> OctopusBoard { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `Path` is never used [INFO] [stderr] --> src/prob12.rs:9:6 [INFO] [stderr] | [INFO] [stderr] 9 | type Path = Vec; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `Graph` is never used [INFO] [stderr] --> src/prob12.rs:10:6 [INFO] [stderr] | [INFO] [stderr] 10 | type Graph = HashMap>; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `prob12` is never used [INFO] [stderr] --> src/prob12.rs:12:15 [INFO] [stderr] | [INFO] [stderr] 12 | pub(crate) fn prob12() { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob12.rs:19:4 [INFO] [stderr] | [INFO] [stderr] 19 | fn part1(graph: Graph) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob12.rs:49:4 [INFO] [stderr] | [INFO] [stderr] 49 | fn part2(graph: Graph) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `can_visit_lower` is never used [INFO] [stderr] --> src/prob12.rs:79:4 [INFO] [stderr] | [INFO] [stderr] 79 | fn can_visit_lower(node: String, path: Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `lower_counts` is never used [INFO] [stderr] --> src/prob12.rs:84:4 [INFO] [stderr] | [INFO] [stderr] 84 | fn lower_counts(path: Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `edges2graph` is never used [INFO] [stderr] --> src/prob12.rs:102:4 [INFO] [stderr] | [INFO] [stderr] 102 | fn edges2graph(edges: Vec) -> Graph { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_edges` is never used [INFO] [stderr] --> src/prob12.rs:124:4 [INFO] [stderr] | [INFO] [stderr] 124 | fn parse_edges(lines: Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_edge` is never used [INFO] [stderr] --> src/prob12.rs:128:4 [INFO] [stderr] | [INFO] [stderr] 128 | fn parse_edge(line: String) -> Edge { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `Input` is never used [INFO] [stderr] --> src/prob13.rs:14:6 [INFO] [stderr] | [INFO] [stderr] 14 | type Input = (Vec, Vec); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `prob13` is never used [INFO] [stderr] --> src/prob13.rs:16:15 [INFO] [stderr] | [INFO] [stderr] 16 | pub(crate) fn prob13() { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob13.rs:23:4 [INFO] [stderr] | [INFO] [stderr] 23 | fn part1(input: Input) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob13.rs:37:4 [INFO] [stderr] | [INFO] [stderr] 37 | fn part2(input: Input) -> String { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_output` is never used [INFO] [stderr] --> src/prob13.rs:58:4 [INFO] [stderr] | [INFO] [stderr] 58 | fn print_output(paper: HashSet) -> () { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `fold` is never used [INFO] [stderr] --> src/prob13.rs:72:4 [INFO] [stderr] | [INFO] [stderr] 72 | fn fold(paper: HashSet, fold: Fold) -> HashSet { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `fold_x` is never used [INFO] [stderr] --> src/prob13.rs:84:4 [INFO] [stderr] | [INFO] [stderr] 84 | fn fold_x(paper: HashSet, fold: Fold) -> HashSet { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `fold_y` is never used [INFO] [stderr] --> src/prob13.rs:116:4 [INFO] [stderr] | [INFO] [stderr] 116 | fn fold_y(paper: HashSet, fold: Fold) -> HashSet { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_lines` is never used [INFO] [stderr] --> src/prob13.rs:135:4 [INFO] [stderr] | [INFO] [stderr] 135 | fn parse_lines(lines: Vec) -> Input { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_point` is never used [INFO] [stderr] --> src/prob13.rs:143:4 [INFO] [stderr] | [INFO] [stderr] 143 | fn parse_point(line: String) -> Point { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_fold` is never used [INFO] [stderr] --> src/prob13.rs:148:4 [INFO] [stderr] | [INFO] [stderr] 148 | fn parse_fold(line: String) -> Fold { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `Polymer` is never used [INFO] [stderr] --> src/prob14.rs:8:6 [INFO] [stderr] | [INFO] [stderr] 8 | type Polymer = String; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `Input` is never used [INFO] [stderr] --> src/prob14.rs:13:6 [INFO] [stderr] | [INFO] [stderr] 13 | type Input = (Polymer, Vec); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `prob14` is never used [INFO] [stderr] --> src/prob14.rs:15:15 [INFO] [stderr] | [INFO] [stderr] 15 | pub(crate) fn prob14() { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob14.rs:24:4 [INFO] [stderr] | [INFO] [stderr] 24 | fn part1(input: Input) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob14.rs:47:4 [INFO] [stderr] | [INFO] [stderr] 47 | fn part2(input: Input) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `step` is never used [INFO] [stderr] --> src/prob14.rs:135:4 [INFO] [stderr] | [INFO] [stderr] 135 | fn step(old_polymer: Polymer, rules: Vec) -> Polymer { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `pair` is never used [INFO] [stderr] --> src/prob14.rs:164:4 [INFO] [stderr] | [INFO] [stderr] 164 | fn pair(win: &[char], rules: Vec) -> String { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `counts` is never used [INFO] [stderr] --> src/prob14.rs:183:4 [INFO] [stderr] | [INFO] [stderr] 183 | fn counts(polymer: Polymer) -> HashMap { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_input` is never used [INFO] [stderr] --> src/prob14.rs:197:4 [INFO] [stderr] | [INFO] [stderr] 197 | fn parse_input(lines: Vec) -> Input { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_rules` is never used [INFO] [stderr] --> src/prob14.rs:204:4 [INFO] [stderr] | [INFO] [stderr] 204 | fn parse_rules(lines: Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_rule` is never used [INFO] [stderr] --> src/prob14.rs:208:4 [INFO] [stderr] | [INFO] [stderr] 208 | fn parse_rule(line: String) -> PairInsertionRule { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `Board` is never used [INFO] [stderr] --> src/prob15.rs:18:6 [INFO] [stderr] | [INFO] [stderr] 18 | type Board = Vec>; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `prob15` is never used [INFO] [stderr] --> src/prob15.rs:38:15 [INFO] [stderr] | [INFO] [stderr] 38 | pub(crate) fn prob15() { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob15.rs:45:4 [INFO] [stderr] | [INFO] [stderr] 45 | fn part1(board: Board) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob15.rs:56:4 [INFO] [stderr] | [INFO] [stderr] 56 | fn part2(board: Board) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `dijkstra` is never used [INFO] [stderr] --> src/prob15.rs:89:4 [INFO] [stderr] | [INFO] [stderr] 89 | fn dijkstra(start: Point, goal: Point, graph: Board) -> (HashMap, HashMap) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `find_min_risk_value` is never used [INFO] [stderr] --> src/prob15.rs:133:4 [INFO] [stderr] | [INFO] [stderr] 133 | fn find_min_risk_value(cur_pos: Point, goal: Point, board: Board, mut cache: &mut HashMap) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `neighbors` is never used [INFO] [stderr] --> src/prob15.rs:156:4 [INFO] [stderr] | [INFO] [stderr] 156 | fn neighbors(p: Point, b: Board) -> Vec { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_board` is never used [INFO] [stderr] --> src/prob15.rs:165:4 [INFO] [stderr] | [INFO] [stderr] 165 | fn parse_board(lines: Vec) -> Board { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_row` is never used [INFO] [stderr] --> src/prob15.rs:169:4 [INFO] [stderr] | [INFO] [stderr] 169 | fn parse_row(line: String) -> Vec { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Packet` is never constructed [INFO] [stderr] --> src/prob16.rs:8:8 [INFO] [stderr] | [INFO] [stderr] 8 | struct Packet { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `prob16` is never used [INFO] [stderr] --> src/prob16.rs:16:15 [INFO] [stderr] | [INFO] [stderr] 16 | pub(crate) fn prob16() { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob16.rs:25:4 [INFO] [stderr] | [INFO] [stderr] 25 | fn part1(s: String) -> usize { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob16.rs:35:4 [INFO] [stderr] | [INFO] [stderr] 35 | fn part2(s: String) -> usize { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `value_of` is never used [INFO] [stderr] --> src/prob16.rs:42:4 [INFO] [stderr] | [INFO] [stderr] 42 | fn value_of(packet: Packet) -> usize { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `cursor_test` is never used [INFO] [stderr] --> src/prob16.rs:65:4 [INFO] [stderr] | [INFO] [stderr] 65 | fn cursor_test(mut cursor: usize) -> usize { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `sum_versions` is never used [INFO] [stderr] --> src/prob16.rs:72:4 [INFO] [stderr] | [INFO] [stderr] 72 | fn sum_versions(packet: Packet) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `decode` is never used [INFO] [stderr] --> src/prob16.rs:78:4 [INFO] [stderr] | [INFO] [stderr] 78 | fn decode(transmission: String, mut cursor: usize) -> (Packet, usize) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `decode_literal` is never used [INFO] [stderr] --> src/prob16.rs:105:4 [INFO] [stderr] | [INFO] [stderr] 105 | fn decode_literal(transmission: String, mut cursor: usize) -> (usize, usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `decode_subpackets_fixed_bits` is never used [INFO] [stderr] --> src/prob16.rs:120:4 [INFO] [stderr] | [INFO] [stderr] 120 | fn decode_subpackets_fixed_bits(transmission: String, mut cursor: usize) -> (Vec, usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `decode_subpackets_fixed_num` is never used [INFO] [stderr] --> src/prob16.rs:135:4 [INFO] [stderr] | [INFO] [stderr] 135 | fn decode_subpackets_fixed_num(transmission: String, mut cursor: usize) -> (Vec, usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_packet` is never used [INFO] [stderr] --> src/prob16.rs:150:4 [INFO] [stderr] | [INFO] [stderr] 150 | fn print_packet(packet: Packet) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `expand_hex` is never used [INFO] [stderr] --> src/prob16.rs:161:4 [INFO] [stderr] | [INFO] [stderr] 161 | fn expand_hex(ch: char) -> String { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `Velocity` is never used [INFO] [stderr] --> src/prob17.rs:8:6 [INFO] [stderr] | [INFO] [stderr] 8 | type Velocity = Pair2; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `Position` is never used [INFO] [stderr] --> src/prob17.rs:9:6 [INFO] [stderr] | [INFO] [stderr] 9 | type Position = Pair2; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `prob17` is never used [INFO] [stderr] --> src/prob17.rs:19:15 [INFO] [stderr] | [INFO] [stderr] 19 | pub(crate) fn prob17() { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part1` is never used [INFO] [stderr] --> src/prob17.rs:36:4 [INFO] [stderr] | [INFO] [stderr] 36 | fn part1(area: TargetArea) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `part2` is never used [INFO] [stderr] --> src/prob17.rs:57:4 [INFO] [stderr] | [INFO] [stderr] 57 | fn part2(area: TargetArea) -> i64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `shoot` is never used [INFO] [stderr] --> src/prob17.rs:80:4 [INFO] [stderr] | [INFO] [stderr] 80 | fn shoot(init_pos: Position, init_v: Velocity, area: TargetArea) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `step` is never used [INFO] [stderr] --> src/prob17.rs:103:4 [INFO] [stderr] | [INFO] [stderr] 103 | fn step(pos: &mut Position, v: &mut Velocity) -> () { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_within_area` is never used [INFO] [stderr] --> src/prob17.rs:117:4 [INFO] [stderr] | [INFO] [stderr] 117 | fn is_within_area(pos: Position, area: TargetArea) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `missed` is never used [INFO] [stderr] --> src/prob17.rs:121:4 [INFO] [stderr] | [INFO] [stderr] 121 | fn missed(pos: Position, area: TargetArea) -> bool { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: call to `.borrow()` on a reference in this situation does nothing [INFO] [stderr] --> src/prob17.rs:89:31 [INFO] [stderr] | [INFO] [stderr] 89 | max_y = max(max_y, pos.borrow().y); [INFO] [stderr] | ^^^^^^^^^ help: remove this redundant call [INFO] [stderr] | [INFO] [stderr] = note: the type `Pair2` does not implement `Borrow`, so calling `borrow` on `&Pair2` copies the reference, which does not do anything and can be removed [INFO] [stderr] = note: `#[warn(noop_method_call)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `untitled` (bin "untitled" test) generated 201 warnings (run `cargo fix --bin "untitled" --tests` to apply 47 suggestions) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.01s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/untitled-54a32f7a3e5d9feb) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "82f4c1031c18b52561802e7b7ba52b4cd68c936828cadddb75c0aed75c77fb1c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "82f4c1031c18b52561802e7b7ba52b4cd68c936828cadddb75c0aed75c77fb1c", kill_on_drop: false }` [INFO] [stdout] 82f4c1031c18b52561802e7b7ba52b4cd68c936828cadddb75c0aed75c77fb1c