[INFO] cloning repository https://github.com/pranav-bot/rust-chess-computer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pranav-bot/rust-chess-computer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpranav-bot%2Frust-chess-computer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpranav-bot%2Frust-chess-computer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 75bd84fd78f09cfcbd150fca8ef999416fbfa595
[INFO] checking pranav-bot/rust-chess-computer against try#93086cfebfccb79083c59d0d3b2052944bba643c for pr-146440-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpranav-bot%2Frust-chess-computer" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pranav-bot/rust-chess-computer
[INFO] finished tweaking git repo https://github.com/pranav-bot/rust-chess-computer
[INFO] tweaked toml for git repo https://github.com/pranav-bot/rust-chess-computer written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pranav-bot/rust-chess-computer on toolchain 93086cfebfccb79083c59d0d3b2052944bba643c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+93086cfebfccb79083c59d0d3b2052944bba643c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pranav-bot/rust-chess-computer 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" "+93086cfebfccb79083c59d0d3b2052944bba643c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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" "+93086cfebfccb79083c59d0d3b2052944bba643c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 22f28a53be066e1c63b7d4461e1fbad19d8dd11b20220a71dae3f44d2cb7e9e1
[INFO] running `Command { std: "docker" "start" "-a" "22f28a53be066e1c63b7d4461e1fbad19d8dd11b20220a71dae3f44d2cb7e9e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "22f28a53be066e1c63b7d4461e1fbad19d8dd11b20220a71dae3f44d2cb7e9e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "22f28a53be066e1c63b7d4461e1fbad19d8dd11b20220a71dae3f44d2cb7e9e1", kill_on_drop: false }`
[INFO] [stdout] 22f28a53be066e1c63b7d4461e1fbad19d8dd11b20220a71dae3f44d2cb7e9e1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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" "+93086cfebfccb79083c59d0d3b2052944bba643c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f8c7a54bc68f1ed4abe24eb355fa6b387847f01adf8526ea3ce363bdc6535147
[INFO] running `Command { std: "docker" "start" "-a" "f8c7a54bc68f1ed4abe24eb355fa6b387847f01adf8526ea3ce363bdc6535147", kill_on_drop: false }`
[INFO] [stderr]     Checking rust-chess-computer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `print_bitboard_to_string`
[INFO] [stdout]  --> src/rayattacks.rs:1:62
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::utils::{_bit_scan, _bit_scan_backwards, BitBoard, print_bitboard_to_string, set_bit_ray};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `print_bitboard`
[INFO] [stdout]  --> src/knightattacks.rs:1:39
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::utils::{BitBoard, set_bit, print_bitboard};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `knight_attacks`
[INFO] [stdout]   --> src/knightattacks.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         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: `pawn_attacks`
[INFO] [stdout]    --> src/pawnattacks.rs:238:17
[INFO] [stdout]     |
[INFO] [stdout] 238 |             let pawn_attacks = PawnAttacks::initialize();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pawn_attacks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fen_string`
[INFO] [stdout]   --> src/main.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let fen_string = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fen_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `not_alot`
[INFO] [stdout]   --> src/main.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let not_alot = "5k2/8/8/4N3/8/8/8/5K2 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:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Game {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 21 |     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: function `bit_to_position` is never used
[INFO] [stdout]  --> src/position.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | 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:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | 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:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn index_to_position(index: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[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:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct PawnAttacks {
[INFO] [stdout]   |            ----------- fields in this struct
[INFO] [stdout] 6 |     white_forward_moves: Vec<BitBoard>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     white_diagonal_moves: Vec<BitBoard>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     black_forward_moves: Vec<BitBoard>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 9 |     black_diagonal_moves: Vec<BitBoard>
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_moves` is never used
[INFO] [stdout]  --> src/movegeneration.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn generate_moves(game: &Game) -> Vec<Position> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused comparison that must be used
[INFO] [stdout]    --> src/position.rs:135:30
[INFO] [stdout]     |
[INFO] [stdout] 135 |             Color::Black => {self.black_occupancy != bitboard;},
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the comparison produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 135 |             Color::Black => {let _ = self.black_occupancy != bitboard;},
[INFO] [stdout]     |                              +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused comparison that must be used
[INFO] [stdout]    --> src/position.rs:136:30
[INFO] [stdout]     |
[INFO] [stdout] 136 |             Color::White => {self.white_occupancy != bitboard;}
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the comparison produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 136 |             Color::White => {let _ = self.white_occupancy != bitboard;}
[INFO] [stdout]     |                              +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fen_string`
[INFO] [stdout]   --> src/main.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let fen_string = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fen_string`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `not_alot`
[INFO] [stdout]   --> src/main.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let not_alot = "5k2/8/8/4N3/8/8/8/5K2 w - - 0 1";
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_not_alot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Game` is never constructed
[INFO] [stdout]   --> src/main.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Game {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]    = note: `#[deny(unused_unconstructable_pub_structs)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `position` and `knight_attacks` are never read
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Game {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 16 |     position: Position,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 17 |     knight_attacks: KnightAttacks
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Game` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `read_fen` are never used
[INFO] [stdout]   --> src/main.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Game {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 21 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn read_fen(fen: &str) -> Self {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_to_position` is never used
[INFO] [stdout]  --> src/position.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | 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:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | 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:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn index_to_position(index: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `push_piece_and_square`, `push_empty_square`, `new`, and `move_piece` are never used
[INFO] [stdout]    --> src/position.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl Position {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 129 |
[INFO] [stdout] 130 |     fn push_piece_and_square(&mut self, position: usize, color: Color, piece_type: PieceType, index: &mut usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn push_empty_square(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn new() -> Position {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn move_piece(self: &mut Self, piece_position: BitBoard, new_position: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_bits` is never used
[INFO] [stdout]   --> src/utils.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn extract_bits(mut bits: u64) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_bitboard_to_string` is never used
[INFO] [stdout]   --> src/utils.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn print_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:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn print_bitboard(bitboard: BitBoard, marker: Option<usize>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bit_ray` is never used
[INFO] [stdout]   --> src/utils.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn set_bit_ray(bitboard: BitBoard, row_col: (i64, i64)) -> BitBoard {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bit` is never used
[INFO] [stdout]   --> src/utils.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn set_bit( row: i32, col: i32) -> BitBoard {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rays` is never constructed
[INFO] [stdout]  --> src/rayattacks.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Rays {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `n_ray` is never used
[INFO] [stdout]   --> src/rayattacks.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 | 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:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 | 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:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 | 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:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 | 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:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 | 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:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 | 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:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 | 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:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 | 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: associated function `initialize` is never used
[INFO] [stdout]   --> src/rayattacks.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl Rays {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 49 |     fn initialize() -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blocked_ray_attack` is never used
[INFO] [stdout]   --> src/rayattacks.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn blocked_ray_attack(ray: BitBoard, ray_family: &Vec<BitBoard>, forward_ray: bool, occupancy: BitBoard) -> BitBoard {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/knightattacks.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 | 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]   = note: `KnightAttacks` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/knightattacks.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl KnightAttacks {
[INFO] [stdout]   | ------------------ associated function in this implementation
[INFO] [stdout] 7 |     pub fn new() -> Self {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `knight_attacks` is never used
[INFO] [stdout]   --> src/knightattacks.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn knight_attacks(row: i32, col: i32) -> BitBoard {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PawnAttacks` is never constructed
[INFO] [stdout]  --> src/pawnattacks.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct PawnAttacks {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `initialize` is never used
[INFO] [stdout]   --> src/pawnattacks.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl PawnAttacks {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 13 |     fn initialize() -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `forward_move` is never used
[INFO] [stdout]   --> src/pawnattacks.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | 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:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn diagonal_move(row: i32, col: i32, color: Color) -> BitBoard {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_moves` is never used
[INFO] [stdout]  --> src/movegeneration.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn generate_moves(game: &Game) -> Vec<Position> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_knight_moves` is never used
[INFO] [stdout]   --> src/movegeneration.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn generate_knight_moves(piece: &Piece, game: &Game) -> Vec<Position> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused comparison that must be used
[INFO] [stdout]    --> src/position.rs:135:30
[INFO] [stdout]     |
[INFO] [stdout] 135 |             Color::Black => {self.black_occupancy != bitboard;},
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the comparison produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 135 |             Color::Black => {let _ = self.black_occupancy != bitboard;},
[INFO] [stdout]     |                              +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused comparison that must be used
[INFO] [stdout]    --> src/position.rs:136:30
[INFO] [stdout]     |
[INFO] [stdout] 136 |             Color::White => {self.white_occupancy != bitboard;}
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the comparison produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 136 |             Color::White => {let _ = self.white_occupancy != bitboard;}
[INFO] [stdout]     |                              +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-chess-computer` (bin "rust-chess-computer") due to 1 previous error; 37 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f8c7a54bc68f1ed4abe24eb355fa6b387847f01adf8526ea3ce363bdc6535147", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f8c7a54bc68f1ed4abe24eb355fa6b387847f01adf8526ea3ce363bdc6535147", kill_on_drop: false }`
[INFO] [stdout] f8c7a54bc68f1ed4abe24eb355fa6b387847f01adf8526ea3ce363bdc6535147
