[INFO] cloning repository https://github.com/jamierobson/rust-journey [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jamierobson/rust-journey" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjamierobson%2Frust-journey", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjamierobson%2Frust-journey'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 94b8daa8984d180a60e8894351d3109167e05d29 [INFO] testing jamierobson/rust-journey against master#9e136a30a965bf4e63f03095c57df7257bf96fd6 for pr-134530 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjamierobson%2Frust-journey" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/jamierobson/rust-journey on toolchain 9e136a30a965bf4e63f03095c57df7257bf96fd6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9e136a30a965bf4e63f03095c57df7257bf96fd6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/jamierobson/rust-journey [INFO] finished tweaking git repo https://github.com/jamierobson/rust-journey [INFO] tweaked toml for git repo https://github.com/jamierobson/rust-journey written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/jamierobson/rust-journey 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" "+9e136a30a965bf4e63f03095c57df7257bf96fd6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+9e136a30a965bf4e63f03095c57df7257bf96fd6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f60802157bb3de035245f8db6230a20c86307ad55d32c6899bb46dbe29f5f506 [INFO] running `Command { std: "docker" "start" "-a" "f60802157bb3de035245f8db6230a20c86307ad55d32c6899bb46dbe29f5f506", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f60802157bb3de035245f8db6230a20c86307ad55d32c6899bb46dbe29f5f506", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f60802157bb3de035245f8db6230a20c86307ad55d32c6899bb46dbe29f5f506", kill_on_drop: false }` [INFO] [stdout] f60802157bb3de035245f8db6230a20c86307ad55d32c6899bb46dbe29f5f506 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+9e136a30a965bf4e63f03095c57df7257bf96fd6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3846cf683cee132422c4f2d8067912d3dfcec9ca42804dfc55ef1830967a5249 [INFO] running `Command { std: "docker" "start" "-a" "3846cf683cee132422c4f2d8067912d3dfcec9ca42804dfc55ef1830967a5249", kill_on_drop: false }` [INFO] [stderr] Compiling memchr v2.7.1 [INFO] [stderr] Compiling regex-syntax v0.8.2 [INFO] [stderr] Compiling aho-corasick v1.1.2 [INFO] [stderr] Compiling regex-automata v0.4.5 [INFO] [stderr] Compiling regex v1.10.3 [INFO] [stderr] Compiling rust-journey v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `RangeInclusive` and `collections::btree_map::Range` [INFO] [stdout] --> src/sudoku/core/cell.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::btree_map::Range, ops::{RangeBounds, RangeInclusive}}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::pretty::aliases::*` [INFO] [stdout] --> src/sudoku/core/cell_grid.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::pretty::aliases::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `cell::RefCell` and `rc::Rc` [INFO] [stdout] --> src/sudoku/core/validatable_units.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{cell::RefCell, rc::Rc}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `cell::Cell` [INFO] [stdout] --> src/sudoku/core/validatable_units.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use super::{cell::Cell, cell_grid::CellReference}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `draw_all_cells` [INFO] [stdout] --> src/main.rs:5:51 [INFO] [stdout] | [INFO] [stdout] 5 | use sudoku::draw::terminal_print::{draw_all_rows, draw_all_cells}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RangeBounds` [INFO] [stdout] --> src/sudoku/core/cell.rs:1:48 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::btree_map::Range, ops::{RangeBounds, RangeInclusive}}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sudoku` [INFO] [stdout] --> src/sudoku/techniques/backtracking_brute_force.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn solve_by_brute_force(sudoku: &mut Puzzle) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sudoku` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `SeedRow` is never used [INFO] [stdout] --> src/sudoku/core/puzzle.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub type SeedRow = [Option; PUZZLE_DIMENTION]; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `SeedGrid` is never used [INFO] [stdout] --> src/sudoku/core/puzzle.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub type SeedGrid = [SeedRow; PUZZLE_DIMENTION]; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `count_cells_with_value` are never used [INFO] [stdout] --> src/sudoku/core/puzzle.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Puzzle { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn new(seed: &[[Option; PUZZLE_DIMENTION]; PUZZLE_DIMENTION]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn count_cells_with_value(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from_value`, `discount_value`, `discount_values`, `discount_range`, `add_candidate`, and `try_complete` are never used [INFO] [stdout] --> src/sudoku/core/cell.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Cell { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn from_value(value: Option) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn discount_value(&mut self, value: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn discount_values(&mut self, values: impl AsRef<[u8]>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn discount_range(&mut self, range: impl Iterator) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn add_candidate(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn try_complete(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_from_collection` is never used [INFO] [stdout] --> src/sudoku/core/cell.rs:88:4 [INFO] [stdout] | [INFO] [stdout] 88 | fn remove_from_collection(collection: &mut Vector, value: T) where T: PartialEq { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_to_collection` is never used [INFO] [stdout] --> src/sudoku/core/cell.rs:92:4 [INFO] [stdout] | [INFO] [stdout] 92 | fn add_to_collection(collection : &mut Vector, value: T) where T: PartialEq { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_seed` is never used [INFO] [stdout] --> src/sudoku/core/cell_grid.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl CellGrid{ [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn from_seed(initial_values: &SeedGrid) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `grid_from_raw_values` is never used [INFO] [stdout] --> src/sudoku/core/cell_grid.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn grid_from_raw_values(initial_values: &SeedGrid) -> GridOfReferences { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `row_from_raw_values` is never used [INFO] [stdout] --> src/sudoku/core/cell_grid.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn row_from_raw_values(initial_values: SeedRow) -> RowOfReferences { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PUZZLE_TOTAL_CELL_COUNT` is never used [INFO] [stdout] --> src/sudoku/core/consts.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const PUZZLE_TOTAL_CELL_COUNT: usize = PUZZLE_DIMENTION * PUZZLE_DIMENTION; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_valid` and `is_complete` are never used [INFO] [stdout] --> src/sudoku/core/validatable_units.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait PuzzleValidator { [INFO] [stdout] | --------------- methods in this trait [INFO] [stdout] 6 | fn is_valid(&self) -> bool; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 7 | fn is_complete(&self) -> bool; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NINE_X_NINE_CELL_REGEX` is never used [INFO] [stdout] --> src/sudoku/format/serializer.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const NINE_X_NINE_CELL_REGEX: StringSlice = "^[1-9.]{81}$"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Serializer` is never constructed [INFO] [stdout] --> src/sudoku/format/serializer.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Serializer { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `can_parse`, `new_puzzle`, and `serialize` are never used [INFO] [stdout] --> src/sudoku/format/serializer.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Serializer { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 17 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn can_parse(&self, input: StringSlice) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn new_puzzle(&self, input: StringSlice) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn serialize(&self, sudoku: &Puzzle) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `values_from_input` is never used [INFO] [stdout] --> src/sudoku/format/serializer.rs:54:4 [INFO] [stdout] | [INFO] [stdout] 54 | fn values_from_input(input: StringSlice) -> SeedGrid { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_single_candidate_cells` is never used [INFO] [stdout] --> src/sudoku/techniques/implicitly_solved.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn solve_single_candidate_cells(sudoku: &mut Puzzle) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `try_complete_all_cells` is never used [INFO] [stdout] --> src/sudoku/techniques/implicitly_solved.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn try_complete_all_cells(sudoku: &mut Puzzle){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `eliminate_options_from_groups` is never used [INFO] [stdout] --> src/sudoku/techniques/implicitly_solved.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn eliminate_options_from_groups(collection: &mut Vector){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_conjugate_groups` is never used [INFO] [stdout] --> src/sudoku/techniques/conjugate_groups.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn solve_conjugate_groups(sudoku: &mut Puzzle) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `try_eliminate_closed_candidate_groups` is never used [INFO] [stdout] --> src/sudoku/techniques/conjugate_groups.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn try_eliminate_closed_candidate_groups(sudoku: &mut Puzzle) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `try_eliminate_options_from_groups` is never used [INFO] [stdout] --> src/sudoku/techniques/conjugate_groups.rs:42:4 [INFO] [stdout] | [INFO] [stdout] 42 | fn try_eliminate_options_from_groups(cell_group_vector: &mut Vector) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_by_brute_force` is never used [INFO] [stdout] --> src/sudoku/techniques/backtracking_brute_force.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn solve_by_brute_force(sudoku: &mut Puzzle) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_all_cells` is never used [INFO] [stdout] --> src/sudoku/draw/terminal_print.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn draw_all_cells(cell_grid: &CellGrid){ [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_separator_line` is never used [INFO] [stdout] --> src/sudoku/draw/terminal_print.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn draw_separator_line(length: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `StringSlice` is never used [INFO] [stdout] --> src/pretty/aliases.rs:2:10 [INFO] [stdout] | [INFO] [stdout] 2 | pub type StringSlice<'a> = &'a str; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `collection_equals` and `is_superset_of` are never used [INFO] [stdout] --> src/pretty/iterable.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait SubsetComparable { [INFO] [stdout] | ---------------- methods in this trait [INFO] [stdout] 4 | fn collection_equals(&self, other: &[T]) -> bool where T: PartialEq; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 5 | fn is_subset_of(&self, other: &[T]) -> bool where T: PartialEq; [INFO] [stdout] 6 | fn is_superset_of(&self, other: &[T]) -> bool where T: PartialEq; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.62s [INFO] running `Command { std: "docker" "inspect" "3846cf683cee132422c4f2d8067912d3dfcec9ca42804dfc55ef1830967a5249", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3846cf683cee132422c4f2d8067912d3dfcec9ca42804dfc55ef1830967a5249", kill_on_drop: false }` [INFO] [stdout] 3846cf683cee132422c4f2d8067912d3dfcec9ca42804dfc55ef1830967a5249 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+9e136a30a965bf4e63f03095c57df7257bf96fd6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 08ddd49a998ead824c349841db4552ef6e781065e0582c8fcd72450680677bee [INFO] running `Command { std: "docker" "start" "-a" "08ddd49a998ead824c349841db4552ef6e781065e0582c8fcd72450680677bee", kill_on_drop: false }` [INFO] [stderr] Compiling rust-journey v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `RangeInclusive` and `collections::btree_map::Range` [INFO] [stdout] --> src/sudoku/core/cell.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::btree_map::Range, ops::{RangeBounds, RangeInclusive}}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rc::Rc` [INFO] [stdout] --> src/sudoku/core/validatable_units.rs:2:26 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{cell::RefCell, rc::Rc}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `clone` [INFO] [stdout] --> src/sudoku/format/serializer.rs:76:15 [INFO] [stdout] | [INFO] [stdout] 76 | use std::{clone}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `format::serializer` [INFO] [stdout] --> src/sudoku/format/serializer.rs:78:94 [INFO] [stdout] | [INFO] [stdout] 78 | use crate::sudoku::{core::consts::{self, PUZZLE_MAXIMUM_VALUE, PUZZLE_TOTAL_CELL_COUNT}, format::serializer}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `techniques::implicitly_solved::solve_single_candidate_cells` [INFO] [stdout] --> src/sudoku/techniques/conjugate_groups.rs:104:189 [INFO] [stdout] | [INFO] [stdout] 104 | ...ows, format::serializer::Serializer, techniques::implicitly_solved::solve_single_candidate_cells}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `draw_all_cells` [INFO] [stdout] --> src/main.rs:5:51 [INFO] [stdout] | [INFO] [stdout] 5 | use sudoku::draw::terminal_print::{draw_all_rows, draw_all_cells}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RangeBounds` [INFO] [stdout] --> src/sudoku/core/cell.rs:1:48 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::btree_map::Range, ops::{RangeBounds, RangeInclusive}}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sudoku` [INFO] [stdout] --> src/sudoku/techniques/backtracking_brute_force.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn solve_by_brute_force(sudoku: &mut Puzzle) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sudoku` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `add_candidate` is never used [INFO] [stdout] --> src/sudoku/core/cell.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Cell { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn add_candidate(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_valid` is never used [INFO] [stdout] --> src/sudoku/core/validatable_units.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait PuzzleValidator { [INFO] [stdout] | --------------- method in this trait [INFO] [stdout] 6 | fn is_valid(&self) -> bool; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_by_brute_force` is never used [INFO] [stdout] --> src/sudoku/techniques/backtracking_brute_force.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn solve_by_brute_force(sudoku: &mut Puzzle) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_all_cells` is never used [INFO] [stdout] --> src/sudoku/draw/terminal_print.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn draw_all_cells(cell_grid: &CellGrid){ [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_separator_line` is never used [INFO] [stdout] --> src/sudoku/draw/terminal_print.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn draw_separator_line(length: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.51s [INFO] running `Command { std: "docker" "inspect" "08ddd49a998ead824c349841db4552ef6e781065e0582c8fcd72450680677bee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "08ddd49a998ead824c349841db4552ef6e781065e0582c8fcd72450680677bee", kill_on_drop: false }` [INFO] [stdout] 08ddd49a998ead824c349841db4552ef6e781065e0582c8fcd72450680677bee [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+9e136a30a965bf4e63f03095c57df7257bf96fd6" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 5f2172046e331412fa1215d4b58c224c9fc1444128fb1c9a32f1d2db25d0907a [INFO] running `Command { std: "docker" "start" "-a" "5f2172046e331412fa1215d4b58c224c9fc1444128fb1c9a32f1d2db25d0907a", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `RangeInclusive` and `collections::btree_map::Range` [INFO] [stderr] --> src/sudoku/core/cell.rs:1:11 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{collections::btree_map::Range, ops::{RangeBounds, RangeInclusive}}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `rc::Rc` [INFO] [stderr] --> src/sudoku/core/validatable_units.rs:2:26 [INFO] [stderr] | [INFO] [stderr] 2 | use std::{cell::RefCell, rc::Rc}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `clone` [INFO] [stderr] --> src/sudoku/format/serializer.rs:76:15 [INFO] [stderr] | [INFO] [stderr] 76 | use std::{clone}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `format::serializer` [INFO] [stderr] --> src/sudoku/format/serializer.rs:78:94 [INFO] [stderr] | [INFO] [stderr] 78 | use crate::sudoku::{core::consts::{self, PUZZLE_MAXIMUM_VALUE, PUZZLE_TOTAL_CELL_COUNT}, format::serializer}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `techniques::implicitly_solved::solve_single_candidate_cells` [INFO] [stderr] --> src/sudoku/techniques/conjugate_groups.rs:104:189 [INFO] [stderr] | [INFO] [stderr] 104 | ...ows, format::serializer::Serializer, techniques::implicitly_solved::solve_single_candidate_cells}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `draw_all_cells` [INFO] [stderr] --> src/main.rs:5:51 [INFO] [stderr] | [INFO] [stderr] 5 | use sudoku::draw::terminal_print::{draw_all_rows, draw_all_cells}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `RangeBounds` [INFO] [stderr] --> src/sudoku/core/cell.rs:1:48 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{collections::btree_map::Range, ops::{RangeBounds, RangeInclusive}}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sudoku` [INFO] [stderr] --> src/sudoku/techniques/backtracking_brute_force.rs:3:29 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn solve_by_brute_force(sudoku: &mut Puzzle) { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sudoku` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: method `add_candidate` is never used [INFO] [stderr] --> src/sudoku/core/cell.rs:67:12 [INFO] [stderr] | [INFO] [stderr] 13 | impl Cell { [INFO] [stderr] | --------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 67 | pub fn add_candidate(&mut self, value: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: method `is_valid` is never used [INFO] [stderr] --> src/sudoku/core/validatable_units.rs:6:8 [INFO] [stderr] | [INFO] [stderr] 5 | pub trait PuzzleValidator { [INFO] [stderr] | --------------- method in this trait [INFO] [stderr] 6 | fn is_valid(&self) -> bool; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `solve_by_brute_force` is never used [INFO] [stderr] --> src/sudoku/techniques/backtracking_brute_force.rs:3:8 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn solve_by_brute_force(sudoku: &mut Puzzle) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `draw_all_cells` is never used [INFO] [stderr] --> src/sudoku/draw/terminal_print.rs:19:8 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn draw_all_cells(cell_grid: &CellGrid){ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `draw_separator_line` is never used [INFO] [stderr] --> src/sudoku/draw/terminal_print.rs:67:4 [INFO] [stderr] | [INFO] [stderr] 67 | fn draw_separator_line(length: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `rust-journey` (bin "rust-journey" test) generated 13 warnings (run `cargo fix --bin "rust-journey" --tests` to apply 6 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.02s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rust_journey-738bf3364a3d6e25) [INFO] [stdout] [INFO] [stdout] running 38 tests [INFO] [stdout] test pretty::iterable::tests::collection_equals_be_true_when_contains_same_elements ... ok [INFO] [stdout] test pretty::iterable::tests::is_subset_of_be_true_when_other_contains_all_of_this ... ok [INFO] [stdout] test pretty::iterable::tests::is_superset_of_be_true_when_this_contains_all_of_other ... ok [INFO] [stdout] test pretty::iterable::tests::collection_equals_be_false_when_any_element_different ... ok [INFO] [stdout] test pretty::iterable::tests::is_superset_of_be_true_when_other_contains_exactly_same_elements_as_this ... ok [INFO] [stdout] test pretty::iterable::tests::is_superset_of_be_true_when_this_contains_exactly_same_elements_as_other ... ok [INFO] [stdout] test sudoku::core::cell::tests::cell_value_none_by_default ... ok [INFO] [stdout] test sudoku::core::cell::tests::cell_set_provided_value_when_in_range ... ok [INFO] [stdout] test sudoku::core::cell::tests::from_value_give_cell_with_none_when_none_given ... ok [INFO] [stdout] test sudoku::core::cell::tests::try_complete_value_does_not_set_value_when_more_than_one_missing_value ... ok [INFO] [stdout] test sudoku::core::cell::tests::cell_not_set_value_when_out_of_range ... ok [INFO] [stdout] test sudoku::core::validatable_units::tests::is_valid_false_when_duplicates ... ok [INFO] [stdout] test sudoku::core::cell::tests::from_value_give_cell_with_none_when_out_of_range ... ok [INFO] [stdout] test sudoku::core::cell::tests::from_value_give_cell_with_set_value ... ok [INFO] [stdout] test sudoku::core::cell_grid::tests::cell_grid_initialized_with_all_empty_cells ... ok [INFO] [stdout] test sudoku::core::cell::tests::try_complete_value_sets_correct_value ... ok [INFO] [stdout] test sudoku::core::validatable_units::tests::is_complete_false_when_different_values_but_some_none ... ok [INFO] [stdout] test sudoku::core::validatable_units::tests::is_complete_true_when_different_values_but_and_all_have_values ... ok [INFO] [stdout] test sudoku::format::serializer::tests::can_parse_return_false_when_not_exactly_81_elements ... ok [INFO] [stdout] test sudoku::format::serializer::tests::can_parse_return_false_when_any_invalid_character ... ok [INFO] [stdout] test sudoku::core::validatable_units::tests::is_valid_true_when_different_values ... ok [INFO] [stdout] test sudoku::core::validatable_units::tests::is_valid_true_when_empty_cells ... ok [INFO] [stdout] test sudoku::format::serializer::tests::can_parse_return_true_when_81_periods ... ok [INFO] [stdout] test sudoku::format::serializer::tests::can_parse_return_true_when_any_mix_of_digits_and_periods ... ok [INFO] [stdout] test sudoku::format::serializer::tests::can_parse_return_true_when_81_digits ... ok [INFO] [stdout] test sudoku::format::serializer::tests::to_grid_returns_filled_in_grid ... ok [INFO] [stdout] test sudoku::format::serializer::tests::to_grid_returns_err_when_invalid_input ... ok [INFO] [stdout] test sudoku::techniques::conjugate_groups::tests::eliminate_candidates_when_groups_of_cells_identified ... ok [INFO] [stdout] test sudoku::format::serializer::tests::to_grid_returns_empty_grid_when_all_periods ... ok [INFO] [stdout] test sudoku::techniques::conjugate_groups::tests::try_solve_a_puzzle_that_could_not_be_immediately_implicitely_solved ... ok [INFO] [stdout] test sudoku::format::serializer::tests::to_grid_returns_value_from_string ... ok [INFO] [stdout] test sudoku::techniques::implicitly_solved::tests::fills_in_many_blanks_in_medium_puzzle_with_47_spaces ... ok [INFO] [stdout] test sudoku::format::serializer::tests::deserialze_then_serialize_returns_same_string ... ok [INFO] [stdout] test sudoku::techniques::implicitly_solved::tests::solves_single_missing_cell ... ok [INFO] [stdout] test sudoku::techniques::conjugate_groups::tests::try_solve_a_puzzle_with_only_single_iteration_of_closed_group_strategy ... ok [INFO] [stdout] test sudoku::techniques::conjugate_groups::tests::try_solve_puzzle_with_multiple_iterations_of_closed_group_strategy ... ok [INFO] [stdout] test sudoku::techniques::implicitly_solved::tests::solves_extremely_easy_with_40_spaces ... ok [INFO] [stdout] test sudoku::techniques::implicitly_solved::tests::solves_very_easy_with_51_spaces ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "5f2172046e331412fa1215d4b58c224c9fc1444128fb1c9a32f1d2db25d0907a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5f2172046e331412fa1215d4b58c224c9fc1444128fb1c9a32f1d2db25d0907a", kill_on_drop: false }` [INFO] [stdout] 5f2172046e331412fa1215d4b58c224c9fc1444128fb1c9a32f1d2db25d0907a