[INFO] cloning repository https://github.com/taigi100/AoC23 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/taigi100/AoC23" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaigi100%2FAoC23", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaigi100%2FAoC23'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f98076b60ca01d34be4d857b6f6ea8e2d986fb05 [INFO] building taigi100/AoC23 against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaigi100%2FAoC23" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/taigi100/AoC23 on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/taigi100/AoC23 [INFO] finished tweaking git repo https://github.com/taigi100/AoC23 [INFO] tweaked toml for git repo https://github.com/taigi100/AoC23 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/taigi100/AoC23 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" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded transpose v0.2.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ec6751763c472e0b346853c4cc467ec197b0ecea2ec0d5042a4779f2ecb66a74 [INFO] running `Command { std: "docker" "start" "-a" "ec6751763c472e0b346853c4cc467ec197b0ecea2ec0d5042a4779f2ecb66a74", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ec6751763c472e0b346853c4cc467ec197b0ecea2ec0d5042a4779f2ecb66a74", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ec6751763c472e0b346853c4cc467ec197b0ecea2ec0d5042a4779f2ecb66a74", kill_on_drop: false }` [INFO] [stdout] ec6751763c472e0b346853c4cc467ec197b0ecea2ec0d5042a4779f2ecb66a74 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 43536197ce51040462c0f5e989f2dcc730f9a9e5a16b82d8fd2b98f76eb0ced0 [INFO] running `Command { std: "docker" "start" "-a" "43536197ce51040462c0f5e989f2dcc730f9a9e5a16b82d8fd2b98f76eb0ced0", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.17 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Compiling num-bigint v0.4.4 [INFO] [stderr] Compiling num-rational v0.4.1 [INFO] [stderr] Compiling num-iter v0.1.43 [INFO] [stderr] Compiling either v1.9.0 [INFO] [stderr] Compiling strength_reduce v0.2.4 [INFO] [stderr] Compiling itertools v0.12.0 [INFO] [stderr] Compiling num-complex v0.4.4 [INFO] [stderr] Compiling transpose v0.2.2 [INFO] [stderr] Compiling num v0.4.1 [INFO] [stderr] Compiling AoC23 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:99:16 [INFO] [stdout] | [INFO] [stdout] 99 | if (i == 0 && grid[&(i, j)] == '.') { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 99 - if (i == 0 && grid[&(i, j)] == '.') { [INFO] [stdout] 99 + if i == 0 && grid[&(i, j)] == '.' { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:102:16 [INFO] [stdout] | [INFO] [stdout] 102 | if (i == data.lines().count() - 1 && grid[&(i, j)] == '.') { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 102 - if (i == data.lines().count() - 1 && grid[&(i, j)] == '.') { [INFO] [stdout] 102 + if i == data.lines().count() - 1 && grid[&(i, j)] == '.' { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:120:22 [INFO] [stdout] | [INFO] [stdout] 120 | let dx = (i as isize + di); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 120 - let dx = (i as isize + di); [INFO] [stdout] 120 + let dx = i as isize + di; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:121:22 [INFO] [stdout] | [INFO] [stdout] 121 | let dy = (j as isize + dj); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 121 - let dy = (j as isize + dj); [INFO] [stdout] 121 + let dy = j as isize + dj; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:173:16 [INFO] [stdout] | [INFO] [stdout] 173 | if (distance > 1) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 173 - if (distance > 1) { [INFO] [stdout] 173 + if distance > 1 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/main.rs:319:22 [INFO] [stdout] | [INFO] [stdout] 319 | for x in (b.0 .0..=b.1 .0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 319 - for x in (b.0 .0..=b.1 .0) { [INFO] [stdout] 319 + for x in b.0 .0..=b.1 .0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/main.rs:320:26 [INFO] [stdout] | [INFO] [stdout] 320 | for y in (b.0 .1..=b.1 .1) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 320 - for y in (b.0 .1..=b.1 .1) { [INFO] [stdout] 320 + for y in b.0 .1..=b.1 .1 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stdout] --> src/main.rs:797:40 [INFO] [stdout] | [INFO] [stdout] 797 | let mut valid_dirs = match (dir) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 797 - let mut valid_dirs = match (dir) { [INFO] [stdout] 797 + let mut valid_dirs = match dir { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/main.rs:871:62 [INFO] [stdout] | [INFO] [stdout] 871 | seen: &mut HashMap<((usize, usize), (isize, isize)), (u32)>, [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 871 - seen: &mut HashMap<((usize, usize), (isize, isize)), (u32)>, [INFO] [stdout] 871 + seen: &mut HashMap<((usize, usize), (isize, isize)), u32>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/main.rs:698:21 [INFO] [stdout] | [INFO] [stdout] 697 | return ans; [INFO] [stdout] | ---------- any code following this expression is unreachable [INFO] [stdout] 698 | continue; [INFO] [stdout] | ^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | let (mut p1, mut p2) = (0, 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: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:11:18 [INFO] [stdout] | [INFO] [stdout] 11 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:39:18 [INFO] [stdout] | [INFO] [stdout] 39 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:92:22 [INFO] [stdout] | [INFO] [stdout] 92 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:92:10 [INFO] [stdout] | [INFO] [stdout] 92 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:216:13 [INFO] [stdout] | [INFO] [stdout] 216 | let mut path = vec![start]; [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/main.rs:332:14 [INFO] [stdout] | [INFO] [stdout] 332 | let (mut falls, _) = drop(removed); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p1` is never read [INFO] [stdout] --> src/main.rs:344:14 [INFO] [stdout] | [INFO] [stdout] 344 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `gradens_counter` is assigned to, but never used [INFO] [stdout] --> src/main.rs:350:13 [INFO] [stdout] | [INFO] [stdout] 350 | let mut gradens_counter = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_gradens_counter` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `N` [INFO] [stdout] --> src/main.rs:383:9 [INFO] [stdout] | [INFO] [stdout] 383 | let N = grid.len() as i64; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_N` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:344:18 [INFO] [stdout] | [INFO] [stdout] 344 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/main.rs:448:10 [INFO] [stdout] | [INFO] [stdout] 448 | for (n, v) in &graph { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node` [INFO] [stdout] --> src/main.rs:472:10 [INFO] [stdout] | [INFO] [stdout] 472 | for (node, conj) in &mut conjunctions { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/main.rs:566:24 [INFO] [stdout] | [INFO] [stdout] 566 | .map(|(s, v)| *v as u64) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:417:10 [INFO] [stdout] | [INFO] [stdout] 417 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/main.rs:516:53 [INFO] [stdout] | [INFO] [stdout] 516 | if conjunction.iter().any(|(v, s)| *s == -1) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:578:22 [INFO] [stdout] | [INFO] [stdout] 578 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:672:25 [INFO] [stdout] | [INFO] [stdout] 672 | let (l, op, mut v) = ( [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/main.rs:734:14 [INFO] [stdout] | [INFO] [stdout] 734 | let (mut n, mut m) = (0, 0); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `m` [INFO] [stdout] --> src/main.rs:734:21 [INFO] [stdout] | [INFO] [stdout] 734 | let (mut n, mut m) = (0, 0); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_m` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dir` [INFO] [stdout] --> src/main.rs:742:13 [INFO] [stdout] | [INFO] [stdout] 742 | let dir = line.split_whitespace().nth(0).unwrap(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `cnt` is never read [INFO] [stdout] --> src/main.rs:743:17 [INFO] [stdout] | [INFO] [stdout] 743 | let mut cnt = line [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:731:10 [INFO] [stdout] | [INFO] [stdout] 731 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:731:18 [INFO] [stdout] | [INFO] [stdout] 731 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:734:10 [INFO] [stdout] | [INFO] [stdout] 734 | let (mut n, mut m) = (0, 0); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:734:17 [INFO] [stdout] | [INFO] [stdout] 734 | let (mut n, mut m) = (0, 0); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:756:13 [INFO] [stdout] | [INFO] [stdout] 756 | let mut direction = match color.as_bytes()[color.len() - 1] { [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p1` is never read [INFO] [stdout] --> src/main.rs:779:14 [INFO] [stdout] | [INFO] [stdout] 779 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:779:22 [INFO] [stdout] | [INFO] [stdout] 779 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dirs` [INFO] [stdout] --> src/main.rs:780:9 [INFO] [stdout] | [INFO] [stdout] 780 | let dirs = [(1, 0), (0, 1), (-1, 0), (0, -1)]; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dirs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `location` [INFO] [stdout] --> src/main.rs:791:17 [INFO] [stdout] | [INFO] [stdout] 791 | let mut location = (0, 0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cost` [INFO] [stdout] --> src/main.rs:796:18 [INFO] [stdout] | [INFO] [stdout] 796 | let (cost, steps, node, dir) = item; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_cost` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:791:13 [INFO] [stdout] | [INFO] [stdout] 791 | let mut location = (0, 0); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p1` is never read [INFO] [stdout] --> src/main.rs:861:14 [INFO] [stdout] | [INFO] [stdout] 861 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:861:22 [INFO] [stdout] | [INFO] [stdout] 861 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:1086:22 [INFO] [stdout] | [INFO] [stdout] 1086 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:1086:10 [INFO] [stdout] | [INFO] [stdout] 1086 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:1186:18 [INFO] [stdout] | [INFO] [stdout] 1186 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `parity` is never read [INFO] [stdout] --> src/main.rs:1534:13 [INFO] [stdout] | [INFO] [stdout] 1534 | let mut parity = 0; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:1600:22 [INFO] [stdout] | [INFO] [stdout] 1600 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:1650:10 [INFO] [stdout] | [INFO] [stdout] 1650 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p1` is never read [INFO] [stdout] --> src/main.rs:1722:14 [INFO] [stdout] | [INFO] [stdout] 1722 | let (mut p1, mut p2) = (0, 0.0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:1722:22 [INFO] [stdout] | [INFO] [stdout] 1722 | let (mut p1, mut p2) = (0, 0.0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p1` is never read [INFO] [stdout] --> src/main.rs:1774:14 [INFO] [stdout] | [INFO] [stdout] 1774 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:1774:22 [INFO] [stdout] | [INFO] [stdout] 1774 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `counter` is assigned to, but never used [INFO] [stdout] --> src/main.rs:1787:13 [INFO] [stdout] | [INFO] [stdout] 1787 | let mut counter = -1; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_counter` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/main.rs:1823:5 [INFO] [stdout] | [INFO] [stdout] 1823 | i = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `r` is never read [INFO] [stdout] --> src/main.rs:1953:17 [INFO] [stdout] | [INFO] [stdout] 1953 | let mut r = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `g` is never read [INFO] [stdout] --> src/main.rs:1954:17 [INFO] [stdout] | [INFO] [stdout] 1954 | let mut g = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `b` is never read [INFO] [stdout] --> src/main.rs:1955:17 [INFO] [stdout] | [INFO] [stdout] 1955 | let mut b = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `l` [INFO] [stdout] --> src/main.rs:2023:26 [INFO] [stdout] | [INFO] [stdout] 2023 | let get_digit = |l: String| -> (i32, i32) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:2007:17 [INFO] [stdout] | [INFO] [stdout] 2007 | let mut aux = result; [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/main.rs:2000:9 [INFO] [stdout] | [INFO] [stdout] 2000 | let mut lines = data.lines(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `G` should have a snake case name [INFO] [stdout] --> src/main.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | let mut G: HashMap> = HashMap::new(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `g` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `S` should have a snake case name [INFO] [stdout] --> src/main.rs:135:13 [INFO] [stdout] | [INFO] [stdout] 135 | let mut S = VecDeque::new(); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `DFS` should have a snake case name [INFO] [stdout] --> src/main.rs:204:8 [INFO] [stdout] | [INFO] [stdout] 204 | fn DFS( [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dfs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `S` should have a snake case name [INFO] [stdout] --> src/main.rs:214:17 [INFO] [stdout] | [INFO] [stdout] 214 | let mut S = VecDeque::new(); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `N` should have a snake case name [INFO] [stdout] --> src/main.rs:383:9 [INFO] [stdout] | [INFO] [stdout] 383 | let N = grid.len() as i64; [INFO] [stdout] | ^ help: convert the identifier to snake case: `n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/main.rs:423:32 [INFO] [stdout] | [INFO] [stdout] 423 | let mut new_line = line.clone(); [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` 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: function `DFS` should have a snake case name [INFO] [stdout] --> src/main.rs:479:8 [INFO] [stdout] | [INFO] [stdout] 479 | fn DFS<'a>( [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dfs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/main.rs:1508:16 [INFO] [stdout] | [INFO] [stdout] 1508 | if x < 0 || x >= lines || y < 0 || y >= cols { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/main.rs:1508:39 [INFO] [stdout] | [INFO] [stdout] 1508 | if x < 0 || x >= lines || y < 0 || y >= cols { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.88s [INFO] running `Command { std: "docker" "inspect" "43536197ce51040462c0f5e989f2dcc730f9a9e5a16b82d8fd2b98f76eb0ced0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "43536197ce51040462c0f5e989f2dcc730f9a9e5a16b82d8fd2b98f76eb0ced0", kill_on_drop: false }` [INFO] [stdout] 43536197ce51040462c0f5e989f2dcc730f9a9e5a16b82d8fd2b98f76eb0ced0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ad123bc0f0cb3ce2112731a44b82c0f03d85811fafcc1f9887af4a08ad4a78a9 [INFO] running `Command { std: "docker" "start" "-a" "ad123bc0f0cb3ce2112731a44b82c0f03d85811fafcc1f9887af4a08ad4a78a9", kill_on_drop: false }` [INFO] [stderr] Compiling AoC23 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:99:16 [INFO] [stdout] | [INFO] [stdout] 99 | if (i == 0 && grid[&(i, j)] == '.') { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 99 - if (i == 0 && grid[&(i, j)] == '.') { [INFO] [stdout] 99 + if i == 0 && grid[&(i, j)] == '.' { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:102:16 [INFO] [stdout] | [INFO] [stdout] 102 | if (i == data.lines().count() - 1 && grid[&(i, j)] == '.') { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 102 - if (i == data.lines().count() - 1 && grid[&(i, j)] == '.') { [INFO] [stdout] 102 + if i == data.lines().count() - 1 && grid[&(i, j)] == '.' { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:120:22 [INFO] [stdout] | [INFO] [stdout] 120 | let dx = (i as isize + di); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 120 - let dx = (i as isize + di); [INFO] [stdout] 120 + let dx = i as isize + di; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:121:22 [INFO] [stdout] | [INFO] [stdout] 121 | let dy = (j as isize + dj); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 121 - let dy = (j as isize + dj); [INFO] [stdout] 121 + let dy = j as isize + dj; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:173:16 [INFO] [stdout] | [INFO] [stdout] 173 | if (distance > 1) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 173 - if (distance > 1) { [INFO] [stdout] 173 + if distance > 1 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/main.rs:319:22 [INFO] [stdout] | [INFO] [stdout] 319 | for x in (b.0 .0..=b.1 .0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 319 - for x in (b.0 .0..=b.1 .0) { [INFO] [stdout] 319 + for x in b.0 .0..=b.1 .0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/main.rs:320:26 [INFO] [stdout] | [INFO] [stdout] 320 | for y in (b.0 .1..=b.1 .1) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 320 - for y in (b.0 .1..=b.1 .1) { [INFO] [stdout] 320 + for y in b.0 .1..=b.1 .1 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stdout] --> src/main.rs:797:40 [INFO] [stdout] | [INFO] [stdout] 797 | let mut valid_dirs = match (dir) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 797 - let mut valid_dirs = match (dir) { [INFO] [stdout] 797 + let mut valid_dirs = match dir { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/main.rs:871:62 [INFO] [stdout] | [INFO] [stdout] 871 | seen: &mut HashMap<((usize, usize), (isize, isize)), (u32)>, [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 871 - seen: &mut HashMap<((usize, usize), (isize, isize)), (u32)>, [INFO] [stdout] 871 + seen: &mut HashMap<((usize, usize), (isize, isize)), u32>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/main.rs:698:21 [INFO] [stdout] | [INFO] [stdout] 697 | return ans; [INFO] [stdout] | ---------- any code following this expression is unreachable [INFO] [stdout] 698 | continue; [INFO] [stdout] | ^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | let (mut p1, mut p2) = (0, 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: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:11:18 [INFO] [stdout] | [INFO] [stdout] 11 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:39:18 [INFO] [stdout] | [INFO] [stdout] 39 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:92:22 [INFO] [stdout] | [INFO] [stdout] 92 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:92:10 [INFO] [stdout] | [INFO] [stdout] 92 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:216:13 [INFO] [stdout] | [INFO] [stdout] 216 | let mut path = vec![start]; [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/main.rs:332:14 [INFO] [stdout] | [INFO] [stdout] 332 | let (mut falls, _) = drop(removed); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p1` is never read [INFO] [stdout] --> src/main.rs:344:14 [INFO] [stdout] | [INFO] [stdout] 344 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `gradens_counter` is assigned to, but never used [INFO] [stdout] --> src/main.rs:350:13 [INFO] [stdout] | [INFO] [stdout] 350 | let mut gradens_counter = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_gradens_counter` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `N` [INFO] [stdout] --> src/main.rs:383:9 [INFO] [stdout] | [INFO] [stdout] 383 | let N = grid.len() as i64; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_N` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:344:18 [INFO] [stdout] | [INFO] [stdout] 344 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/main.rs:448:10 [INFO] [stdout] | [INFO] [stdout] 448 | for (n, v) in &graph { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node` [INFO] [stdout] --> src/main.rs:472:10 [INFO] [stdout] | [INFO] [stdout] 472 | for (node, conj) in &mut conjunctions { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/main.rs:566:24 [INFO] [stdout] | [INFO] [stdout] 566 | .map(|(s, v)| *v as u64) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:417:10 [INFO] [stdout] | [INFO] [stdout] 417 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/main.rs:516:53 [INFO] [stdout] | [INFO] [stdout] 516 | if conjunction.iter().any(|(v, s)| *s == -1) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:578:22 [INFO] [stdout] | [INFO] [stdout] 578 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:672:25 [INFO] [stdout] | [INFO] [stdout] 672 | let (l, op, mut v) = ( [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/main.rs:734:14 [INFO] [stdout] | [INFO] [stdout] 734 | let (mut n, mut m) = (0, 0); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `m` [INFO] [stdout] --> src/main.rs:734:21 [INFO] [stdout] | [INFO] [stdout] 734 | let (mut n, mut m) = (0, 0); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_m` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dir` [INFO] [stdout] --> src/main.rs:742:13 [INFO] [stdout] | [INFO] [stdout] 742 | let dir = line.split_whitespace().nth(0).unwrap(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `cnt` is never read [INFO] [stdout] --> src/main.rs:743:17 [INFO] [stdout] | [INFO] [stdout] 743 | let mut cnt = line [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:731:10 [INFO] [stdout] | [INFO] [stdout] 731 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:731:18 [INFO] [stdout] | [INFO] [stdout] 731 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:734:10 [INFO] [stdout] | [INFO] [stdout] 734 | let (mut n, mut m) = (0, 0); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:734:17 [INFO] [stdout] | [INFO] [stdout] 734 | let (mut n, mut m) = (0, 0); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:756:13 [INFO] [stdout] | [INFO] [stdout] 756 | let mut direction = match color.as_bytes()[color.len() - 1] { [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p1` is never read [INFO] [stdout] --> src/main.rs:779:14 [INFO] [stdout] | [INFO] [stdout] 779 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:779:22 [INFO] [stdout] | [INFO] [stdout] 779 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dirs` [INFO] [stdout] --> src/main.rs:780:9 [INFO] [stdout] | [INFO] [stdout] 780 | let dirs = [(1, 0), (0, 1), (-1, 0), (0, -1)]; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dirs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `location` [INFO] [stdout] --> src/main.rs:791:17 [INFO] [stdout] | [INFO] [stdout] 791 | let mut location = (0, 0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cost` [INFO] [stdout] --> src/main.rs:796:18 [INFO] [stdout] | [INFO] [stdout] 796 | let (cost, steps, node, dir) = item; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_cost` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:791:13 [INFO] [stdout] | [INFO] [stdout] 791 | let mut location = (0, 0); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p1` is never read [INFO] [stdout] --> src/main.rs:861:14 [INFO] [stdout] | [INFO] [stdout] 861 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:861:22 [INFO] [stdout] | [INFO] [stdout] 861 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:1086:22 [INFO] [stdout] | [INFO] [stdout] 1086 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:1086:10 [INFO] [stdout] | [INFO] [stdout] 1086 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:1186:18 [INFO] [stdout] | [INFO] [stdout] 1186 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `parity` is never read [INFO] [stdout] --> src/main.rs:1534:13 [INFO] [stdout] | [INFO] [stdout] 1534 | let mut parity = 0; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:1600:22 [INFO] [stdout] | [INFO] [stdout] 1600 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:1650:10 [INFO] [stdout] | [INFO] [stdout] 1650 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p1` is never read [INFO] [stdout] --> src/main.rs:1722:14 [INFO] [stdout] | [INFO] [stdout] 1722 | let (mut p1, mut p2) = (0, 0.0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:1722:22 [INFO] [stdout] | [INFO] [stdout] 1722 | let (mut p1, mut p2) = (0, 0.0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p1` is never read [INFO] [stdout] --> src/main.rs:1774:14 [INFO] [stdout] | [INFO] [stdout] 1774 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `p2` is never read [INFO] [stdout] --> src/main.rs:1774:22 [INFO] [stdout] | [INFO] [stdout] 1774 | let (mut p1, mut p2) = (0, 0); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `counter` is assigned to, but never used [INFO] [stdout] --> src/main.rs:1787:13 [INFO] [stdout] | [INFO] [stdout] 1787 | let mut counter = -1; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_counter` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/main.rs:1823:5 [INFO] [stdout] | [INFO] [stdout] 1823 | i = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `r` is never read [INFO] [stdout] --> src/main.rs:1953:17 [INFO] [stdout] | [INFO] [stdout] 1953 | let mut r = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `g` is never read [INFO] [stdout] --> src/main.rs:1954:17 [INFO] [stdout] | [INFO] [stdout] 1954 | let mut g = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `b` is never read [INFO] [stdout] --> src/main.rs:1955:17 [INFO] [stdout] | [INFO] [stdout] 1955 | let mut b = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `l` [INFO] [stdout] --> src/main.rs:2023:26 [INFO] [stdout] | [INFO] [stdout] 2023 | let get_digit = |l: String| -> (i32, i32) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:2007:17 [INFO] [stdout] | [INFO] [stdout] 2007 | let mut aux = result; [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/main.rs:2000:9 [INFO] [stdout] | [INFO] [stdout] 2000 | let mut lines = data.lines(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `G` should have a snake case name [INFO] [stdout] --> src/main.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | let mut G: HashMap> = HashMap::new(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `g` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `S` should have a snake case name [INFO] [stdout] --> src/main.rs:135:13 [INFO] [stdout] | [INFO] [stdout] 135 | let mut S = VecDeque::new(); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `DFS` should have a snake case name [INFO] [stdout] --> src/main.rs:204:8 [INFO] [stdout] | [INFO] [stdout] 204 | fn DFS( [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dfs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `S` should have a snake case name [INFO] [stdout] --> src/main.rs:214:17 [INFO] [stdout] | [INFO] [stdout] 214 | let mut S = VecDeque::new(); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `N` should have a snake case name [INFO] [stdout] --> src/main.rs:383:9 [INFO] [stdout] | [INFO] [stdout] 383 | let N = grid.len() as i64; [INFO] [stdout] | ^ help: convert the identifier to snake case: `n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/main.rs:423:32 [INFO] [stdout] | [INFO] [stdout] 423 | let mut new_line = line.clone(); [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` 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: function `DFS` should have a snake case name [INFO] [stdout] --> src/main.rs:479:8 [INFO] [stdout] | [INFO] [stdout] 479 | fn DFS<'a>( [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dfs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/main.rs:1508:16 [INFO] [stdout] | [INFO] [stdout] 1508 | if x < 0 || x >= lines || y < 0 || y >= cols { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/main.rs:1508:39 [INFO] [stdout] | [INFO] [stdout] 1508 | if x < 0 || x >= lines || y < 0 || y >= cols { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.44s [INFO] running `Command { std: "docker" "inspect" "ad123bc0f0cb3ce2112731a44b82c0f03d85811fafcc1f9887af4a08ad4a78a9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ad123bc0f0cb3ce2112731a44b82c0f03d85811fafcc1f9887af4a08ad4a78a9", kill_on_drop: false }` [INFO] [stdout] ad123bc0f0cb3ce2112731a44b82c0f03d85811fafcc1f9887af4a08ad4a78a9