[INFO] cloning repository https://github.com/shaggysa/sudoku-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shaggysa/sudoku-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshaggysa%2Fsudoku-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshaggysa%2Fsudoku-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] aa94780b76d4b4483ac05a703cf911dafff41a92
[INFO] checking shaggysa/sudoku-rust/aa94780b76d4b4483ac05a703cf911dafff41a92 against master#1fe72d35998dea48aeecaf7fc07783b0b553f24f for pr-154992
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshaggysa%2Fsudoku-rust" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/shaggysa/sudoku-rust
[INFO] finished tweaking git repo https://github.com/shaggysa/sudoku-rust
[INFO] tweaked toml for git repo https://github.com/shaggysa/sudoku-rust written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/shaggysa/sudoku-rust on toolchain 1fe72d35998dea48aeecaf7fc07783b0b553f24f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 84 packages to latest Rust 1.96.0-nightly compatible versions
[INFO] [stderr]       Adding pyo3 v0.25.1 (available: v0.28.3)
[INFO] [stderr]       Adding rand v0.9.4 (available: v0.10.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pyo3-macros v0.25.1
[INFO] [stderr]   Downloaded pyo3-build-config v0.25.1
[INFO] [stderr]   Downloaded pyo3-ffi v0.25.1
[INFO] [stderr]   Downloaded pyo3-macros-backend v0.25.1
[INFO] [stderr]   Downloaded webpki-roots v1.0.7
[INFO] [stderr]   Downloaded pyo3 v0.25.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 154c3fc5ba22941767e2aa23b186f2b633596f4d896c75c75fdb0be0f840053f
[INFO] running `Command { std: "docker" "start" "-a" "154c3fc5ba22941767e2aa23b186f2b633596f4d896c75c75fdb0be0f840053f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "154c3fc5ba22941767e2aa23b186f2b633596f4d896c75c75fdb0be0f840053f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "154c3fc5ba22941767e2aa23b186f2b633596f4d896c75c75fdb0be0f840053f", kill_on_drop: false }`
[INFO] [stdout] 154c3fc5ba22941767e2aa23b186f2b633596f4d896c75c75fdb0be0f840053f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c7db7490eb219871da0046d1760357775460f6315fda7a572ef6c11d8cdaecc1
[INFO] running `Command { std: "docker" "start" "-a" "c7db7490eb219871da0046d1760357775460f6315fda7a572ef6c11d8cdaecc1", kill_on_drop: false }`
[INFO] [stderr]    Compiling target-lexicon v0.13.5
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]     Checking webpki-roots v1.0.7
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]    Compiling pyo3-build-config v0.25.1
[INFO] [stderr]     Checking ureq-proto v0.6.0
[INFO] [stderr]     Checking unindent v0.2.4
[INFO] [stderr]     Checking utf8-zero v0.8.1
[INFO] [stderr]     Checking tokio v1.52.1
[INFO] [stderr]    Compiling pyo3-macros-backend v0.25.1
[INFO] [stderr]    Compiling pyo3-ffi v0.25.1
[INFO] [stderr]    Compiling pyo3 v0.25.1
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.4
[INFO] [stderr]    Compiling pyo3-macros v0.25.1
[INFO] [stderr]     Checking ureq v3.3.0
[INFO] [stderr]     Checking lib-sudoku v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `libraries::puzzle_reader::PuzzleReader`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use libraries::puzzle_reader::PuzzleReader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `libraries::speedtest`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use libraries::speedtest;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `libraries::puzzle_reader::PuzzleReader`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use libraries::puzzle_reader::PuzzleReader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `libraries::speedtest`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use libraries::speedtest;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_puzz` is never used
[INFO] [stdout]   --> src/libraries/puzzle_reader.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn print_puzz(puzz: Vec<u8>) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `backend_print_puzz` is never used
[INFO] [stdout]   --> src/libraries/puzzle_reader.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn backend_print_puzz(puzz: [u8; 81]) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Puzzle` is never constructed
[INFO] [stdout]  --> src/libraries/puzzle_solver.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Puzzle { 
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `no_repeats` is never used
[INFO] [stdout]   --> src/libraries/puzzle_solver.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn no_repeats(items: Vec<u8>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid` is never used
[INFO] [stdout]   --> src/libraries/puzzle_solver.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub(crate) fn is_valid(puzzle: Vec<u8>) -> PyResult<bool> {
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `backend_is_valid` is never used
[INFO] [stdout]   --> src/libraries/puzzle_solver.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) fn backend_is_valid(puzzle: [u8; 81]) -> PyResult<bool> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_possibilities` is never used
[INFO] [stdout]   --> src/libraries/puzzle_solver.rs:73:15
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub(crate) fn get_possibilities(puzz: &[u8; 81], pos: u8) -> Vec<u8> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `manual_solver_prep` is never used
[INFO] [stdout]   --> src/libraries/puzzle_solver.rs:98:15
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub(crate) fn manual_solver_prep(p: &mut Puzzle) {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solver_prep` is never used
[INFO] [stdout]    --> src/libraries/puzzle_solver.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn solver_prep(puzz: [u8; 81]) -> Puzzle {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_possibilities_as_array` is never used
[INFO] [stdout]    --> src/libraries/puzzle_solver.rs:192:15
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub(crate) fn get_possibilities_as_array(puzz: &[u8; 81], pos: usize) -> [bool; 10] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/libraries/puzzle_solver.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn solve(puzz: Vec<u8>) -> PyResult<[u8; 81]> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `backend_solve` is never used
[INFO] [stdout]    --> src/libraries/puzzle_solver.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn backend_solve(puzz: [u8; 81]) -> PyResult<[u8; 81]> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `manual_solve` is never used
[INFO] [stdout]    --> src/libraries/puzzle_solver.rs:272:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub fn manual_solve(p: &mut Puzzle) -> PyResult<[u8; 81]> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `async_solve` is never used
[INFO] [stdout]    --> src/libraries/puzzle_solver.rs:326:14
[INFO] [stdout]     |
[INFO] [stdout] 326 | pub async fn async_solve(puzz: [u8; 81]) -> PyResult<[u8; 81]> {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `async_speedtest` is never used
[INFO] [stdout]  --> src/libraries/speedtest.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn async_speedtest(puzzle_reader: &puzzle_reader::PuzzleReader, verbose: bool) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `synchronous_speedtest` is never used
[INFO] [stdout]   --> src/libraries/speedtest.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn synchronous_speedtest(puzzle_reader: &puzzle_reader::PuzzleReader, verbose: bool) -> pyo3::PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Order` is never used
[INFO] [stdout]   --> src/libraries/puzzle_generator.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum Order {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alt_get_possibilities` is never used
[INFO] [stdout]   --> src/libraries/puzzle_generator.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn alt_get_possibilities(puzz: &[u8; 81], pos: u8, order: &Order) -> Vec<u8> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alt_solver_prep` is never used
[INFO] [stdout]   --> src/libraries/puzzle_generator.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn alt_solver_prep(puzz: [u8;81], order: Order) -> Puzzle {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alt_solve` is never used
[INFO] [stdout]    --> src/libraries/puzzle_generator.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn alt_solve(puzz: [u8; 81], order: Order) -> PyResult<[u8; 81]> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gen_random_solved` is never used
[INFO] [stdout]    --> src/libraries/puzzle_generator.rs:158:4
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn gen_random_solved() -> [u8; 81] {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_legal` is never used
[INFO] [stdout]    --> src/libraries/puzzle_generator.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn is_legal(puzzle: &[u8; 81]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gen_unsolved` is never used
[INFO] [stdout]    --> src/libraries/puzzle_generator.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub fn gen_unsolved(num_hints: usize) -> PyResult<[u8; 81]> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_puzz` is never used
[INFO] [stdout]   --> src/libraries/puzzle_reader.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn print_puzz(puzz: Vec<u8>) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `backend_print_puzz` is never used
[INFO] [stdout]   --> src/libraries/puzzle_reader.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn backend_print_puzz(puzz: [u8; 81]) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Puzzle` is never constructed
[INFO] [stdout]  --> src/libraries/puzzle_solver.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Puzzle { 
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `no_repeats` is never used
[INFO] [stdout]   --> src/libraries/puzzle_solver.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn no_repeats(items: Vec<u8>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid` is never used
[INFO] [stdout]   --> src/libraries/puzzle_solver.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub(crate) fn is_valid(puzzle: Vec<u8>) -> PyResult<bool> {
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `backend_is_valid` is never used
[INFO] [stdout]   --> src/libraries/puzzle_solver.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) fn backend_is_valid(puzzle: [u8; 81]) -> PyResult<bool> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_possibilities` is never used
[INFO] [stdout]   --> src/libraries/puzzle_solver.rs:73:15
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub(crate) fn get_possibilities(puzz: &[u8; 81], pos: u8) -> Vec<u8> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `manual_solver_prep` is never used
[INFO] [stdout]   --> src/libraries/puzzle_solver.rs:98:15
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub(crate) fn manual_solver_prep(p: &mut Puzzle) {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solver_prep` is never used
[INFO] [stdout]    --> src/libraries/puzzle_solver.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn solver_prep(puzz: [u8; 81]) -> Puzzle {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_possibilities_as_array` is never used
[INFO] [stdout]    --> src/libraries/puzzle_solver.rs:192:15
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub(crate) fn get_possibilities_as_array(puzz: &[u8; 81], pos: usize) -> [bool; 10] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/libraries/puzzle_solver.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn solve(puzz: Vec<u8>) -> PyResult<[u8; 81]> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `backend_solve` is never used
[INFO] [stdout]    --> src/libraries/puzzle_solver.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn backend_solve(puzz: [u8; 81]) -> PyResult<[u8; 81]> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `manual_solve` is never used
[INFO] [stdout]    --> src/libraries/puzzle_solver.rs:272:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub fn manual_solve(p: &mut Puzzle) -> PyResult<[u8; 81]> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `async_solve` is never used
[INFO] [stdout]    --> src/libraries/puzzle_solver.rs:326:14
[INFO] [stdout]     |
[INFO] [stdout] 326 | pub async fn async_solve(puzz: [u8; 81]) -> PyResult<[u8; 81]> {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `async_speedtest` is never used
[INFO] [stdout]  --> src/libraries/speedtest.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn async_speedtest(puzzle_reader: &puzzle_reader::PuzzleReader, verbose: bool) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `synchronous_speedtest` is never used
[INFO] [stdout]   --> src/libraries/speedtest.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn synchronous_speedtest(puzzle_reader: &puzzle_reader::PuzzleReader, verbose: bool) -> pyo3::PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Order` is never used
[INFO] [stdout]   --> src/libraries/puzzle_generator.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum Order {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alt_get_possibilities` is never used
[INFO] [stdout]   --> src/libraries/puzzle_generator.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn alt_get_possibilities(puzz: &[u8; 81], pos: u8, order: &Order) -> Vec<u8> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alt_solver_prep` is never used
[INFO] [stdout]   --> src/libraries/puzzle_generator.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn alt_solver_prep(puzz: [u8;81], order: Order) -> Puzzle {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alt_solve` is never used
[INFO] [stdout]    --> src/libraries/puzzle_generator.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn alt_solve(puzz: [u8; 81], order: Order) -> PyResult<[u8; 81]> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gen_random_solved` is never used
[INFO] [stdout]    --> src/libraries/puzzle_generator.rs:158:4
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn gen_random_solved() -> [u8; 81] {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_legal` is never used
[INFO] [stdout]    --> src/libraries/puzzle_generator.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn is_legal(puzzle: &[u8; 81]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gen_unsolved` is never used
[INFO] [stdout]    --> src/libraries/puzzle_generator.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub fn gen_unsolved(num_hints: usize) -> PyResult<[u8; 81]> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.10s
[INFO] running `Command { std: "docker" "inspect" "c7db7490eb219871da0046d1760357775460f6315fda7a572ef6c11d8cdaecc1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c7db7490eb219871da0046d1760357775460f6315fda7a572ef6c11d8cdaecc1", kill_on_drop: false }`
[INFO] [stdout] c7db7490eb219871da0046d1760357775460f6315fda7a572ef6c11d8cdaecc1
