[INFO] cloning repository https://github.com/beaszt-nix/advent-of-code-2022 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/beaszt-nix/advent-of-code-2022" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbeaszt-nix%2Fadvent-of-code-2022", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbeaszt-nix%2Fadvent-of-code-2022'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0ff8e1b75af0502b1d939c22678e09051c89fdea [INFO] checking beaszt-nix/advent-of-code-2022/0ff8e1b75af0502b1d939c22678e09051c89fdea against master#ab869e094a907cc5d19b4080f22eccaf347f1f95 for pr-129604 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbeaszt-nix%2Fadvent-of-code-2022" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/beaszt-nix/advent-of-code-2022 on toolchain ab869e094a907cc5d19b4080f22eccaf347f1f95 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/beaszt-nix/advent-of-code-2022 [INFO] finished tweaking git repo https://github.com/beaszt-nix/advent-of-code-2022 [INFO] tweaked toml for git repo https://github.com/beaszt-nix/advent-of-code-2022 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/beaszt-nix/advent-of-code-2022 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" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] bb58ff97bca87111da5bcfca6bd1f781d75ae36016dcf65c3690a0f2d2d81515 [INFO] running `Command { std: "docker" "start" "-a" "bb58ff97bca87111da5bcfca6bd1f781d75ae36016dcf65c3690a0f2d2d81515", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "bb58ff97bca87111da5bcfca6bd1f781d75ae36016dcf65c3690a0f2d2d81515", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bb58ff97bca87111da5bcfca6bd1f781d75ae36016dcf65c3690a0f2d2d81515", kill_on_drop: false }` [INFO] [stdout] bb58ff97bca87111da5bcfca6bd1f781d75ae36016dcf65c3690a0f2d2d81515 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d4953444272ebdd31b4e5468acc3a83c978a653037f640ccf35438dcde6b33b8 [INFO] running `Command { std: "docker" "start" "-a" "d4953444272ebdd31b4e5468acc3a83c978a653037f640ccf35438dcde6b33b8", kill_on_drop: false }` [INFO] [stderr] Checking advent-of-code v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `BufRead` [INFO] [stdout] --> src/days/day6.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | io::{BufRead, BufReader, Read}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufRead` [INFO] [stdout] --> src/days/day6.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | io::{BufRead, BufReader, Read}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `res` [INFO] [stdout] --> src/days/day9.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | let res = reader [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_res` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | let mut index = 0; [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: fields `x` and `y` are never read [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | struct Point { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 5 | x: i32, [INFO] [stdout] | ^ [INFO] [stdout] 6 | y: i32, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `Point` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day1.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn part1() -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day1.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn part2() -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_score` is never used [INFO] [stdout] --> src/days/day2.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 44 | impl Move { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 45 | fn get_score(&self, other: &Self) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1_round_score` is never used [INFO] [stdout] --> src/days/day2.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn part1_round_score(line: String) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2_round_score` is never used [INFO] [stdout] --> src/days/day2.rs:68:4 [INFO] [stdout] | [INFO] [stdout] 68 | fn part2_round_score(line: String) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day2.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn part1() -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day2.rs:93:8 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn part2() -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1_logic` is never used [INFO] [stdout] --> src/days/day3.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn part1_logic(bag_items: String) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day3.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn part1() -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day3.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn part2() -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse` is never used [INFO] [stdout] --> src/days/day4.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn parse(line: String) -> Option<[(usize, usize); 2]> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `contains` is never used [INFO] [stdout] --> src/days/day4.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn contains((a, b): &(usize, usize), (c, d): &(usize, usize)) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `overlaps` is never used [INFO] [stdout] --> src/days/day4.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn overlaps((a, b): &(usize, usize), (c, d): &(usize, usize)) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day4.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn part1() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day4.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn part2() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Crate` is never constructed [INFO] [stdout] --> src/days/day5.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Crate { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `num_crates`, `source_stack`, and `target_stack` are never read [INFO] [stdout] --> src/days/day5.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 13 | struct Move { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 14 | pub num_crates: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 15 | pub source_stack: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 16 | pub target_stack: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Move` 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 `parse_crate` is never used [INFO] [stdout] --> src/days/day5.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn parse_crate(line: &String) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/days/day5.rs:52:4 [INFO] [stdout] | [INFO] [stdout] 52 | fn parse_input(lines: Vec) -> (Vec>, Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day5.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn part1() -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day5.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn part2() -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_distinct` is never used [INFO] [stdout] --> src/days/day6.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn check_distinct(input: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day6.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn part1() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day6.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn part2() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_dir_sizes` is never used [INFO] [stdout] --> src/days/day7/mod.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn get_dir_sizes(root: &FsTreeNodeRef, dir_sizes: &mut Vec) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day7/mod.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn part1() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day7/mod.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn part2() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `upper_bound` is never used [INFO] [stdout] --> src/days/day7/mod.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn upper_bound(vec: &Vec, target: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/days/day7/io.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn parse_input() -> FsTreeNodeRef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `change_current_directory` is never used [INFO] [stdout] --> src/days/day7/io.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn change_current_directory( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_child` is never used [INFO] [stdout] --> src/days/day7/io.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn create_child(node: &FsTreeNodeRef, name: String, size: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/days/day7/types.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | Subdir(String), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 6 | Subdir(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/days/day7/types.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | Cd(Path), [INFO] [stdout] | -- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 10 | Cd(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/days/day7/types.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | File(String, usize), [INFO] [stdout] | ---- ^^^^^^ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 12 | File((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/days/day7/types.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | Dir(String), [INFO] [stdout] | --- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 13 | Dir(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `FsTreeNodeRef` is never used [INFO] [stdout] --> src/days/day7/types.rs:39:10 [INFO] [stdout] | [INFO] [stdout] 39 | pub type FsTreeNodeRef = Rc>; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FsTreeNode` is never constructed [INFO] [stdout] --> src/days/day7/types.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct FsTreeNode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_visible_trees` is never used [INFO] [stdout] --> src/days/day8.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn get_visible_trees(grid: &Vec>) -> HashSet<(usize, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_scenic_score` is never used [INFO] [stdout] --> src/days/day8.rs:41:4 [INFO] [stdout] | [INFO] [stdout] 41 | fn get_scenic_score((i, j): (usize, usize), grid: &Vec>) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day8.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn part1() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day8.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn part2() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `move_x`, and `move_y` are never used [INFO] [stdout] --> src/days/day9.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl GridPoint { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 15 | pub fn new(x: i32, y: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn move_x(&self, steps: i32) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn move_y(&self, steps: i32) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `move_tail` is never used [INFO] [stdout] --> src/days/day9.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn move_tail(head: &GridPoint, tail: &GridPoint) -> GridPoint { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `move_rope` is never used [INFO] [stdout] --> src/days/day9.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn move_rope( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/days/day9.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn run(num_knots: usize) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `part1` is never used [INFO] [stdout] --> src/days/day10.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl Cpu { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn part1(&mut self) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day10.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 106 | pub fn part1() -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/days/day6.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | reader.read_to_end(&mut message); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 17 | let _ = reader.read_to_end(&mut message); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/days/day6.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | reader.read_to_end(&mut message); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 33 | let _ = reader.read_to_end(&mut message); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `res` [INFO] [stdout] --> src/days/day9.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | let res = reader [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_res` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | let mut index = 0; [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: fields `x` and `y` are never read [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | struct Point { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 5 | x: i32, [INFO] [stdout] | ^ [INFO] [stdout] 6 | y: i32, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `Point` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day1.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn part1() -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day1.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn part2() -> i64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day2.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn part1() -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 53 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day2.rs:93:8 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn part2() -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1_logic` is never used [INFO] [stdout] --> src/days/day3.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn part1_logic(bag_items: String) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day3.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn part1() -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day3.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn part2() -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse` is never used [INFO] [stdout] --> src/days/day4.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn parse(line: String) -> Option<[(usize, usize); 2]> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `contains` is never used [INFO] [stdout] --> src/days/day4.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn contains((a, b): &(usize, usize), (c, d): &(usize, usize)) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `overlaps` is never used [INFO] [stdout] --> src/days/day4.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn overlaps((a, b): &(usize, usize), (c, d): &(usize, usize)) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day4.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn part1() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day4.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn part2() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Crate` is never constructed [INFO] [stdout] --> src/days/day5.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Crate { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `num_crates`, `source_stack`, and `target_stack` are never read [INFO] [stdout] --> src/days/day5.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 13 | struct Move { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 14 | pub num_crates: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 15 | pub source_stack: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 16 | pub target_stack: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Move` 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 `parse_crate` is never used [INFO] [stdout] --> src/days/day5.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn parse_crate(line: &String) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/days/day5.rs:52:4 [INFO] [stdout] | [INFO] [stdout] 52 | fn parse_input(lines: Vec) -> (Vec>, Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day5.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn part1() -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day5.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn part2() -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_distinct` is never used [INFO] [stdout] --> src/days/day6.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn check_distinct(input: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day6.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn part1() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day6.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn part2() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_dir_sizes` is never used [INFO] [stdout] --> src/days/day7/mod.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn get_dir_sizes(root: &FsTreeNodeRef, dir_sizes: &mut Vec) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day7/mod.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn part1() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day7/mod.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn part2() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `upper_bound` is never used [INFO] [stdout] --> src/days/day7/mod.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn upper_bound(vec: &Vec, target: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_input` is never used [INFO] [stdout] --> src/days/day7/io.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn parse_input() -> FsTreeNodeRef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `change_current_directory` is never used [INFO] [stdout] --> src/days/day7/io.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn change_current_directory( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_child` is never used [INFO] [stdout] --> src/days/day7/io.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn create_child(node: &FsTreeNodeRef, name: String, size: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/days/day7/types.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | Subdir(String), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 6 | Subdir(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/days/day7/types.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | Cd(Path), [INFO] [stdout] | -- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 10 | Cd(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/days/day7/types.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | File(String, usize), [INFO] [stdout] | ---- ^^^^^^ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 12 | File((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/days/day7/types.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | Dir(String), [INFO] [stdout] | --- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 13 | Dir(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `FsTreeNodeRef` is never used [INFO] [stdout] --> src/days/day7/types.rs:39:10 [INFO] [stdout] | [INFO] [stdout] 39 | pub type FsTreeNodeRef = Rc>; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FsTreeNode` is never constructed [INFO] [stdout] --> src/days/day7/types.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct FsTreeNode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_visible_trees` is never used [INFO] [stdout] --> src/days/day8.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn get_visible_trees(grid: &Vec>) -> HashSet<(usize, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_scenic_score` is never used [INFO] [stdout] --> src/days/day8.rs:41:4 [INFO] [stdout] | [INFO] [stdout] 41 | fn get_scenic_score((i, j): (usize, usize), grid: &Vec>) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day8.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn part1() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/days/day8.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn part2() -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `move_x`, and `move_y` are never used [INFO] [stdout] --> src/days/day9.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl GridPoint { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 15 | pub fn new(x: i32, y: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn move_x(&self, steps: i32) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn move_y(&self, steps: i32) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `move_tail` is never used [INFO] [stdout] --> src/days/day9.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn move_tail(head: &GridPoint, tail: &GridPoint) -> GridPoint { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `move_rope` is never used [INFO] [stdout] --> src/days/day9.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn move_rope( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/days/day9.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn run(num_knots: usize) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `part1` is never used [INFO] [stdout] --> src/days/day10.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl Cpu { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn part1(&mut self) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/days/day10.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 106 | pub fn part1() -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/days/day6.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | reader.read_to_end(&mut message); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 17 | let _ = reader.read_to_end(&mut message); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/days/day6.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | reader.read_to_end(&mut message); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 33 | let _ = reader.read_to_end(&mut message); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 50 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.55s [INFO] running `Command { std: "docker" "inspect" "d4953444272ebdd31b4e5468acc3a83c978a653037f640ccf35438dcde6b33b8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d4953444272ebdd31b4e5468acc3a83c978a653037f640ccf35438dcde6b33b8", kill_on_drop: false }` [INFO] [stdout] d4953444272ebdd31b4e5468acc3a83c978a653037f640ccf35438dcde6b33b8