[INFO] cloning repository https://github.com/Skipants/sudoku_solver [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Skipants/sudoku_solver" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkipants%2Fsudoku_solver", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkipants%2Fsudoku_solver'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e2213d71b3e001dfb5997b07e26b3b21ccf97fd6 [INFO] checking Skipants/sudoku_solver against try#8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8 for pr-82565 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkipants%2Fsudoku_solver" "/workspace/builds/worker-9/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-9/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Skipants/sudoku_solver on toolchain 8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Skipants/sudoku_solver [INFO] finished tweaking git repo https://github.com/Skipants/sudoku_solver [INFO] tweaked toml for git repo https://github.com/Skipants/sudoku_solver written to /workspace/builds/worker-9/source/Cargo.toml [INFO] crate git repo https://github.com/Skipants/sudoku_solver already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "fetch" "--locked" "--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-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/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" "rustops/crates-build-env@sha256:f2f6bcd4b43ebee4e173f653a26493129bdb64017c85f916b780ca7fbdbaa79d" "/opt/rustwide/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e605d2a0e8641c9f562a369f9dad24dcbce5aae83204d004125c745bab53f69f [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "e605d2a0e8641c9f562a369f9dad24dcbce5aae83204d004125c745bab53f69f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e605d2a0e8641c9f562a369f9dad24dcbce5aae83204d004125c745bab53f69f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e605d2a0e8641c9f562a369f9dad24dcbce5aae83204d004125c745bab53f69f", kill_on_drop: false }` [INFO] [stdout] e605d2a0e8641c9f562a369f9dad24dcbce5aae83204d004125c745bab53f69f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:f2f6bcd4b43ebee4e173f653a26493129bdb64017c85f916b780ca7fbdbaa79d" "/opt/rustwide/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 39a5a2875ddfc628ef4920f57e5f77298fc418ad816c13f21f01cf4551ad86c0 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "39a5a2875ddfc628ef4920f57e5f77298fc418ad816c13f21f01cf4551ad86c0", kill_on_drop: false }` [INFO] [stderr] Checking sudoku_solver v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0583]: file not found for module `sole_candidate` [INFO] [stdout] --> src/strategies/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | pub mod sole_candidate; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: to create the module `sole_candidate`, create file "src/strategies/sole_candidate.rs" [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0583]: file not found for module `sole_candidate` [INFO] [stdout] --> src/strategies/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | pub mod sole_candidate; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: to create the module `sole_candidate`, create file "src/strategies/sole_candidate.rs" [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `sudoku_cell_bitmask` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use sudoku_cell_bitmask; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ no `sudoku_cell_bitmask` in the root [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `sudoku_cell_bitmask` [INFO] [stdout] --> src/strategies/unique_candidate.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use sudoku_cell_bitmask; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ no `sudoku_cell_bitmask` in the root [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `sudoku_cell_bitmask` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use sudoku_cell_bitmask; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ no `sudoku_cell_bitmask` in the root [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `sudoku_cell_bitmask` [INFO] [stdout] --> src/strategies/unique_candidate.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use sudoku_cell_bitmask; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ no `sudoku_cell_bitmask` in the root [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `solve` in module `strategies::sole_candidate` [INFO] [stdout] --> src/main.rs:31:31 [INFO] [stdout] | [INFO] [stdout] 31 | strategies::sole_candidate::solve(board, x, y); [INFO] [stdout] | ^^^^^ not found in `strategies::sole_candidate` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 3 | use strategies::column_row_exclusion::solve; [INFO] [stdout] | [INFO] [stdout] 3 | use strategies::unique_candidate::solve; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `x` in this scope [INFO] [stdout] --> src/main.rs:31:44 [INFO] [stdout] | [INFO] [stdout] 31 | strategies::sole_candidate::solve(board, x, y); [INFO] [stdout] | ^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `y` in this scope [INFO] [stdout] --> src/main.rs:31:47 [INFO] [stdout] | [INFO] [stdout] 31 | strategies::sole_candidate::solve(board, x, y); [INFO] [stdout] | ^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cell.rs:18:6 [INFO] [stdout] | [INFO] [stdout] 18 | 1...9 => Contents::Value(candidates.value), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/main.rs:16:53 [INFO] [stdout] | [INFO] [stdout] 16 | fn fill_board_from_file(filename: String) -> Result { [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] = help: this function's return type contains a borrowed value with an elided lifetime, but the lifetime cannot be derived from the arguments [INFO] [stdout] help: consider using the `'static` lifetime [INFO] [stdout] | [INFO] [stdout] 16 | fn fill_board_from_file(filename: String) -> Result, std::io::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `solve` in module `strategies::sole_candidate` [INFO] [stdout] --> src/main.rs:31:31 [INFO] [stdout] | [INFO] [stdout] 31 | strategies::sole_candidate::solve(board, x, y); [INFO] [stdout] | ^^^^^ not found in `strategies::sole_candidate` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 3 | use strategies::column_row_exclusion::solve; [INFO] [stdout] | [INFO] [stdout] 3 | use strategies::unique_candidate::solve; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `x` in this scope [INFO] [stdout] --> src/main.rs:31:44 [INFO] [stdout] | [INFO] [stdout] 31 | strategies::sole_candidate::solve(board, x, y); [INFO] [stdout] | ^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `y` in this scope [INFO] [stdout] --> src/main.rs:31:47 [INFO] [stdout] | [INFO] [stdout] 31 | strategies::sole_candidate::solve(board, x, y); [INFO] [stdout] | ^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cell.rs:18:6 [INFO] [stdout] | [INFO] [stdout] 18 | 1...9 => Contents::Value(candidates.value), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/main.rs:16:53 [INFO] [stdout] | [INFO] [stdout] 16 | fn fill_board_from_file(filename: String) -> Result { [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] = help: this function's return type contains a borrowed value with an elided lifetime, but the lifetime cannot be derived from the arguments [INFO] [stdout] help: consider using the `'static` lifetime [INFO] [stdout] | [INFO] [stdout] 16 | fn fill_board_from_file(filename: String) -> Result, std::io::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0616]: field `fresh_coordinates` of struct `board::Board` is private [INFO] [stdout] --> src/main.rs:28:37 [INFO] [stdout] | [INFO] [stdout] 28 | while let Some(Coordinate) = board.fresh_coordinates.pop() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ private field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `values` on type `board::Board<'_>` [INFO] [stdout] --> src/main.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | ], board.values, "\nleft:\n{}\n\nright:\n{}", Board::new(initial_values), board); [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0615]: attempted to take value of method `value` on type `&'a Candidates` [INFO] [stdout] --> src/cell.rs:17:31 [INFO] [stdout] | [INFO] [stdout] 17 | contents: match candidates.value { [INFO] [stdout] | ^^^^^ method, not a field [INFO] [stdout] | [INFO] [stdout] help: use parentheses to call the method [INFO] [stdout] | [INFO] [stdout] 17 | contents: match candidates.value() { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0615]: attempted to take value of method `value` on type `&'a Candidates` [INFO] [stdout] --> src/cell.rs:18:41 [INFO] [stdout] | [INFO] [stdout] 18 | 1...9 => Contents::Value(candidates.value), [INFO] [stdout] | ^^^^^ method, not a field [INFO] [stdout] | [INFO] [stdout] help: use parentheses to call the method [INFO] [stdout] | [INFO] [stdout] 18 | 1...9 => Contents::Value(candidates.value()), [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/board.rs:16:23 [INFO] [stdout] | [INFO] [stdout] 16 | cells: [[Cell::new(Candidates::new_default()); 9]; 9], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `&Candidates`, found struct `Candidates` [INFO] [stdout] | help: consider borrowing here: `&Candidates::new_default()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/board.rs:22:38 [INFO] [stdout] | [INFO] [stdout] 22 | let candidates = Candidates::new(value); [INFO] [stdout] | ^^^^^ expected `u8`, found `i32` [INFO] [stdout] | [INFO] [stdout] help: you can convert an `i32` to a `u8` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 22 | let candidates = Candidates::new(value.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/board.rs:23:26 [INFO] [stdout] | [INFO] [stdout] 23 | let cell = Cell::new(candidates); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `&Candidates`, found struct `Candidates` [INFO] [stdout] | help: consider borrowing here: `&candidates` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0616]: field `fresh_coordinates` of struct `Board` is private [INFO] [stdout] --> src/main.rs:28:37 [INFO] [stdout] | [INFO] [stdout] 28 | while let Some(Coordinate) = board.fresh_coordinates.pop() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ private field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/board.rs:25:23 [INFO] [stdout] | [INFO] [stdout] 25 | board.update_cell(cell, Coordinate{ x: j, y: i }); [INFO] [stdout] | ^^^^ expected struct `Coordinate`, found struct `cell::Cell` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0615]: attempted to take value of method `value` on type `&'a Candidates` [INFO] [stdout] --> src/cell.rs:17:31 [INFO] [stdout] | [INFO] [stdout] 17 | contents: match candidates.value { [INFO] [stdout] | ^^^^^ method, not a field [INFO] [stdout] | [INFO] [stdout] help: use parentheses to call the method [INFO] [stdout] | [INFO] [stdout] 17 | contents: match candidates.value() { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0615]: attempted to take value of method `value` on type `&'a Candidates` [INFO] [stdout] --> src/cell.rs:18:41 [INFO] [stdout] | [INFO] [stdout] 18 | 1...9 => Contents::Value(candidates.value), [INFO] [stdout] | ^^^^^ method, not a field [INFO] [stdout] | [INFO] [stdout] help: use parentheses to call the method [INFO] [stdout] | [INFO] [stdout] 18 | 1...9 => Contents::Value(candidates.value()), [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/board.rs:16:23 [INFO] [stdout] | [INFO] [stdout] 16 | cells: [[Cell::new(Candidates::new_default()); 9]; 9], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `&Candidates`, found struct `Candidates` [INFO] [stdout] | help: consider borrowing here: `&Candidates::new_default()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/board.rs:22:38 [INFO] [stdout] | [INFO] [stdout] 22 | let candidates = Candidates::new(value); [INFO] [stdout] | ^^^^^ expected `u8`, found `i32` [INFO] [stdout] | [INFO] [stdout] help: you can convert an `i32` to a `u8` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 22 | let candidates = Candidates::new(value.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/board.rs:23:26 [INFO] [stdout] | [INFO] [stdout] 23 | let cell = Cell::new(candidates); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `&Candidates`, found struct `Candidates` [INFO] [stdout] | help: consider borrowing here: `&candidates` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/board.rs:25:44 [INFO] [stdout] | [INFO] [stdout] 25 | board.update_cell(cell, Coordinate{ x: j, y: i }); [INFO] [stdout] | ^ expected `u8`, found `usize` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/board.rs:25:23 [INFO] [stdout] | [INFO] [stdout] 25 | board.update_cell(cell, Coordinate{ x: j, y: i }); [INFO] [stdout] | ^^^^ expected struct `Coordinate`, found struct `cell::Cell` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/board.rs:25:50 [INFO] [stdout] | [INFO] [stdout] 25 | board.update_cell(cell, Coordinate{ x: j, y: i }); [INFO] [stdout] | ^ expected `u8`, found `usize` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/board.rs:25:29 [INFO] [stdout] | [INFO] [stdout] 25 | board.update_cell(cell, Coordinate{ x: j, y: i }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `cell::Cell`, found struct `Coordinate` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0616]: field `y` of struct `Coordinate` is private [INFO] [stdout] --> src/board.rs:41:28 [INFO] [stdout] | [INFO] [stdout] 41 | if self.cells[coordinate.y][coordinate.x].contents == Contents::Value { return } [INFO] [stdout] | ^ private field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0616]: field `x` of struct `Coordinate` is private [INFO] [stdout] --> src/board.rs:41:42 [INFO] [stdout] | [INFO] [stdout] 41 | if self.cells[coordinate.y][coordinate.x].contents == Contents::Value { return } [INFO] [stdout] | ^ private field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[[cell::Cell<'a>; 9]]` cannot be indexed by `u8` [INFO] [stdout] --> src/board.rs:41:6 [INFO] [stdout] | [INFO] [stdout] 41 | if self.cells[coordinate.y][coordinate.x].contents == Contents::Value { return } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[[cell::Cell<'a>; 9]]>` is not implemented for `u8` [INFO] [stdout] = note: required because of the requirements on the impl of `Index` for `[[cell::Cell<'a>; 9]]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0616]: field `y` of struct `Coordinate` is private [INFO] [stdout] --> src/board.rs:45:25 [INFO] [stdout] | [INFO] [stdout] 45 | self.cells[coordinate.y][coordinate.x] = cell; [INFO] [stdout] | ^ private field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0616]: field `x` of struct `Coordinate` is private [INFO] [stdout] --> src/board.rs:45:39 [INFO] [stdout] | [INFO] [stdout] 45 | self.cells[coordinate.y][coordinate.x] = cell; [INFO] [stdout] | ^ private field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[[cell::Cell<'a>; 9]]` cannot be indexed by `u8` [INFO] [stdout] --> src/board.rs:45:3 [INFO] [stdout] | [INFO] [stdout] 45 | self.cells[coordinate.y][coordinate.x] = cell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[[cell::Cell<'a>; 9]]>` is not implemented for `u8` [INFO] [stdout] = note: required because of the requirements on the impl of `Index` for `[[cell::Cell<'a>; 9]]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `cell::Contents` [INFO] [stdout] --> src/board.rs:47:20 [INFO] [stdout] | [INFO] [stdout] 47 | if cell.contents == Contents::Value { [INFO] [stdout] | ------------- ^^ --------------- fn(u8) -> cell::Contents {cell::Contents::Value} [INFO] [stdout] | | [INFO] [stdout] | cell::Contents [INFO] [stdout] | [INFO] [stdout] = note: an implementation of `std::cmp::PartialEq` might be missing for `cell::Contents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/board.rs:25:44 [INFO] [stdout] | [INFO] [stdout] 25 | board.update_cell(cell, Coordinate{ x: j, y: i }); [INFO] [stdout] | ^ expected `u8`, found `usize` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `values` on type `&board::Board<'a>` [INFO] [stdout] --> src/board.rs:56:23 [INFO] [stdout] | [INFO] [stdout] 56 | for row in &self.values { [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `answered_count`, `cells`, `fresh_coordinates` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `board::Board<'_>` [INFO] [stdout] --> src/board.rs:88:61 [INFO] [stdout] | [INFO] [stdout] 88 | assert_eq!(format!("{:x}", 0x01FF), format!("{:x}", board.candidates[3][6])); [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `answered_count`, `cells`, `fresh_coordinates` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `board::Board<'_>` [INFO] [stdout] --> src/board.rs:89:61 [INFO] [stdout] | [INFO] [stdout] 89 | assert_eq!(format!("{:x}", 0x0004), format!("{:x}", board.candidates[0][2])); [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `answered_count`, `cells`, `fresh_coordinates` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `&mut board::Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:30:35 [INFO] [stdout] | [INFO] [stdout] 30 | possible_candidates &= !board.candidates[y_a][x]; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `&mut board::Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:31:35 [INFO] [stdout] | [INFO] [stdout] 31 | possible_candidates &= !board.candidates[y_b][x]; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/board.rs:25:50 [INFO] [stdout] | [INFO] [stdout] 25 | board.update_cell(cell, Coordinate{ x: j, y: i }); [INFO] [stdout] | ^ expected `u8`, found `usize` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `&mut board::Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:38:15 [INFO] [stdout] | [INFO] [stdout] 38 | board.candidates[block_exclusion][x] &= !possible_candidates; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `&mut board::Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:50:35 [INFO] [stdout] | [INFO] [stdout] 50 | possible_candidates &= !board.candidates[y][x_a]; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `&mut board::Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:51:35 [INFO] [stdout] | [INFO] [stdout] 51 | possible_candidates &= !board.candidates[y][x_b]; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `&mut board::Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:58:15 [INFO] [stdout] | [INFO] [stdout] 58 | board.candidates[y][block_exclusion] &= !possible_candidates; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `board::Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | board.candidates = [ [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `board::Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 107 | ], board.candidates); [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/board.rs:25:29 [INFO] [stdout] | [INFO] [stdout] 25 | board.update_cell(cell, Coordinate{ x: j, y: i }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `cell::Cell`, found struct `Coordinate` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0616]: field `y` of struct `Coordinate` is private [INFO] [stdout] --> src/board.rs:41:28 [INFO] [stdout] | [INFO] [stdout] 41 | if self.cells[coordinate.y][coordinate.x].contents == Contents::Value { return } [INFO] [stdout] | ^ private field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `board::Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | board.candidates = [ [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0616]: field `x` of struct `Coordinate` is private [INFO] [stdout] --> src/board.rs:41:42 [INFO] [stdout] | [INFO] [stdout] 41 | if self.cells[coordinate.y][coordinate.x].contents == Contents::Value { return } [INFO] [stdout] | ^ private field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `board::Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 149 | ], board.candidates); [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[[cell::Cell<'a>; 9]]` cannot be indexed by `u8` [INFO] [stdout] --> src/board.rs:41:6 [INFO] [stdout] | [INFO] [stdout] 41 | if self.cells[coordinate.y][coordinate.x].contents == Contents::Value { return } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[[cell::Cell<'a>; 9]]>` is not implemented for `u8` [INFO] [stdout] = note: required because of the requirements on the impl of `Index` for `[[cell::Cell<'a>; 9]]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `values` on type `&mut board::Board<'_>` [INFO] [stdout] --> src/strategies/unique_candidate.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | if board.values[y][x] != 0 { continue } [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `&mut board::Board<'_>` [INFO] [stdout] --> src/strategies/unique_candidate.rs:10:24 [INFO] [stdout] | [INFO] [stdout] 10 | let bitmask = board.candidates[y][x]; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `values` on type `&mut board::Board<'_>` [INFO] [stdout] --> src/strategies/unique_candidate.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | board.values[y][x] = value; [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0616]: field `answered_count` of struct `board::Board` is private [INFO] [stdout] --> src/strategies/unique_candidate.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | board.answered_count += 1; [INFO] [stdout] | ^^^^^^^^^^^^^^ private field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0616]: field `fresh_coordinates` of struct `board::Board` is private [INFO] [stdout] --> src/strategies/unique_candidate.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | board.fresh_coordinates.push((x, y)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ private field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0616]: field `y` of struct `Coordinate` is private [INFO] [stdout] --> src/board.rs:45:25 [INFO] [stdout] | [INFO] [stdout] 45 | self.cells[coordinate.y][coordinate.x] = cell; [INFO] [stdout] | ^ private field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0616]: field `x` of struct `Coordinate` is private [INFO] [stdout] --> src/board.rs:45:39 [INFO] [stdout] | [INFO] [stdout] 45 | self.cells[coordinate.y][coordinate.x] = cell; [INFO] [stdout] | ^ private field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[[cell::Cell<'a>; 9]]` cannot be indexed by `u8` [INFO] [stdout] --> src/board.rs:45:3 [INFO] [stdout] | [INFO] [stdout] 45 | self.cells[coordinate.y][coordinate.x] = cell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[[cell::Cell<'a>; 9]]>` is not implemented for `u8` [INFO] [stdout] = note: required because of the requirements on the impl of `Index` for `[[cell::Cell<'a>; 9]]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `cell::Contents` [INFO] [stdout] --> src/board.rs:47:20 [INFO] [stdout] | [INFO] [stdout] 47 | if cell.contents == Contents::Value { [INFO] [stdout] | ------------- ^^ --------------- fn(u8) -> cell::Contents {cell::Contents::Value} [INFO] [stdout] | | [INFO] [stdout] | cell::Contents [INFO] [stdout] | [INFO] [stdout] = note: an implementation of `std::cmp::PartialEq` might be missing for `cell::Contents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `values` on type `&Board<'a>` [INFO] [stdout] --> src/board.rs:56:23 [INFO] [stdout] | [INFO] [stdout] 56 | for row in &self.values { [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `answered_count`, `cells`, `fresh_coordinates` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `&mut Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:30:35 [INFO] [stdout] | [INFO] [stdout] 30 | possible_candidates &= !board.candidates[y_a][x]; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `&mut Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:31:35 [INFO] [stdout] | [INFO] [stdout] 31 | possible_candidates &= !board.candidates[y_b][x]; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `&mut Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:38:15 [INFO] [stdout] | [INFO] [stdout] 38 | board.candidates[block_exclusion][x] &= !possible_candidates; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `&mut Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:50:35 [INFO] [stdout] | [INFO] [stdout] 50 | possible_candidates &= !board.candidates[y][x_a]; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `&mut Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:51:35 [INFO] [stdout] | [INFO] [stdout] 51 | possible_candidates &= !board.candidates[y][x_b]; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `&mut Board<'_>` [INFO] [stdout] --> src/strategies/column_row_exclusion.rs:58:15 [INFO] [stdout] | [INFO] [stdout] 58 | board.candidates[y][block_exclusion] &= !possible_candidates; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `values` on type `&mut Board<'_>` [INFO] [stdout] --> src/strategies/unique_candidate.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | if board.values[y][x] != 0 { continue } [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `&mut Board<'_>` [INFO] [stdout] --> src/strategies/unique_candidate.rs:10:24 [INFO] [stdout] | [INFO] [stdout] 10 | let bitmask = board.candidates[y][x]; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `values` on type `&mut Board<'_>` [INFO] [stdout] --> src/strategies/unique_candidate.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | board.values[y][x] = value; [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0616]: field `answered_count` of struct `Board` is private [INFO] [stdout] --> src/strategies/unique_candidate.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | board.answered_count += 1; [INFO] [stdout] | ^^^^^^^^^^^^^^ private field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0616]: field `fresh_coordinates` of struct `Board` is private [INFO] [stdout] --> src/strategies/unique_candidate.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | board.fresh_coordinates.push((x, y)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ private field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/strategies/unique_candidate.rs:16:34 [INFO] [stdout] | [INFO] [stdout] 16 | board.fresh_coordinates.push((x, y)); [INFO] [stdout] | ^^^^^^ expected struct `Coordinate`, found tuple [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Coordinate` [INFO] [stdout] found tuple `({integer}, {integer})` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `candidates` on type `board::Board<'_>` [INFO] [stdout] --> src/strategies/unique_candidate.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | board.candidates[7][0] = 0x08; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `values` on type `board::Board<'_>` [INFO] [stdout] --> src/strategies/unique_candidate.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | ], board.values); [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 46 previous errors; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0106, E0277, E0308, E0369, E0425, E0432, E0583, E0609, E0615... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0106`. [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/strategies/unique_candidate.rs:16:34 [INFO] [stdout] | [INFO] [stdout] 16 | board.fresh_coordinates.push((x, y)); [INFO] [stdout] | ^^^^^^ expected struct `Coordinate`, found tuple [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Coordinate` [INFO] [stdout] found tuple `({integer}, {integer})` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 37 previous errors; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0106, E0277, E0308, E0369, E0425, E0432, E0583, E0609, E0615... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0106`. [INFO] [stdout] [INFO] [stderr] error: could not compile `sudoku_solver` [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: build failed [INFO] running `Command { std: "docker" "inspect" "39a5a2875ddfc628ef4920f57e5f77298fc418ad816c13f21f01cf4551ad86c0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "39a5a2875ddfc628ef4920f57e5f77298fc418ad816c13f21f01cf4551ad86c0", kill_on_drop: false }` [INFO] [stdout] 39a5a2875ddfc628ef4920f57e5f77298fc418ad816c13f21f01cf4551ad86c0