[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] checking jamierobson/rust-journey against master#d49be02cf6d2e2a01264fcdef1e20c826710c0f5 for pr-133570-1 [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 d49be02cf6d2e2a01264fcdef1e20c826710c0f5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d49be02cf6d2e2a01264fcdef1e20c826710c0f5" "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" "+d49be02cf6d2e2a01264fcdef1e20c826710c0f5" "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" "+d49be02cf6d2e2a01264fcdef1e20c826710c0f5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e7b548c5635d3fa0b819c0e55c730460ab508044f3be5f9f3d4cda8eb5fab190 [INFO] running `Command { std: "docker" "start" "-a" "e7b548c5635d3fa0b819c0e55c730460ab508044f3be5f9f3d4cda8eb5fab190", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e7b548c5635d3fa0b819c0e55c730460ab508044f3be5f9f3d4cda8eb5fab190", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e7b548c5635d3fa0b819c0e55c730460ab508044f3be5f9f3d4cda8eb5fab190", kill_on_drop: false }` [INFO] [stdout] e7b548c5635d3fa0b819c0e55c730460ab508044f3be5f9f3d4cda8eb5fab190 [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" "+d49be02cf6d2e2a01264fcdef1e20c826710c0f5" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3b3acb5ba713b84da17049e683652efe12b66969ee88de91ff7e2c17465f69c0 [INFO] running `Command { std: "docker" "start" "-a" "3b3acb5ba713b84da17049e683652efe12b66969ee88de91ff7e2c17465f69c0", kill_on_drop: false }` [INFO] [stderr] Checking memchr v2.7.1 [INFO] [stderr] Checking regex-syntax v0.8.2 [INFO] [stderr] Checking aho-corasick v1.1.2 [INFO] [stderr] Checking regex-automata v0.4.5 [INFO] [stderr] Checking regex v1.10.3 [INFO] [stderr] Checking 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 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 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] [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 `dev` profile [unoptimized + debuginfo] target(s) in 4.16s [INFO] running `Command { std: "docker" "inspect" "3b3acb5ba713b84da17049e683652efe12b66969ee88de91ff7e2c17465f69c0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3b3acb5ba713b84da17049e683652efe12b66969ee88de91ff7e2c17465f69c0", kill_on_drop: false }` [INFO] [stdout] 3b3acb5ba713b84da17049e683652efe12b66969ee88de91ff7e2c17465f69c0