[INFO] cloning repository https://github.com/dontknow3d/sudoku_solver_rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dontknow3d/sudoku_solver_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdontknow3d%2Fsudoku_solver_rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdontknow3d%2Fsudoku_solver_rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0b434c3e5aa0d2af34fd86bbb588c14f18e71bdc
[INFO] checking dontknow3d/sudoku_solver_rust against e5e97e3ef0ee95d34bea49cdac051ed1bbac01df for pr-158759-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdontknow3d%2Fsudoku_solver_rust" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dontknow3d/sudoku_solver_rust
[INFO] finished tweaking git repo https://github.com/dontknow3d/sudoku_solver_rust
[INFO] tweaked toml for git repo https://github.com/dontknow3d/sudoku_solver_rust written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dontknow3d/sudoku_solver_rust on toolchain e5e97e3ef0ee95d34bea49cdac051ed1bbac01df
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e5e97e3ef0ee95d34bea49cdac051ed1bbac01df" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dontknow3d/sudoku_solver_rust 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" "+e5e97e3ef0ee95d34bea49cdac051ed1bbac01df" "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-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b4e6746149c9f822f316c1bd846ef9dba6aae4dfeb6e9855e829e1a7c053ba6f
[INFO] running `Command { std: "docker" "start" "b4e6746149c9f822f316c1bd846ef9dba6aae4dfeb6e9855e829e1a7c053ba6f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b4e6746149c9f822f316c1bd846ef9dba6aae4dfeb6e9855e829e1a7c053ba6f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b4e6746149c9f822f316c1bd846ef9dba6aae4dfeb6e9855e829e1a7c053ba6f" "/opt/rustwide/cargo-home/bin/cargo" "+e5e97e3ef0ee95d34bea49cdac051ed1bbac01df" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b4e6746149c9f822f316c1bd846ef9dba6aae4dfeb6e9855e829e1a7c053ba6f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b4e6746149c9f822f316c1bd846ef9dba6aae4dfeb6e9855e829e1a7c053ba6f" "/opt/rustwide/cargo-home/bin/cargo" "+e5e97e3ef0ee95d34bea49cdac051ed1bbac01df" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking sudoku_solver v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0425]: cannot find type `OptimizationFn` in this scope
[INFO] [stdout]  --> src/main.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 |     optis: Vec<OptimizationFn>,
[INFO] [stdout]   |                ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct SudokuSolver<OptimizationFn> {
[INFO] [stdout]   |                    ++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `OptimizationFn` in this scope
[INFO] [stdout]   --> src/main.rs:17:75
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(initial_board: [i8; 9 * 9], rules: Vec<RuleFn>, optis: Vec<OptimizationFn>) -> SudokuSolver {
[INFO] [stdout]    |                                                                           ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<OptimizationFn> SudokuSolver {
[INFO] [stdout]    |     ++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `h` in this scope
[INFO] [stdout]    --> src/main.rs:286:25
[INFO] [stdout]     |
[INFO] [stdout] 286 |         .chain((start + h * 9)..(start + 3 + h * 9))
[INFO] [stdout]     |                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 286 -         .chain((start + h * 9)..(start + 3 + h * 9))
[INFO] [stdout] 286 +         .chain((start + x * 9)..(start + 3 + h * 9))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `h` in this scope
[INFO] [stdout]    --> src/main.rs:286:46
[INFO] [stdout]     |
[INFO] [stdout] 286 |         .chain((start + h * 9)..(start + 3 + h * 9))
[INFO] [stdout]     |                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 286 -         .chain((start + h * 9)..(start + 3 + h * 9))
[INFO] [stdout] 286 +         .chain((start + h * 9)..(start + 3 + x * 9))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `h` in this scope
[INFO] [stdout]    --> src/main.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |         .chain((start + h * 9 + 9)..(start + 3 + h * 9 + 9))
[INFO] [stdout]     |                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 287 -         .chain((start + h * 9 + 9)..(start + 3 + h * 9 + 9))
[INFO] [stdout] 287 +         .chain((start + x * 9 + 9)..(start + 3 + h * 9 + 9))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `h` in this scope
[INFO] [stdout]    --> src/main.rs:287:50
[INFO] [stdout]     |
[INFO] [stdout] 287 |         .chain((start + h * 9 + 9)..(start + 3 + h * 9 + 9))
[INFO] [stdout]     |                                                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 287 -         .chain((start + h * 9 + 9)..(start + 3 + h * 9 + 9))
[INFO] [stdout] 287 +         .chain((start + h * 9 + 9)..(start + 3 + x * 9 + 9))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `h` in this scope
[INFO] [stdout]    --> src/main.rs:288:25
[INFO] [stdout]     |
[INFO] [stdout] 288 |         .chain((start + h * 9 + 9 + 9)..(start + 3 + h * 9 + 9 + 9));
[INFO] [stdout]     |                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 288 -         .chain((start + h * 9 + 9 + 9)..(start + 3 + h * 9 + 9 + 9));
[INFO] [stdout] 288 +         .chain((start + x * 9 + 9 + 9)..(start + 3 + h * 9 + 9 + 9));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `h` in this scope
[INFO] [stdout]    --> src/main.rs:288:54
[INFO] [stdout]     |
[INFO] [stdout] 288 |         .chain((start + h * 9 + 9 + 9)..(start + 3 + h * 9 + 9 + 9));
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 288 -         .chain((start + h * 9 + 9 + 9)..(start + 3 + h * 9 + 9 + 9));
[INFO] [stdout] 288 +         .chain((start + h * 9 + 9 + 9)..(start + 3 + x * 9 + 9 + 9));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/main.rs:155:19
[INFO] [stdout]     |
[INFO] [stdout] 155 |             match self.rules[i](self.top_mut()) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^---------------- two arguments of type `usize` and `i8` are missing
[INFO] [stdout]     |
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 155 |             match self.rules[i](/* usize */, /* i8 */, self.top_mut()) {
[INFO] [stdout]     |                                 ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:156:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |             match self.rules[i](self.top_mut()) {
[INFO] [stdout]     |                   ----------------------------- this expression has type `bool`
[INFO] [stdout] 156 |                 RuleResult::Impossible => {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^ expected `bool`, found `RuleResult`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:160:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |             match self.rules[i](self.top_mut()) {
[INFO] [stdout]     |                   ----------------------------- this expression has type `bool`
[INFO] [stdout] ...
[INFO] [stdout] 160 |                 RuleResult::Changed => res = RuleResult::Changed,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^ expected `bool`, found `RuleResult`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/main.rs:386:16
[INFO] [stdout]     |
[INFO] [stdout] 386 |       let mut _y=SudokuSolver::new([
[INFO] [stdout]     |  ________________^^^^^^^^^^^^^^^^^-
[INFO] [stdout] 387 | |        /* //empty
[INFO] [stdout] 388 | |         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 389 | |         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] ...   |
[INFO] [stdout] 446 | |        rule_normal_sudoku,
[INFO] [stdout] 447 | |     ]);
[INFO] [stdout]     | |______- argument #3 is missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/main.rs:17:12
[INFO] [stdout]     |
[INFO] [stdout]  17 |     pub fn new(initial_board: [i8; 9 * 9], rules: Vec<RuleFn>, optis: Vec<OptimizationFn>) -> SudokuSolver {
[INFO] [stdout]     |            ^^^                                                 --------------------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 386 ~     let mut _y=SudokuSolver::new(
[INFO] [stdout] 387 +     [
[INFO] [stdout] 388 +        /* //empty
[INFO] [stdout] 389 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 390 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 391 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 392 +         
[INFO] [stdout] 393 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 394 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 395 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 396 + 
[INFO] [stdout] 397 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 398 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 399 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 400 +         */
[INFO] [stdout] 401 + 
[INFO] [stdout] 402 +         //easy 1 sol
[INFO] [stdout] 403 +         /*0,3,0, 0,1,0, 0,6,0,
[INFO] [stdout] 404 +         7,5,0, 0,3,0, 0,4,8,
[INFO] [stdout] 405 +         0,0,6, 9,8,4, 3,0,0,
[INFO] [stdout] 406 +         
[INFO] [stdout] 407 +         0,0,3, 0,0,0, 8,0,0,
[INFO] [stdout] 408 +         9,1,2, 0,0,0, 6,7,4,
[INFO] [stdout] 409 +         0,0,4, 0,0,0, 5,0,0,
[INFO] [stdout] 410 + 
[INFO] [stdout] 411 +         0,0,1, 6,7,5, 2,0,0,
[INFO] [stdout] 412 +         6,8,0, 0,9,0, 0,1,5,
[INFO] [stdout] 413 +         0,9,0, 0,4,0, 0,3,0,*/
[INFO] [stdout] 414 + 
[INFO] [stdout] 415 + 
[INFO] [stdout] 416 +         //same as above but 108 solutions
[INFO] [stdout] 417 +         0,3,0, 0,1,0, 0,6,0,
[INFO] [stdout] 418 +         0,5,0, 0,0,0, 0,0,8,
[INFO] [stdout] 419 +         0,0,6, 9,0,4, 3,0,0,
[INFO] [stdout] 420 +         
[INFO] [stdout] 421 +         0,0,3, 0,0,0, 8,0,0,
[INFO] [stdout] 422 +         9,0,2, 0,0,0, 6,7,4,
[INFO] [stdout] 423 +         0,0,4, 0,0,0, 5,0,0,
[INFO] [stdout] 424 + 
[INFO] [stdout] 425 +         0,0,1, 6,0,5, 2,0,0,
[INFO] [stdout] 426 +         6,0,0, 0,0,0, 0,0,5,
[INFO] [stdout] 427 +         0,9,0, 0,4,0, 0,3,0,
[INFO] [stdout] 428 + 
[INFO] [stdout] 429 +         //hard 1 solution
[INFO] [stdout] 430 +         /*0,0,0, 1,0,0, 0,6,8, 
[INFO] [stdout] 431 +         0,1,3, 8,0,0, 0,0,0, 
[INFO] [stdout] 432 +         0,0,0, 0,4,7, 0,0,1, 
[INFO] [stdout] 433 +         
[INFO] [stdout] 434 +         0,0,9, 5,0,0, 0,0,4, 
[INFO] [stdout] 435 +         0,7,2, 0,0,0, 8,3,0, 
[INFO] [stdout] 436 +         3,0,0, 0,0,8, 6,0,0, 
[INFO] [stdout] 437 +                 
[INFO] [stdout] 438 +         1,0,0, 3,2,0, 0,0,0, 
[INFO] [stdout] 439 +         0,0,0, 0,0,4, 1,9,0, 
[INFO] [stdout] 440 +         4,8,0, 0,0,1, 0,0,0,*/
[INFO] [stdout] 441 + 
[INFO] [stdout] 442 + 
[INFO] [stdout] 443 +     ],
[INFO] [stdout] 444 +     vec![
[INFO] [stdout] 445 +        //rule_line_v,
[INFO] [stdout] 446 +        //rule_line_h,
[INFO] [stdout] 447 +        //rule_block,
[INFO] [stdout] 448 +        rule_normal_sudoku,
[INFO] [stdout] 449 +     ],
[INFO] [stdout] 450 +     /* optis */,
[INFO] [stdout] 451 ~     );
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0308, E0425.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sudoku_solver` (bin "sudoku_solver" test) due to 12 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0425]: cannot find type `OptimizationFn` in this scope
[INFO] [stdout]  --> src/main.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 |     optis: Vec<OptimizationFn>,
[INFO] [stdout]   |                ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct SudokuSolver<OptimizationFn> {
[INFO] [stdout]   |                    ++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `OptimizationFn` in this scope
[INFO] [stdout]   --> src/main.rs:17:75
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(initial_board: [i8; 9 * 9], rules: Vec<RuleFn>, optis: Vec<OptimizationFn>) -> SudokuSolver {
[INFO] [stdout]    |                                                                           ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<OptimizationFn> SudokuSolver {
[INFO] [stdout]    |     ++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `h` in this scope
[INFO] [stdout]    --> src/main.rs:286:25
[INFO] [stdout]     |
[INFO] [stdout] 286 |         .chain((start + h * 9)..(start + 3 + h * 9))
[INFO] [stdout]     |                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 286 -         .chain((start + h * 9)..(start + 3 + h * 9))
[INFO] [stdout] 286 +         .chain((start + x * 9)..(start + 3 + h * 9))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `h` in this scope
[INFO] [stdout]    --> src/main.rs:286:46
[INFO] [stdout]     |
[INFO] [stdout] 286 |         .chain((start + h * 9)..(start + 3 + h * 9))
[INFO] [stdout]     |                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 286 -         .chain((start + h * 9)..(start + 3 + h * 9))
[INFO] [stdout] 286 +         .chain((start + h * 9)..(start + 3 + x * 9))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `h` in this scope
[INFO] [stdout]    --> src/main.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |         .chain((start + h * 9 + 9)..(start + 3 + h * 9 + 9))
[INFO] [stdout]     |                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 287 -         .chain((start + h * 9 + 9)..(start + 3 + h * 9 + 9))
[INFO] [stdout] 287 +         .chain((start + x * 9 + 9)..(start + 3 + h * 9 + 9))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `h` in this scope
[INFO] [stdout]    --> src/main.rs:287:50
[INFO] [stdout]     |
[INFO] [stdout] 287 |         .chain((start + h * 9 + 9)..(start + 3 + h * 9 + 9))
[INFO] [stdout]     |                                                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 287 -         .chain((start + h * 9 + 9)..(start + 3 + h * 9 + 9))
[INFO] [stdout] 287 +         .chain((start + h * 9 + 9)..(start + 3 + x * 9 + 9))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `h` in this scope
[INFO] [stdout]    --> src/main.rs:288:25
[INFO] [stdout]     |
[INFO] [stdout] 288 |         .chain((start + h * 9 + 9 + 9)..(start + 3 + h * 9 + 9 + 9));
[INFO] [stdout]     |                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 288 -         .chain((start + h * 9 + 9 + 9)..(start + 3 + h * 9 + 9 + 9));
[INFO] [stdout] 288 +         .chain((start + x * 9 + 9 + 9)..(start + 3 + h * 9 + 9 + 9));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `h` in this scope
[INFO] [stdout]    --> src/main.rs:288:54
[INFO] [stdout]     |
[INFO] [stdout] 288 |         .chain((start + h * 9 + 9 + 9)..(start + 3 + h * 9 + 9 + 9));
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 288 -         .chain((start + h * 9 + 9 + 9)..(start + 3 + h * 9 + 9 + 9));
[INFO] [stdout] 288 +         .chain((start + h * 9 + 9 + 9)..(start + 3 + x * 9 + 9 + 9));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/main.rs:155:19
[INFO] [stdout]     |
[INFO] [stdout] 155 |             match self.rules[i](self.top_mut()) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^---------------- two arguments of type `usize` and `i8` are missing
[INFO] [stdout]     |
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 155 |             match self.rules[i](/* usize */, /* i8 */, self.top_mut()) {
[INFO] [stdout]     |                                 ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:156:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |             match self.rules[i](self.top_mut()) {
[INFO] [stdout]     |                   ----------------------------- this expression has type `bool`
[INFO] [stdout] 156 |                 RuleResult::Impossible => {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^ expected `bool`, found `RuleResult`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:160:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |             match self.rules[i](self.top_mut()) {
[INFO] [stdout]     |                   ----------------------------- this expression has type `bool`
[INFO] [stdout] ...
[INFO] [stdout] 160 |                 RuleResult::Changed => res = RuleResult::Changed,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^ expected `bool`, found `RuleResult`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/main.rs:386:16
[INFO] [stdout]     |
[INFO] [stdout] 386 |       let mut _y=SudokuSolver::new([
[INFO] [stdout]     |  ________________^^^^^^^^^^^^^^^^^-
[INFO] [stdout] 387 | |        /* //empty
[INFO] [stdout] 388 | |         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 389 | |         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] ...   |
[INFO] [stdout] 446 | |        rule_normal_sudoku,
[INFO] [stdout] 447 | |     ]);
[INFO] [stdout]     | |______- argument #3 is missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/main.rs:17:12
[INFO] [stdout]     |
[INFO] [stdout]  17 |     pub fn new(initial_board: [i8; 9 * 9], rules: Vec<RuleFn>, optis: Vec<OptimizationFn>) -> SudokuSolver {
[INFO] [stdout]     |            ^^^                                                 --------------------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 386 ~     let mut _y=SudokuSolver::new(
[INFO] [stdout] 387 +     [
[INFO] [stdout] 388 +        /* //empty
[INFO] [stdout] 389 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 390 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 391 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 392 +         
[INFO] [stdout] 393 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 394 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 395 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 396 + 
[INFO] [stdout] 397 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 398 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 399 +         0,0,0, 0,0,0, 0,0,0,
[INFO] [stdout] 400 +         */
[INFO] [stdout] 401 + 
[INFO] [stdout] 402 +         //easy 1 sol
[INFO] [stdout] 403 +         /*0,3,0, 0,1,0, 0,6,0,
[INFO] [stdout] 404 +         7,5,0, 0,3,0, 0,4,8,
[INFO] [stdout] 405 +         0,0,6, 9,8,4, 3,0,0,
[INFO] [stdout] 406 +         
[INFO] [stdout] 407 +         0,0,3, 0,0,0, 8,0,0,
[INFO] [stdout] 408 +         9,1,2, 0,0,0, 6,7,4,
[INFO] [stdout] 409 +         0,0,4, 0,0,0, 5,0,0,
[INFO] [stdout] 410 + 
[INFO] [stdout] 411 +         0,0,1, 6,7,5, 2,0,0,
[INFO] [stdout] 412 +         6,8,0, 0,9,0, 0,1,5,
[INFO] [stdout] 413 +         0,9,0, 0,4,0, 0,3,0,*/
[INFO] [stdout] 414 + 
[INFO] [stdout] 415 + 
[INFO] [stdout] 416 +         //same as above but 108 solutions
[INFO] [stdout] 417 +         0,3,0, 0,1,0, 0,6,0,
[INFO] [stdout] 418 +         0,5,0, 0,0,0, 0,0,8,
[INFO] [stdout] 419 +         0,0,6, 9,0,4, 3,0,0,
[INFO] [stdout] 420 +         
[INFO] [stdout] 421 +         0,0,3, 0,0,0, 8,0,0,
[INFO] [stdout] 422 +         9,0,2, 0,0,0, 6,7,4,
[INFO] [stdout] 423 +         0,0,4, 0,0,0, 5,0,0,
[INFO] [stdout] 424 + 
[INFO] [stdout] 425 +         0,0,1, 6,0,5, 2,0,0,
[INFO] [stdout] 426 +         6,0,0, 0,0,0, 0,0,5,
[INFO] [stdout] 427 +         0,9,0, 0,4,0, 0,3,0,
[INFO] [stdout] 428 + 
[INFO] [stdout] 429 +         //hard 1 solution
[INFO] [stdout] 430 +         /*0,0,0, 1,0,0, 0,6,8, 
[INFO] [stdout] 431 +         0,1,3, 8,0,0, 0,0,0, 
[INFO] [stdout] 432 +         0,0,0, 0,4,7, 0,0,1, 
[INFO] [stdout] 433 +         
[INFO] [stdout] 434 +         0,0,9, 5,0,0, 0,0,4, 
[INFO] [stdout] 435 +         0,7,2, 0,0,0, 8,3,0, 
[INFO] [stdout] 436 +         3,0,0, 0,0,8, 6,0,0, 
[INFO] [stdout] 437 +                 
[INFO] [stdout] 438 +         1,0,0, 3,2,0, 0,0,0, 
[INFO] [stdout] 439 +         0,0,0, 0,0,4, 1,9,0, 
[INFO] [stdout] 440 +         4,8,0, 0,0,1, 0,0,0,*/
[INFO] [stdout] 441 + 
[INFO] [stdout] 442 + 
[INFO] [stdout] 443 +     ],
[INFO] [stdout] 444 +     vec![
[INFO] [stdout] 445 +        //rule_line_v,
[INFO] [stdout] 446 +        //rule_line_h,
[INFO] [stdout] 447 +        //rule_block,
[INFO] [stdout] 448 +        rule_normal_sudoku,
[INFO] [stdout] 449 +     ],
[INFO] [stdout] 450 +     /* optis */,
[INFO] [stdout] 451 ~     );
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0308, E0425.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sudoku_solver` (bin "sudoku_solver") due to 12 previous errors
[INFO] running `Command { std: "docker" "inspect" "b4e6746149c9f822f316c1bd846ef9dba6aae4dfeb6e9855e829e1a7c053ba6f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b4e6746149c9f822f316c1bd846ef9dba6aae4dfeb6e9855e829e1a7c053ba6f", kill_on_drop: false }`
[INFO] [stdout] b4e6746149c9f822f316c1bd846ef9dba6aae4dfeb6e9855e829e1a7c053ba6f
