[INFO] cloning repository https://github.com/ojowwalker77/chess_engine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ojowwalker77/chess_engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fojowwalker77%2Fchess_engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fojowwalker77%2Fchess_engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cb851af0cb58e1a9051c6ec316271ccd3ac260e1
[INFO] checking ojowwalker77/chess_engine against master#507271bc119683008ec719ecee48814e8ac86c65 for pr-146440
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fojowwalker77%2Fchess_engine" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-3-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/ojowwalker77/chess_engine
[INFO] finished tweaking git repo https://github.com/ojowwalker77/chess_engine
[INFO] tweaked toml for git repo https://github.com/ojowwalker77/chess_engine written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ojowwalker77/chess_engine on toolchain 507271bc119683008ec719ecee48814e8ac86c65
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ojowwalker77/chess_engine 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" "+507271bc119683008ec719ecee48814e8ac86c65" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cac4fac975bade90fef6c725496396857e39764fd826e9f708368b5723cceac6
[INFO] running `Command { std: "docker" "start" "-a" "cac4fac975bade90fef6c725496396857e39764fd826e9f708368b5723cceac6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cac4fac975bade90fef6c725496396857e39764fd826e9f708368b5723cceac6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cac4fac975bade90fef6c725496396857e39764fd826e9f708368b5723cceac6", kill_on_drop: false }`
[INFO] [stdout] cac4fac975bade90fef6c725496396857e39764fd826e9f708368b5723cceac6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 549a2f2b3657554c3ff0dac5dd41cf40f3fcb28950ca5c24156d17fa30ef82a3
[INFO] running `Command { std: "docker" "start" "-a" "549a2f2b3657554c3ff0dac5dd41cf40f3fcb28950ca5c24156d17fa30ef82a3", kill_on_drop: false }`
[INFO] [stderr]     Checking chess_engine v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `enemy_color`
[INFO] [stdout]    --> src/movegeneration.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let enemy_color = color.opposite();
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_color`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/movegeneration.rs:241:9
[INFO] [stdout]     |
[INFO] [stdout] 241 |     let position = &game.position;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `own_occupancy`
[INFO] [stdout]    --> src/movegeneration.rs:256:10
[INFO] [stdout]     |
[INFO] [stdout] 256 |     let (own_occupancy, enemy_occupancy) = match piece.color {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_own_occupancy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_occupancy`
[INFO] [stdout]    --> src/movegeneration.rs:256:25
[INFO] [stdout]     |
[INFO] [stdout] 256 |     let (own_occupancy, enemy_occupancy) = match piece.color {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_occupancy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `moves_looked_at` is assigned to, but never used
[INFO] [stdout]    --> src/movegeneration.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 290 |     let mut moves_looked_at = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_moves_looked_at` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `moves_looked_at` is never read
[INFO] [stdout]    --> src/movegeneration.rs:298:13
[INFO] [stdout]     |
[INFO] [stdout] 298 |             moves_looked_at += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `own_occupancy`
[INFO] [stdout]    --> src/movegeneration.rs:326:10
[INFO] [stdout]     |
[INFO] [stdout] 326 |     let (own_occupancy, enemy_occupancy) = match piece.color {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_own_occupancy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rest`
[INFO] [stdout]    --> src/position.rs:301:31
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let (fullmove_number, rest) = split_on(rest, ' ');
[INFO] [stdout]     |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_rest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_col`
[INFO] [stdout]    --> src/position.rs:388:23
[INFO] [stdout]     |
[INFO] [stdout] 388 |         let (old_row, old_col) = rowcol(square_index);
[INFO] [stdout]     |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/position.rs:519:25
[INFO] [stdout]     |
[INFO] [stdout] 519 |                     for i in 0..number {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `not_alot`
[INFO] [stdout]   --> src/main.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let not_alot = "8/8/8/4N3/8/8/8/8 w - - 0 1";
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_not_alot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `position`, `knight_attacks`, and `ray_attacks` are never read
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Game {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 14 |     position: Position,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 15 |     knight_attacks: KnightAttacks,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     ray_attacks: Rays,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `read_FEN`, `empty`, and `add` are never used
[INFO] [stdout]   --> src/main.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Game {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 20 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn read_FEN(fen: &str) -> Self {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn empty() -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn add(mut self, piece_color: Color, piece_type: PieceType, square: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/knightattacks.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct KnightAttacks(pub Vec<Bitboard>);
[INFO] [stdout]   |            ------------- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/knightattacks.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl KnightAttacks {
[INFO] [stdout]   | ------------------ associated function in this implementation
[INFO] [stdout] 8 |     pub fn new() -> Self {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `knight_attacks` is never used
[INFO] [stdout]   --> src/knightattacks.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn knight_attacks(row: i32, col: i32) -> Bitboard {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_moves` is never used
[INFO] [stdout]  --> src/movegeneration.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn generate_moves(game: &Game) -> Vec<Position> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `king_is_in_check` is never used
[INFO] [stdout]   --> src/movegeneration.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn king_is_in_check(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_knight_moves` is never used
[INFO] [stdout]    --> src/movegeneration.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn generate_knight_moves(piece: &Piece, game: &Game) -> Vec<Position> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_bishop_moves` is never used
[INFO] [stdout]    --> src/movegeneration.rs:239:4
[INFO] [stdout]     |
[INFO] [stdout] 239 | fn generate_bishop_moves(piece: &Piece, game: &Game) -> Vec<Position> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_rook_moves` is never used
[INFO] [stdout]    --> src/movegeneration.rs:252:4
[INFO] [stdout]     |
[INFO] [stdout] 252 | fn generate_rook_moves(piece: &Piece, game: &Game) -> Vec<Position> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_queen_moves` is never used
[INFO] [stdout]    --> src/movegeneration.rs:270:4
[INFO] [stdout]     |
[INFO] [stdout] 270 | fn generate_queen_moves(piece: &Piece, game: &Game) -> Vec<Position> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_king_moves` is never used
[INFO] [stdout]    --> src/movegeneration.rs:279:4
[INFO] [stdout]     |
[INFO] [stdout] 279 | fn generate_king_moves(piece: &Piece, game: &Game) -> Vec<Position> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pawn_moves` is never used
[INFO] [stdout]    --> src/movegeneration.rs:321:4
[INFO] [stdout]     |
[INFO] [stdout] 321 | fn generate_pawn_moves(piece: &Piece, game: &Game) -> Vec<Position> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PawnAttacks` is never constructed
[INFO] [stdout]  --> src/pawnattacks.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct PawnAttacks {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `initialize` is never used
[INFO] [stdout]   --> src/pawnattacks.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl PawnAttacks {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 12 |     fn initialize() -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `forward_move` is never used
[INFO] [stdout]   --> src/pawnattacks.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn forward_move(row: i32, col: i32, color: Color) -> Bitboard {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `diagonal_move` is never used
[INFO] [stdout]   --> src/pawnattacks.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn diagonal_move(row: i32, col: i32, color: Color) -> Bitboard {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_to_position` is never used
[INFO] [stdout]  --> src/position.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn bit_to_position(bit: PiecePosition) -> Result<String, String> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `position_to_index` is never used
[INFO] [stdout]   --> src/position.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn position_to_index(position: &str) -> Result<usize, String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `COL_MAP` is never used
[INFO] [stdout]   --> src/position.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | static COL_MAP: [char; 8] = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'];
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `index_to_position` is never used
[INFO] [stdout]   --> src/position.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn index_to_position(index: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `opposite` is never used
[INFO] [stdout]   --> src/position.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 85 | impl Color {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 86 |     pub fn opposite(&self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/position.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl Position {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 168 |     fn push_piece_and_square(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn push_empty_square(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn new() -> Position {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn count_pieces(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn move_piece(self: &mut Self, piece_position: PiecePosition, new_position: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     fn has_pawn(&self, row: i32, col: i32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     pub fn take_en_passant(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 405 |     pub fn perform_promotion(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     pub fn add(self: &mut Self, piece_color: Color, piece_type: PieceType, square: &str) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `square_to_index` is never used
[INFO] [stdout]    --> src/position.rs:471:8
[INFO] [stdout]     |
[INFO] [stdout] 471 | pub fn square_to_index(square: &str) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/rayattacks.rs:6:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Rays {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout]  6 |     pub n_rays: Vec<Bitboard>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]  7 |     pub e_rays: Vec<Bitboard>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]  8 |     pub nw_rays: Vec<Bitboard>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]  9 |     pub ne_rays: Vec<Bitboard>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 10 |     pub w_rays: Vec<Bitboard>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 11 |     pub s_rays: Vec<Bitboard>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 12 |     pub sw_rays: Vec<Bitboard>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 13 |     pub se_rays: Vec<Bitboard>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/rayattacks.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Rays {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `n_ray` is never used
[INFO] [stdout]   --> src/rayattacks.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 | define_ray!(n_ray, |row, col, offset| (row + offset, col));
[INFO] [stdout]    |             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `define_ray` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `e_ray` is never used
[INFO] [stdout]   --> src/rayattacks.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 | define_ray!(e_ray, |row, col, offset| (row, col + offset));
[INFO] [stdout]    |             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `define_ray` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nw_ray` is never used
[INFO] [stdout]   --> src/rayattacks.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 68 | define_ray!(nw_ray, |row, col, offset| (row + offset, col - offset));
[INFO] [stdout]    |             ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `define_ray` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ne_ray` is never used
[INFO] [stdout]   --> src/rayattacks.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 | define_ray!(ne_ray, |row, col, offset| (row + offset, col + offset));
[INFO] [stdout]    |             ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `define_ray` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `w_ray` is never used
[INFO] [stdout]   --> src/rayattacks.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 | define_ray!(w_ray, |row, col, offset| (row, col - offset));
[INFO] [stdout]    |             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `define_ray` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `s_ray` is never used
[INFO] [stdout]   --> src/rayattacks.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 | define_ray!(s_ray, |row, col, offset| (row - offset, col));
[INFO] [stdout]    |             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `define_ray` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sw_ray` is never used
[INFO] [stdout]   --> src/rayattacks.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 | define_ray!(sw_ray, |row, col, offset| (row - offset, col - offset));
[INFO] [stdout]    |             ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `define_ray` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `se_ray` is never used
[INFO] [stdout]   --> src/rayattacks.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 | define_ray!(se_ray, |row, col, offset| (row - offset, col + offset));
[INFO] [stdout]    |             ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `define_ray` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bit` is never used
[INFO] [stdout]   --> src/rayattacks.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn set_bit(bitboard: Bitboard, row_col: (i64, i64)) -> Bitboard {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_hit` is never used
[INFO] [stdout]   --> src/rayattacks.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn first_hit(ray: Bitboard, forward_ray: bool, occupancy: Bitboard) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blocked_ray_attack` is never used
[INFO] [stdout]   --> src/rayattacks.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn blocked_ray_attack(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `MOD67TABLE` is never used
[INFO] [stdout]  --> src/utils.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | static MOD67TABLE: [usize; 67] = [
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_scan` is never used
[INFO] [stdout]  --> src/utils.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn bit_scan(bit: u64) -> usize {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_scan_backwards` is never used
[INFO] [stdout]   --> src/utils.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn bit_scan_backwards(bit: u64) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_bits` is never used
[INFO] [stdout]   --> src/utils.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn extract_bits(mut bits: u64) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `index` is never used
[INFO] [stdout]   --> src/utils.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn index(row: i32, col: i32) -> Option<usize> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rowcol` is never used
[INFO] [stdout]   --> src/utils.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn rowcol(index: usize) -> (i32, i32) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bitboard_to_string` is never used
[INFO] [stdout]   --> src/utils.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn bitboard_to_string(bitboard: Bitboard, mark: Option<usize>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_bitboard` is never used
[INFO] [stdout]   --> src/utils.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn print_bitboard(bitboard: Bitboard, marker: Option<usize>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bit` is never used
[INFO] [stdout]   --> src/utils.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn set_bit(row: i32, col: i32) -> Bitboard {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `knight_attacks`
[INFO] [stdout]   --> src/knightattacks.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let knight_attacks = KnightAttacks::new();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_knight_attacks`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_color`
[INFO] [stdout]    --> src/movegeneration.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let enemy_color = color.opposite();
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/movegeneration.rs:241:9
[INFO] [stdout]     |
[INFO] [stdout] 241 |     let position = &game.position;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `own_occupancy`
[INFO] [stdout]    --> src/movegeneration.rs:256:10
[INFO] [stdout]     |
[INFO] [stdout] 256 |     let (own_occupancy, enemy_occupancy) = match piece.color {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_own_occupancy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_occupancy`
[INFO] [stdout]    --> src/movegeneration.rs:256:25
[INFO] [stdout]     |
[INFO] [stdout] 256 |     let (own_occupancy, enemy_occupancy) = match piece.color {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_occupancy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `moves_looked_at` is assigned to, but never used
[INFO] [stdout]    --> src/movegeneration.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 290 |     let mut moves_looked_at = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_moves_looked_at` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `moves_looked_at` is never read
[INFO] [stdout]    --> src/movegeneration.rs:298:13
[INFO] [stdout]     |
[INFO] [stdout] 298 |             moves_looked_at += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `own_occupancy`
[INFO] [stdout]    --> src/movegeneration.rs:326:10
[INFO] [stdout]     |
[INFO] [stdout] 326 |     let (own_occupancy, enemy_occupancy) = match piece.color {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_own_occupancy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pawnattacks`
[INFO] [stdout]    --> src/pawnattacks.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let pawnattacks = PawnAttacks::initialize();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pawnattacks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rest`
[INFO] [stdout]    --> src/position.rs:301:31
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let (fullmove_number, rest) = split_on(rest, ' ');
[INFO] [stdout]     |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_rest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_col`
[INFO] [stdout]    --> src/position.rs:388:23
[INFO] [stdout]     |
[INFO] [stdout] 388 |         let (old_row, old_col) = rowcol(square_index);
[INFO] [stdout]     |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/position.rs:519:25
[INFO] [stdout]     |
[INFO] [stdout] 519 |                     for i in 0..number {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/position.rs:565:13
[INFO] [stdout]     |
[INFO] [stdout] 565 |         for i in 16..48 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/position.rs:706:13
[INFO] [stdout]     |
[INFO] [stdout] 706 |         let position = Position::empty();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `not_alot`
[INFO] [stdout]   --> src/main.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let not_alot = "8/8/8/4N3/8/8/8/8 w - - 0 1";
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_not_alot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/main.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Game {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 20 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `white_forward_moves`, `white_diagonal_moves`, `black_forward_moves`, and `black_diagonal_moves` are never read
[INFO] [stdout]  --> src/pawnattacks.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct PawnAttacks {
[INFO] [stdout]   |            ----------- fields in this struct
[INFO] [stdout] 5 |     white_forward_moves: Vec<Bitboard>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 6 |     white_diagonal_moves: Vec<Bitboard>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     black_forward_moves: Vec<Bitboard>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     black_diagonal_moves: Vec<Bitboard>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_to_position` is never used
[INFO] [stdout]  --> src/position.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn bit_to_position(bit: PiecePosition) -> Result<String, String> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `COL_MAP` is never used
[INFO] [stdout]   --> src/position.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | static COL_MAP: [char; 8] = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'];
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `index_to_position` is never used
[INFO] [stdout]   --> src/position.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn index_to_position(index: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bitboard_to_string` is never used
[INFO] [stdout]   --> src/utils.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn bitboard_to_string(bitboard: Bitboard, mark: Option<usize>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_bitboard` is never used
[INFO] [stdout]   --> src/utils.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn print_bitboard(bitboard: Bitboard, marker: Option<usize>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.52s
[INFO] running `Command { std: "docker" "inspect" "549a2f2b3657554c3ff0dac5dd41cf40f3fcb28950ca5c24156d17fa30ef82a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "549a2f2b3657554c3ff0dac5dd41cf40f3fcb28950ca5c24156d17fa30ef82a3", kill_on_drop: false }`
[INFO] [stdout] 549a2f2b3657554c3ff0dac5dd41cf40f3fcb28950ca5c24156d17fa30ef82a3
