[INFO] cloning repository https://github.com/tleavitt/minesweeper
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tleavitt/minesweeper" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftleavitt%2Fminesweeper", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftleavitt%2Fminesweeper'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e92627c133611190cff837b1b2b588c45b8f1227
[INFO] checking tleavitt/minesweeper against try#1f5783cbeb5da8b38566d718631d016891e9c912 for pr-142704
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftleavitt%2Fminesweeper" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/tleavitt/minesweeper on toolchain 1f5783cbeb5da8b38566d718631d016891e9c912
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f5783cbeb5da8b38566d718631d016891e9c912" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/tleavitt/minesweeper
[INFO] finished tweaking git repo https://github.com/tleavitt/minesweeper
[INFO] tweaked toml for git repo https://github.com/tleavitt/minesweeper written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/tleavitt/minesweeper 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" "+1f5783cbeb5da8b38566d718631d016891e9c912" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+1f5783cbeb5da8b38566d718631d016891e9c912" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2be0e14ec38a0ab517730118b82deee109fd434549e67f9816997f7a7a81d276
[INFO] running `Command { std: "docker" "start" "-a" "2be0e14ec38a0ab517730118b82deee109fd434549e67f9816997f7a7a81d276", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2be0e14ec38a0ab517730118b82deee109fd434549e67f9816997f7a7a81d276", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2be0e14ec38a0ab517730118b82deee109fd434549e67f9816997f7a7a81d276", kill_on_drop: false }`
[INFO] [stdout] 2be0e14ec38a0ab517730118b82deee109fd434549e67f9816997f7a7a81d276
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+1f5783cbeb5da8b38566d718631d016891e9c912" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9136928d588e5d6458d24713c57ba99ea66b7d950ab00e16c59264232c7cbc56
[INFO] running `Command { std: "docker" "start" "-a" "9136928d588e5d6458d24713c57ba99ea66b7d950ab00e16c59264232c7cbc56", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.137
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking getrandom v0.2.8
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking minesweeper-solver v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::cmp::max`
[INFO] [stdout]  --> src/solve_grid.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::max;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::assume`
[INFO] [stdout]    --> src/assume.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |     use crate::assume;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::grid::get`
[INFO] [stdout]  --> src/patterns.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::grid::get;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::solve_grid::SolveGrid`
[INFO] [stdout]  --> src/patterns.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::solve_grid::SolveGrid;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::max`
[INFO] [stdout]  --> src/solve_grid.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::max;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::solve_grid`
[INFO] [stdout]  --> src/assume.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::solve_grid;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mine_map::*`
[INFO] [stdout]  --> src/assume.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::mine_map::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::grid::get`
[INFO] [stdout]  --> src/patterns.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::grid::get;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::solve_grid::SolveGrid`
[INFO] [stdout]  --> src/patterns.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::solve_grid::SolveGrid;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/count_grid.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut cur_cell: &mut CountCell = get_mut(count_grid, i, j);
[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/solve_grid.rs:183:13
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let mut cell = get_mut(&mut solve_state.solve_grid, *i_, *j_);
[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/solve_grid.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let mut boundary_cell = get_mut(&mut solve_state.solve_grid, i, j);
[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/solve_grid.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |         let mut frontier_cell = get_mut(&mut solve_state.solve_grid, i, j);
[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/count_grid.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut cur_cell: &mut CountCell = get_mut(count_grid, i, j);
[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: `cell`
[INFO] [stdout]    --> src/solve_grid.rs:376:72
[INFO] [stdout]     |
[INFO] [stdout] 376 |                 for_each_neighbor(&solve_state.solve_grid, i, j, &mut |cell, ni, nj| {
[INFO] [stdout]     |                                                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_cell`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ni`
[INFO] [stdout]    --> src/solve_grid.rs:434:53
[INFO] [stdout]     |
[INFO] [stdout] 434 |     for_each_neighbor(solve_grid, i, j, &mut |cell, ni, nj| {
[INFO] [stdout]     |                                                     ^^ help: if this is intentional, prefix it with an underscore: `_ni`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nj`
[INFO] [stdout]    --> src/solve_grid.rs:434:57
[INFO] [stdout]     |
[INFO] [stdout] 434 |     for_each_neighbor(solve_grid, i, j, &mut |cell, ni, nj| {
[INFO] [stdout]     |                                                         ^^ help: if this is intentional, prefix it with an underscore: `_nj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/assume.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut solve_cell = get_mut(&mut solve_state.solve_grid, i, j);
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ni`
[INFO] [stdout]   --> src/assume.rs:51:66
[INFO] [stdout]    |
[INFO] [stdout] 51 |     for_each_neighbor(&solve_state.count_grid, i, j, &mut |cell, ni, nj| {
[INFO] [stdout]    |                                                                  ^^ help: if this is intentional, prefix it with an underscore: `_ni`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nj`
[INFO] [stdout]   --> src/assume.rs:51:70
[INFO] [stdout]    |
[INFO] [stdout] 51 |     for_each_neighbor(&solve_state.count_grid, i, j, &mut |cell, ni, nj| {
[INFO] [stdout]    |                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_nj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `solve_state`
[INFO] [stdout]  --> src/patterns.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn is_one_two_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]   |                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solve_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/patterns.rs:7:49
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn is_one_two_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]   |                                                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]  --> src/patterns.rs:7:59
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn is_one_two_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]   |                                                           ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `solve_state`
[INFO] [stdout]   --> src/patterns.rs:11:27
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn is_one_two_two_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]    |                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solve_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/patterns.rs:11:53
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn is_one_two_two_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]    |                                                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/patterns.rs:11:63
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn is_one_two_two_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]    |                                                               ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `solve_state`
[INFO] [stdout]   --> src/patterns.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn is_one_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solve_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/patterns.rs:16:45
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn is_one_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]    |                                             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/patterns.rs:16:55
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn is_one_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]    |                                                       ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `i` and `j` are never read
[INFO] [stdout]    --> src/solve_grid.rs:246:5
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub struct InvalidSolveCell {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 246 |     i: usize,
[INFO] [stdout]     |     ^
[INFO] [stdout] 247 |     j: usize,
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InvalidSolveCell` has derived impls for the traits `Clone` and `Debug`, 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 `make_move_and_print` is never used
[INFO] [stdout]    --> src/solve_grid.rs:455:4
[INFO] [stdout]     |
[INFO] [stdout] 455 | fn make_move_and_print(m: (usize, usize), solve_state: &mut SolveState, mine_map: &MineMap) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solve_grid.rs:183:13
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let mut cell = get_mut(&mut solve_state.solve_grid, *i_, *j_);
[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/solve_grid.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let mut boundary_cell = get_mut(&mut solve_state.solve_grid, i, j);
[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/solve_grid.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |         let mut frontier_cell = get_mut(&mut solve_state.solve_grid, i, j);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cell`
[INFO] [stdout]    --> src/solve_grid.rs:376:72
[INFO] [stdout]     |
[INFO] [stdout] 376 |                 for_each_neighbor(&solve_state.solve_grid, i, j, &mut |cell, ni, nj| {
[INFO] [stdout]     |                                                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_cell`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ni`
[INFO] [stdout]    --> src/solve_grid.rs:434:53
[INFO] [stdout]     |
[INFO] [stdout] 434 |     for_each_neighbor(solve_grid, i, j, &mut |cell, ni, nj| {
[INFO] [stdout]     |                                                     ^^ help: if this is intentional, prefix it with an underscore: `_ni`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nj`
[INFO] [stdout]    --> src/solve_grid.rs:434:57
[INFO] [stdout]     |
[INFO] [stdout] 434 |     for_each_neighbor(solve_grid, i, j, &mut |cell, ni, nj| {
[INFO] [stdout]     |                                                         ^^ help: if this is intentional, prefix it with an underscore: `_nj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/assume.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut solve_cell = get_mut(&mut solve_state.solve_grid, i, j);
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ni`
[INFO] [stdout]   --> src/assume.rs:51:66
[INFO] [stdout]    |
[INFO] [stdout] 51 |     for_each_neighbor(&solve_state.count_grid, i, j, &mut |cell, ni, nj| {
[INFO] [stdout]    |                                                                  ^^ help: if this is intentional, prefix it with an underscore: `_ni`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nj`
[INFO] [stdout]   --> src/assume.rs:51:70
[INFO] [stdout]    |
[INFO] [stdout] 51 |     for_each_neighbor(&solve_state.count_grid, i, j, &mut |cell, ni, nj| {
[INFO] [stdout]    |                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_nj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `solve_state`
[INFO] [stdout]  --> src/patterns.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn is_one_two_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]   |                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solve_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/patterns.rs:7:49
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn is_one_two_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]   |                                                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]  --> src/patterns.rs:7:59
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn is_one_two_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]   |                                                           ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `solve_state`
[INFO] [stdout]   --> src/patterns.rs:11:27
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn is_one_two_two_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]    |                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solve_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/patterns.rs:11:53
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn is_one_two_two_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]    |                                                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/patterns.rs:11:63
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn is_one_two_two_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]    |                                                               ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `solve_state`
[INFO] [stdout]   --> src/patterns.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn is_one_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solve_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/patterns.rs:16:45
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn is_one_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]    |                                             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/patterns.rs:16:55
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn is_one_one(solve_state: &SolveState, i: usize, j: usize) -> bool {
[INFO] [stdout]    |                                                       ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `i` and `j` are never read
[INFO] [stdout]    --> src/solve_grid.rs:246:5
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub struct InvalidSolveCell {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 246 |     i: usize,
[INFO] [stdout]     |     ^
[INFO] [stdout] 247 |     j: usize,
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InvalidSolveCell` has derived impls for the traits `Clone` and `Debug`, 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: unused import: `minesweeper_solver::assume`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use minesweeper_solver::assume;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time`
[INFO] [stdout]  --> src/main.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::{io, time};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::sleep`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::thread::sleep;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_likelihood` is never read
[INFO] [stdout]   --> src/main.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let mut best_likelihood: f64 = -1.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: unused import: `minesweeper_solver::assume`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use minesweeper_solver::assume;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time`
[INFO] [stdout]  --> src/main.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::{io, time};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::sleep`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::thread::sleep;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_likelihood` is never read
[INFO] [stdout]   --> src/main.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let mut best_likelihood: f64 = -1.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] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.90s
[INFO] running `Command { std: "docker" "inspect" "9136928d588e5d6458d24713c57ba99ea66b7d950ab00e16c59264232c7cbc56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9136928d588e5d6458d24713c57ba99ea66b7d950ab00e16c59264232c7cbc56", kill_on_drop: false }`
[INFO] [stdout] 9136928d588e5d6458d24713c57ba99ea66b7d950ab00e16c59264232c7cbc56
