[INFO] cloning repository https://github.com/robo-monk/crust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/robo-monk/crust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frobo-monk%2Fcrust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frobo-monk%2Fcrust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5baa7c5ea12d5732a581d35fd41e6584312bf279 [INFO] testing robo-monk/crust against 1.85.0 for beta-1.86-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frobo-monk%2Fcrust" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/robo-monk/crust on toolchain 1.85.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.85.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/robo-monk/crust [INFO] finished tweaking git repo https://github.com/robo-monk/crust [INFO] tweaked toml for git repo https://github.com/robo-monk/crust written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/robo-monk/crust 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" "+1.85.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c26cf82ff6d0dd7c0b1c847af4947f952b822f636b1e94523b0b35dea97f2031 [INFO] running `Command { std: "docker" "start" "-a" "c26cf82ff6d0dd7c0b1c847af4947f952b822f636b1e94523b0b35dea97f2031", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c26cf82ff6d0dd7c0b1c847af4947f952b822f636b1e94523b0b35dea97f2031", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c26cf82ff6d0dd7c0b1c847af4947f952b822f636b1e94523b0b35dea97f2031", kill_on_drop: false }` [INFO] [stdout] c26cf82ff6d0dd7c0b1c847af4947f952b822f636b1e94523b0b35dea97f2031 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ad9f62fe4c62efc86df5a89cc2f5daf8085533145b335ed7a3b6e699aad1a665 [INFO] running `Command { std: "docker" "start" "-a" "ad9f62fe4c62efc86df5a89cc2f5daf8085533145b335ed7a3b6e699aad1a665", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.47 [INFO] [stderr] Compiling quote v1.0.21 [INFO] [stderr] Compiling unicode-ident v1.0.5 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling syn v1.0.102 [INFO] [stderr] Compiling wasm-bindgen-shared v0.2.83 [INFO] [stderr] Compiling log v0.4.17 [INFO] [stderr] Compiling libc v0.2.135 [INFO] [stderr] Compiling bumpalo v3.11.1 [INFO] [stderr] Compiling once_cell v1.15.0 [INFO] [stderr] Compiling serde_derive v1.0.145 [INFO] [stderr] Compiling serde v1.0.145 [INFO] [stderr] Compiling ppv-lite86 v0.2.16 [INFO] [stderr] Compiling serde_json v1.0.87 [INFO] [stderr] Compiling wasm-bindgen v0.2.83 [INFO] [stderr] Compiling ryu v1.0.11 [INFO] [stderr] Compiling itoa v1.0.4 [INFO] [stderr] Compiling getrandom v0.2.7 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.83 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.83 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.83 [INFO] [stderr] Compiling crust v0.1.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `super::bboard::BBoard` [INFO] [stdout] --> src/chess/board.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use super::bboard::BBoard; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Mul` and `ShrAssign` [INFO] [stdout] --> src/chess/piece.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::{Add, BitXor, Mul, Shr, ShrAssign}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `wasm_bindgen::prelude::*` [INFO] [stdout] --> src/chess/bboard.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use wasm_bindgen::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/chess/bboard.rs:112:24 [INFO] [stdout] | [INFO] [stdout] 112 | pro &= rotate(pro, (2 * r)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 112 - pro &= rotate(pro, (2 * r)); [INFO] [stdout] 112 + pro &= rotate(pro, 2 * r); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/chess/bboard.rs:113:29 [INFO] [stdout] | [INFO] [stdout] 113 | gen | pro & rotate(gen, (4 * r)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 113 - gen | pro & rotate(gen, (4 * r)) [INFO] [stdout] 113 + gen | pro & rotate(gen, 4 * r) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/chess/bboard.rs:182:25 [INFO] [stdout] | [INFO] [stdout] 182 | Color::White => (Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb)), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 182 - Color::White => (Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb)), [INFO] [stdout] 182 + Color::White => Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/chess/bboard.rs:183:25 [INFO] [stdout] | [INFO] [stdout] 183 | Color::Black => (Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb)), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 183 - Color::Black => (Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb)), [INFO] [stdout] 183 + Color::Black => Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Move` [INFO] [stdout] --> src/lib.rs:2:29 [INFO] [stdout] | [INFO] [stdout] 2 | use chess::bboard::{BBoard, Move, loop_through_indeces}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `thread` and `time` [INFO] [stdout] --> src/lib.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{thread, time}; [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color` and `P` [INFO] [stdout] --> src/lib.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | use chess::piece::{Color, Piece, P}; [INFO] [stdout] | ^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/chess/bboard.rs:1063:9 [INFO] [stdout] | [INFO] [stdout] 1063 | return panic!("no piece there"); [INFO] [stdout] | ^^^^^^^------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/chess/board.rs:330:13 [INFO] [stdout] | [INFO] [stdout] 330 | let mut board: &mut Board = &mut self.clone(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `halfmoves` [INFO] [stdout] --> src/chess/board.rs:349:13 [INFO] [stdout] | [INFO] [stdout] 349 | ... let halfmoves = fields[4]; // Halfmove clock: The number of halfmoves since the last capture or pawn advance, used for the fifty-mo... [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_halfmoves` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> src/chess/piece.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | fn shr(self, rhs: Self) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/chess/piece.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/chess/piece.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 93 | Direction::DownRight => 9, [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 94 | Direction::Right => 1, [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] 95 | Direction::UpRight => -7, [INFO] [stdout] | ------------------ matches some of the same values [INFO] [stdout] 96 | Direction::Up => -8, [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 108 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/chess/piece.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/chess/piece.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 117 | Direction::DownRight => (b << 9) & !A_FILE, [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 118 | Direction::Right => (b << 1) & !A_FILE, [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] 119 | Direction::UpRight => (b >> 7) & !A_FILE, [INFO] [stdout] | ------------------ matches some of the same values [INFO] [stdout] 120 | Direction::Up => b >> 8, [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 127 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `us_bitmap` [INFO] [stdout] --> src/chess/bboard.rs:411:13 [INFO] [stdout] | [INFO] [stdout] 411 | let us_bitmap = self.get_side_bitmap(them_color.not()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_us_bitmap` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sqs` [INFO] [stdout] --> src/chess/bboard.rs:410:37 [INFO] [stdout] | [INFO] [stdout] 410 | pub fn get_sqs_attackers(&self, sqs: u64, them_color: Color) -> u64 { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_sqs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `best_score` [INFO] [stdout] --> src/chess/bboard.rs:634:17 [INFO] [stdout] | [INFO] [stdout] 634 | let mut best_score = -f32::INFINITY as i32; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_score` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/chess/bboard.rs:634:13 [INFO] [stdout] | [INFO] [stdout] 634 | let mut best_score = -f32::INFINITY as i32; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `them_bba` [INFO] [stdout] --> src/chess/bboard.rs:689:13 [INFO] [stdout] | [INFO] [stdout] 689 | let them_bba = self.get_side_bba(side.not()); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_them_bba` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bb` [INFO] [stdout] --> src/chess/bboard.rs:944:45 [INFO] [stdout] | [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_bb` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `color` [INFO] [stdout] --> src/chess/bboard.rs:944:54 [INFO] [stdout] | [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_color` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lib.rs:84:7 [INFO] [stdout] | [INFO] [stdout] 84 | let mut b = BBoard::from_serialization(s); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/chess/board.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Board { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn print(&self) -> () { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn get_all_possible_moves(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn get_index(&self, index: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn get_square(&self, square: &String) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn set_square(&mut self, square: &String, p: Option) -> () { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | pub fn push_move(&mut self, m: &Move) -> () { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn make_move(&mut self, from: &str, to: &str) -> () { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | pub fn get_available_moves(&self, notation: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | pub fn count_ply_moves(&self, depth: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn print_available_moves(&mut self, notation: &str) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 423 | pub fn render_acii(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/chess/piece.rs:229:12 [INFO] [stdout] | [INFO] [stdout] 208 | impl Piece { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 229 | pub fn is_queen(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | pub fn is_bishop(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 238 | pub fn is_king(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 248 | pub fn is_color(&self, color: Color) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn is_sliding(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub fn can_capture(&self, other: &Piece) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 260 | pub fn symbol(&self) -> &str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub fn get_paths(&self, index: usize, board: &Board) -> Vec> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RANK_1` is never used [INFO] [stdout] --> src/chess/bboard.rs:44:11 [INFO] [stdout] | [INFO] [stdout] 44 | pub const RANK_1: u64 = 0b11111111_00000000_00000000_00000000_00000000_00000000_00000000_00000000; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RANK_8` is never used [INFO] [stdout] --> src/chess/bboard.rs:48:11 [INFO] [stdout] | [INFO] [stdout] 48 | pub const RANK_8: u64 = 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_11111111; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PIECES_PERV` is never used [INFO] [stdout] --> src/chess/bboard.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | pub const PIECES_PERV: [P; 7] = [ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rank_mask` is never used [INFO] [stdout] --> src/chess/bboard.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 86 | fn rank_mask(sq: &u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_mask` is never used [INFO] [stdout] --> src/chess/bboard.rs:90:4 [INFO] [stdout] | [INFO] [stdout] 90 | fn file_mask(sq: &u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/chess/bboard.rs:227:12 [INFO] [stdout] | [INFO] [stdout] 198 | impl BBoard { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn from_fen(fen: &String) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 283 | pub fn parse_sq(n: &str) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub fn get_piece_indeces(&self, piece: &Piece) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 366 | pub fn pprint(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 393 | pub fn preview(&mut self, moves: u64) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 397 | pub fn preview_moves_of(&mut self, sq: &str, class: P, color: Color) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 404 | pub fn preview_attackers(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 410 | pub fn get_sqs_attackers(&self, sqs: u64, them_color: Color) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 487 | pub fn preview_moves(&mut self, piece: &Piece) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 493 | pub fn get_available_targets(&self, color: Color) -> [u64; 6] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 508 | pub fn make_good_move(&mut self, search_depth: u32) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 519 | pub fn make_random_move(&mut self) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 731 | pub fn count_ply_moves(&mut self, depth: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 767 | pub fn get_them_bb_array(&self) -> [u64; 7] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 771 | pub fn get_turns_bb_array(&self) -> [u64; 7] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 775 | pub fn count_available_moves(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 780 | pub fn count_available_moves_at_index(&self, i: u32, piece: &Piece) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 794 | pub fn get_available_moves(&self, piece: &Piece) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1046 | pub fn find_piece_at_index(&self, target: u32, side: Color) -> Piece { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:77:3 [INFO] [stdout] | [INFO] [stdout] 77 | b.push_unchecked_move(&mov); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 77 | let _ = b.push_unchecked_move(&mov); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/chess/bboard.rs:516:9 [INFO] [stdout] | [INFO] [stdout] 516 | self.push_unchecked_move(&m); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 516 | let _ = self.push_unchecked_move(&m); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/chess/bboard.rs:539:9 [INFO] [stdout] | [INFO] [stdout] 539 | self.push_unchecked_move(rmove); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 539 | let _ = self.push_unchecked_move(rmove); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::bboard::BBoard` [INFO] [stdout] --> src/chess/board.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use super::bboard::BBoard; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Mul` and `ShrAssign` [INFO] [stdout] --> src/chess/piece.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::{Add, BitXor, Mul, Shr, ShrAssign}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `wasm_bindgen::prelude::*` [INFO] [stdout] --> src/chess/bboard.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use wasm_bindgen::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/chess/bboard.rs:112:24 [INFO] [stdout] | [INFO] [stdout] 112 | pro &= rotate(pro, (2 * r)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 112 - pro &= rotate(pro, (2 * r)); [INFO] [stdout] 112 + pro &= rotate(pro, 2 * r); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/chess/bboard.rs:113:29 [INFO] [stdout] | [INFO] [stdout] 113 | gen | pro & rotate(gen, (4 * r)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 113 - gen | pro & rotate(gen, (4 * r)) [INFO] [stdout] 113 + gen | pro & rotate(gen, 4 * r) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/chess/bboard.rs:182:25 [INFO] [stdout] | [INFO] [stdout] 182 | Color::White => (Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb)), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 182 - Color::White => (Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb)), [INFO] [stdout] 182 + Color::White => Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/chess/bboard.rs:183:25 [INFO] [stdout] | [INFO] [stdout] 183 | Color::Black => (Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb)), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 183 - Color::Black => (Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb)), [INFO] [stdout] 183 + Color::Black => Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `thread` and `time` [INFO] [stdout] --> src/main.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | use std::{thread, time}; [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crust::*` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crust::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color`, `P`, and `Piece` [INFO] [stdout] --> src/main.rs:12:20 [INFO] [stdout] | [INFO] [stdout] 12 | use chess::piece::{Color, Piece, P}; [INFO] [stdout] | ^^^^^ ^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `hashmap` [INFO] [stdout] --> src/main.rs:180:14 [INFO] [stdout] | [INFO] [stdout] 180 | macro_rules! hashmap { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/chess/bboard.rs:1063:9 [INFO] [stdout] | [INFO] [stdout] 1063 | return panic!("no piece there"); [INFO] [stdout] | ^^^^^^^------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/main.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 42 | return; [INFO] [stdout] | ------ any code following this expression is unreachable [INFO] [stdout] ... [INFO] [stdout] 45 | println!("starting agent at (depth: {ply})"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/chess/board.rs:330:13 [INFO] [stdout] | [INFO] [stdout] 330 | let mut board: &mut Board = &mut self.clone(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `halfmoves` [INFO] [stdout] --> src/chess/board.rs:349:13 [INFO] [stdout] | [INFO] [stdout] 349 | ... let halfmoves = fields[4]; // Halfmove clock: The number of halfmoves since the last capture or pawn advance, used for the fifty-mo... [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_halfmoves` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> src/chess/piece.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | fn shr(self, rhs: Self) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/chess/piece.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/chess/piece.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 93 | Direction::DownRight => 9, [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 94 | Direction::Right => 1, [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] 95 | Direction::UpRight => -7, [INFO] [stdout] | ------------------ matches some of the same values [INFO] [stdout] 96 | Direction::Up => -8, [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 108 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/chess/piece.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/chess/piece.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 117 | Direction::DownRight => (b << 9) & !A_FILE, [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 118 | Direction::Right => (b << 1) & !A_FILE, [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] 119 | Direction::UpRight => (b >> 7) & !A_FILE, [INFO] [stdout] | ------------------ matches some of the same values [INFO] [stdout] 120 | Direction::Up => b >> 8, [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 127 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `us_bitmap` [INFO] [stdout] --> src/chess/bboard.rs:411:13 [INFO] [stdout] | [INFO] [stdout] 411 | let us_bitmap = self.get_side_bitmap(them_color.not()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_us_bitmap` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sqs` [INFO] [stdout] --> src/chess/bboard.rs:410:37 [INFO] [stdout] | [INFO] [stdout] 410 | pub fn get_sqs_attackers(&self, sqs: u64, them_color: Color) -> u64 { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_sqs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `best_score` [INFO] [stdout] --> src/chess/bboard.rs:634:17 [INFO] [stdout] | [INFO] [stdout] 634 | let mut best_score = -f32::INFINITY as i32; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_score` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/chess/bboard.rs:634:13 [INFO] [stdout] | [INFO] [stdout] 634 | let mut best_score = -f32::INFINITY as i32; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `them_bba` [INFO] [stdout] --> src/chess/bboard.rs:689:13 [INFO] [stdout] | [INFO] [stdout] 689 | let them_bba = self.get_side_bba(side.not()); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_them_bba` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bb` [INFO] [stdout] --> src/chess/bboard.rs:944:45 [INFO] [stdout] | [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_bb` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `color` [INFO] [stdout] --> src/chess/bboard.rs:944:54 [INFO] [stdout] | [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_color` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_square`, `set_square`, `make_move`, `get_available_moves`, and `print_available_moves` are never used [INFO] [stdout] --> src/chess/board.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Board { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn get_square(&self, square: &String) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn set_square(&mut self, square: &String, p: Option) -> () { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn make_move(&mut self, from: &str, to: &str) -> () { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | pub fn get_available_moves(&self, notation: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn print_available_moves(&mut self, notation: &str) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RANK_1` is never used [INFO] [stdout] --> src/chess/bboard.rs:44:11 [INFO] [stdout] | [INFO] [stdout] 44 | pub const RANK_1: u64 = 0b11111111_00000000_00000000_00000000_00000000_00000000_00000000_00000000; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RANK_8` is never used [INFO] [stdout] --> src/chess/bboard.rs:48:11 [INFO] [stdout] | [INFO] [stdout] 48 | pub const RANK_8: u64 = 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_11111111; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rank_mask` is never used [INFO] [stdout] --> src/chess/bboard.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 86 | fn rank_mask(sq: &u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_mask` is never used [INFO] [stdout] --> src/chess/bboard.rs:90:4 [INFO] [stdout] | [INFO] [stdout] 90 | fn file_mask(sq: &u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/chess/bboard.rs:227:12 [INFO] [stdout] | [INFO] [stdout] 198 | impl BBoard { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn from_fen(fen: &String) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 259 | pub fn get_board(&self) -> Board { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub fn get_piece_indeces(&self, piece: &Piece) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 393 | pub fn preview(&mut self, moves: u64) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 397 | pub fn preview_moves_of(&mut self, sq: &str, class: P, color: Color) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 404 | pub fn preview_attackers(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 410 | pub fn get_sqs_attackers(&self, sqs: u64, them_color: Color) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 487 | pub fn preview_moves(&mut self, piece: &Piece) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 519 | pub fn make_random_move(&mut self) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 767 | pub fn get_them_bb_array(&self) -> [u64; 7] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 771 | pub fn get_turns_bb_array(&self) -> [u64; 7] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 780 | pub fn count_available_moves_at_index(&self, i: u32, piece: &Piece) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1066 | pub fn serialize(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1075 | pub fn from_serialization(val: &str) -> BBoard { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | / bboard.push_unchecked_move(&Move { [INFO] [stdout] 78 | | target, [INFO] [stdout] 79 | | from, [INFO] [stdout] 80 | | piece, [INFO] [stdout] 81 | | captures: Some(captures), [INFO] [stdout] 82 | | }); [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 77 | let _ = bboard.push_unchecked_move(&Move { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | / bboard.push_unchecked_move(&Move { [INFO] [stdout] 90 | | target, [INFO] [stdout] 91 | | from, [INFO] [stdout] 92 | | piece, [INFO] [stdout] 93 | | captures: None, [INFO] [stdout] 94 | | }); [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 89 | let _ = bboard.push_unchecked_move(&Move { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/chess/bboard.rs:516:9 [INFO] [stdout] | [INFO] [stdout] 516 | self.push_unchecked_move(&m); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 516 | let _ = self.push_unchecked_move(&m); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/chess/bboard.rs:539:9 [INFO] [stdout] | [INFO] [stdout] 539 | self.push_unchecked_move(rmove); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 539 | let _ = self.push_unchecked_move(rmove); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.78s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.83 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "ad9f62fe4c62efc86df5a89cc2f5daf8085533145b335ed7a3b6e699aad1a665", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ad9f62fe4c62efc86df5a89cc2f5daf8085533145b335ed7a3b6e699aad1a665", kill_on_drop: false }` [INFO] [stdout] ad9f62fe4c62efc86df5a89cc2f5daf8085533145b335ed7a3b6e699aad1a665 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 250c2ef7f3d50c36ae88a8ce23a3b7eaf82cc96872586e6f285955e2e652d7bb [INFO] running `Command { std: "docker" "start" "-a" "250c2ef7f3d50c36ae88a8ce23a3b7eaf82cc96872586e6f285955e2e652d7bb", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `super::bboard::BBoard` [INFO] [stdout] --> src/chess/board.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use super::bboard::BBoard; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Mul` and `ShrAssign` [INFO] [stdout] --> src/chess/piece.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::{Add, BitXor, Mul, Shr, ShrAssign}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `wasm_bindgen::prelude::*` [INFO] [stdout] --> src/chess/bboard.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use wasm_bindgen::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/chess/bboard.rs:112:24 [INFO] [stdout] | [INFO] [stdout] 112 | pro &= rotate(pro, (2 * r)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 112 - pro &= rotate(pro, (2 * r)); [INFO] [stdout] 112 + pro &= rotate(pro, 2 * r); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/chess/bboard.rs:113:29 [INFO] [stdout] | [INFO] [stdout] 113 | gen | pro & rotate(gen, (4 * r)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 113 - gen | pro & rotate(gen, (4 * r)) [INFO] [stdout] 113 + gen | pro & rotate(gen, 4 * r) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/chess/bboard.rs:182:25 [INFO] [stdout] | [INFO] [stdout] 182 | Color::White => (Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb)), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 182 - Color::White => (Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb)), [INFO] [stdout] 182 + Color::White => Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/chess/bboard.rs:183:25 [INFO] [stdout] | [INFO] [stdout] 183 | Color::Black => (Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb)), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 183 - Color::Black => (Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb)), [INFO] [stdout] 183 + Color::Black => Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Move` [INFO] [stdout] --> src/lib.rs:2:29 [INFO] [stdout] | [INFO] [stdout] 2 | use chess::bboard::{BBoard, Move, loop_through_indeces}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `thread` and `time` [INFO] [stdout] --> src/lib.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{thread, time}; [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color` and `P` [INFO] [stdout] --> src/lib.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | use chess::piece::{Color, Piece, P}; [INFO] [stdout] | ^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/chess/bboard.rs:1063:9 [INFO] [stdout] | [INFO] [stdout] 1063 | return panic!("no piece there"); [INFO] [stdout] | ^^^^^^^------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/chess/board.rs:330:13 [INFO] [stdout] | [INFO] [stdout] 330 | let mut board: &mut Board = &mut self.clone(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `halfmoves` [INFO] [stdout] --> src/chess/board.rs:349:13 [INFO] [stdout] | [INFO] [stdout] 349 | ... let halfmoves = fields[4]; // Halfmove clock: The number of halfmoves since the last capture or pawn advance, used for the fifty-mo... [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_halfmoves` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> src/chess/piece.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | fn shr(self, rhs: Self) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/chess/piece.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/chess/piece.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 93 | Direction::DownRight => 9, [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 94 | Direction::Right => 1, [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] 95 | Direction::UpRight => -7, [INFO] [stdout] | ------------------ matches some of the same values [INFO] [stdout] 96 | Direction::Up => -8, [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 108 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/chess/piece.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/chess/piece.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 117 | Direction::DownRight => (b << 9) & !A_FILE, [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 118 | Direction::Right => (b << 1) & !A_FILE, [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] 119 | Direction::UpRight => (b >> 7) & !A_FILE, [INFO] [stdout] | ------------------ matches some of the same values [INFO] [stdout] 120 | Direction::Up => b >> 8, [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 127 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `us_bitmap` [INFO] [stdout] --> src/chess/bboard.rs:411:13 [INFO] [stdout] | [INFO] [stdout] 411 | let us_bitmap = self.get_side_bitmap(them_color.not()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_us_bitmap` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling crust v0.1.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `sqs` [INFO] [stdout] --> src/chess/bboard.rs:410:37 [INFO] [stdout] | [INFO] [stdout] 410 | pub fn get_sqs_attackers(&self, sqs: u64, them_color: Color) -> u64 { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_sqs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `best_score` [INFO] [stdout] --> src/chess/bboard.rs:634:17 [INFO] [stdout] | [INFO] [stdout] 634 | let mut best_score = -f32::INFINITY as i32; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_score` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/chess/bboard.rs:634:13 [INFO] [stdout] | [INFO] [stdout] 634 | let mut best_score = -f32::INFINITY as i32; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `them_bba` [INFO] [stdout] --> src/chess/bboard.rs:689:13 [INFO] [stdout] | [INFO] [stdout] 689 | let them_bba = self.get_side_bba(side.not()); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_them_bba` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bb` [INFO] [stdout] --> src/chess/bboard.rs:944:45 [INFO] [stdout] | [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_bb` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `color` [INFO] [stdout] --> src/chess/bboard.rs:944:54 [INFO] [stdout] | [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_color` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lib.rs:84:7 [INFO] [stdout] | [INFO] [stdout] 84 | let mut b = BBoard::from_serialization(s); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/chess/board.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Board { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn print(&self) -> () { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn get_all_possible_moves(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn get_index(&self, index: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn get_square(&self, square: &String) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn set_square(&mut self, square: &String, p: Option) -> () { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | pub fn push_move(&mut self, m: &Move) -> () { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn make_move(&mut self, from: &str, to: &str) -> () { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | pub fn get_available_moves(&self, notation: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | pub fn count_ply_moves(&self, depth: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn print_available_moves(&mut self, notation: &str) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 423 | pub fn render_acii(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/chess/piece.rs:229:12 [INFO] [stdout] | [INFO] [stdout] 208 | impl Piece { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 229 | pub fn is_queen(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | pub fn is_bishop(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 238 | pub fn is_king(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 248 | pub fn is_color(&self, color: Color) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn is_sliding(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub fn can_capture(&self, other: &Piece) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 260 | pub fn symbol(&self) -> &str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub fn get_paths(&self, index: usize, board: &Board) -> Vec> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RANK_1` is never used [INFO] [stdout] --> src/chess/bboard.rs:44:11 [INFO] [stdout] | [INFO] [stdout] 44 | pub const RANK_1: u64 = 0b11111111_00000000_00000000_00000000_00000000_00000000_00000000_00000000; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RANK_8` is never used [INFO] [stdout] --> src/chess/bboard.rs:48:11 [INFO] [stdout] | [INFO] [stdout] 48 | pub const RANK_8: u64 = 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_11111111; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PIECES_PERV` is never used [INFO] [stdout] --> src/chess/bboard.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | pub const PIECES_PERV: [P; 7] = [ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rank_mask` is never used [INFO] [stdout] --> src/chess/bboard.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 86 | fn rank_mask(sq: &u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_mask` is never used [INFO] [stdout] --> src/chess/bboard.rs:90:4 [INFO] [stdout] | [INFO] [stdout] 90 | fn file_mask(sq: &u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/chess/bboard.rs:227:12 [INFO] [stdout] | [INFO] [stdout] 198 | impl BBoard { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn from_fen(fen: &String) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 283 | pub fn parse_sq(n: &str) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub fn get_piece_indeces(&self, piece: &Piece) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 366 | pub fn pprint(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 393 | pub fn preview(&mut self, moves: u64) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 397 | pub fn preview_moves_of(&mut self, sq: &str, class: P, color: Color) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 404 | pub fn preview_attackers(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 410 | pub fn get_sqs_attackers(&self, sqs: u64, them_color: Color) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 487 | pub fn preview_moves(&mut self, piece: &Piece) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 493 | pub fn get_available_targets(&self, color: Color) -> [u64; 6] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 508 | pub fn make_good_move(&mut self, search_depth: u32) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 519 | pub fn make_random_move(&mut self) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 731 | pub fn count_ply_moves(&mut self, depth: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 767 | pub fn get_them_bb_array(&self) -> [u64; 7] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 771 | pub fn get_turns_bb_array(&self) -> [u64; 7] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 775 | pub fn count_available_moves(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 780 | pub fn count_available_moves_at_index(&self, i: u32, piece: &Piece) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 794 | pub fn get_available_moves(&self, piece: &Piece) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1046 | pub fn find_piece_at_index(&self, target: u32, side: Color) -> Piece { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:77:3 [INFO] [stdout] | [INFO] [stdout] 77 | b.push_unchecked_move(&mov); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 77 | let _ = b.push_unchecked_move(&mov); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/chess/bboard.rs:516:9 [INFO] [stdout] | [INFO] [stdout] 516 | self.push_unchecked_move(&m); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 516 | let _ = self.push_unchecked_move(&m); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/chess/bboard.rs:539:9 [INFO] [stdout] | [INFO] [stdout] 539 | self.push_unchecked_move(rmove); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 539 | let _ = self.push_unchecked_move(rmove); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::bboard::BBoard` [INFO] [stdout] --> src/chess/board.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use super::bboard::BBoard; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Mul` and `ShrAssign` [INFO] [stdout] --> src/chess/piece.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::{Add, BitXor, Mul, Shr, ShrAssign}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `wasm_bindgen::prelude::*` [INFO] [stdout] --> src/chess/bboard.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use wasm_bindgen::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/chess/bboard.rs:112:24 [INFO] [stdout] | [INFO] [stdout] 112 | pro &= rotate(pro, (2 * r)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 112 - pro &= rotate(pro, (2 * r)); [INFO] [stdout] 112 + pro &= rotate(pro, 2 * r); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/chess/bboard.rs:113:29 [INFO] [stdout] | [INFO] [stdout] 113 | gen | pro & rotate(gen, (4 * r)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 113 - gen | pro & rotate(gen, (4 * r)) [INFO] [stdout] 113 + gen | pro & rotate(gen, 4 * r) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/chess/bboard.rs:182:25 [INFO] [stdout] | [INFO] [stdout] 182 | Color::White => (Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb)), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 182 - Color::White => (Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb)), [INFO] [stdout] 182 + Color::White => Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/chess/bboard.rs:183:25 [INFO] [stdout] | [INFO] [stdout] 183 | Color::Black => (Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb)), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 183 - Color::Black => (Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb)), [INFO] [stdout] 183 + Color::Black => Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `thread` and `time` [INFO] [stdout] --> src/main.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | use std::{thread, time}; [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crust::*` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crust::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color`, `P`, and `Piece` [INFO] [stdout] --> src/main.rs:12:20 [INFO] [stdout] | [INFO] [stdout] 12 | use chess::piece::{Color, Piece, P}; [INFO] [stdout] | ^^^^^ ^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::bboard::BBoard` [INFO] [stdout] --> src/chess/board.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use super::bboard::BBoard; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Mul` and `ShrAssign` [INFO] [stdout] --> src/chess/piece.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::{Add, BitXor, Mul, Shr, ShrAssign}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `wasm_bindgen::prelude::*` [INFO] [stdout] --> src/chess/bboard.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use wasm_bindgen::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/chess/bboard.rs:112:24 [INFO] [stdout] | [INFO] [stdout] 112 | pro &= rotate(pro, (2 * r)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 112 - pro &= rotate(pro, (2 * r)); [INFO] [stdout] 112 + pro &= rotate(pro, 2 * r); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/chess/bboard.rs:113:29 [INFO] [stdout] | [INFO] [stdout] 113 | gen | pro & rotate(gen, (4 * r)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 113 - gen | pro & rotate(gen, (4 * r)) [INFO] [stdout] 113 + gen | pro & rotate(gen, 4 * r) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/chess/bboard.rs:182:25 [INFO] [stdout] | [INFO] [stdout] 182 | Color::White => (Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb)), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 182 - Color::White => (Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb)), [INFO] [stdout] 182 + Color::White => Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/chess/bboard.rs:183:25 [INFO] [stdout] | [INFO] [stdout] 183 | Color::Black => (Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb)), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 183 - Color::Black => (Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb)), [INFO] [stdout] 183 + Color::Black => Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Move` [INFO] [stdout] --> src/lib.rs:2:29 [INFO] [stdout] | [INFO] [stdout] 2 | use chess::bboard::{BBoard, Move, loop_through_indeces}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `thread` and `time` [INFO] [stdout] --> src/lib.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{thread, time}; [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color` and `P` [INFO] [stdout] --> src/lib.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | use chess::piece::{Color, Piece, P}; [INFO] [stdout] | ^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/chess/bboard.rs:1063:9 [INFO] [stdout] | [INFO] [stdout] 1063 | return panic!("no piece there"); [INFO] [stdout] | ^^^^^^^------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/main.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 42 | return; [INFO] [stdout] | ------ any code following this expression is unreachable [INFO] [stdout] ... [INFO] [stdout] 45 | println!("starting agent at (depth: {ply})"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/chess/board.rs:330:13 [INFO] [stdout] | [INFO] [stdout] 330 | let mut board: &mut Board = &mut self.clone(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `halfmoves` [INFO] [stdout] --> src/chess/board.rs:349:13 [INFO] [stdout] | [INFO] [stdout] 349 | ... let halfmoves = fields[4]; // Halfmove clock: The number of halfmoves since the last capture or pawn advance, used for the fifty-mo... [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_halfmoves` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> src/chess/piece.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | fn shr(self, rhs: Self) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/chess/piece.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/chess/piece.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 93 | Direction::DownRight => 9, [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 94 | Direction::Right => 1, [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] 95 | Direction::UpRight => -7, [INFO] [stdout] | ------------------ matches some of the same values [INFO] [stdout] 96 | Direction::Up => -8, [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 108 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/chess/piece.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/chess/piece.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 117 | Direction::DownRight => (b << 9) & !A_FILE, [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 118 | Direction::Right => (b << 1) & !A_FILE, [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] 119 | Direction::UpRight => (b >> 7) & !A_FILE, [INFO] [stdout] | ------------------ matches some of the same values [INFO] [stdout] 120 | Direction::Up => b >> 8, [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 127 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `us_bitmap` [INFO] [stdout] --> src/chess/bboard.rs:411:13 [INFO] [stdout] | [INFO] [stdout] 411 | let us_bitmap = self.get_side_bitmap(them_color.not()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_us_bitmap` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sqs` [INFO] [stdout] --> src/chess/bboard.rs:410:37 [INFO] [stdout] | [INFO] [stdout] 410 | pub fn get_sqs_attackers(&self, sqs: u64, them_color: Color) -> u64 { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_sqs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `best_score` [INFO] [stdout] --> src/chess/bboard.rs:634:17 [INFO] [stdout] | [INFO] [stdout] 634 | let mut best_score = -f32::INFINITY as i32; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_score` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/chess/bboard.rs:634:13 [INFO] [stdout] | [INFO] [stdout] 634 | let mut best_score = -f32::INFINITY as i32; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `them_bba` [INFO] [stdout] --> src/chess/bboard.rs:689:13 [INFO] [stdout] | [INFO] [stdout] 689 | let them_bba = self.get_side_bba(side.not()); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_them_bba` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bb` [INFO] [stdout] --> src/chess/bboard.rs:944:45 [INFO] [stdout] | [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_bb` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `color` [INFO] [stdout] --> src/chess/bboard.rs:944:54 [INFO] [stdout] | [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_color` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/chess/bboard.rs:1063:9 [INFO] [stdout] | [INFO] [stdout] 1063 | return panic!("no piece there"); [INFO] [stdout] | ^^^^^^^------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_square`, `set_square`, `make_move`, `get_available_moves`, and `print_available_moves` are never used [INFO] [stdout] --> src/chess/board.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Board { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn get_square(&self, square: &String) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn set_square(&mut self, square: &String, p: Option) -> () { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn make_move(&mut self, from: &str, to: &str) -> () { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | pub fn get_available_moves(&self, notation: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn print_available_moves(&mut self, notation: &str) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/chess/board.rs:330:13 [INFO] [stdout] | [INFO] [stdout] 330 | let mut board: &mut Board = &mut self.clone(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RANK_1` is never used [INFO] [stdout] --> src/chess/bboard.rs:44:11 [INFO] [stdout] | [INFO] [stdout] 44 | pub const RANK_1: u64 = 0b11111111_00000000_00000000_00000000_00000000_00000000_00000000_00000000; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RANK_8` is never used [INFO] [stdout] --> src/chess/bboard.rs:48:11 [INFO] [stdout] | [INFO] [stdout] 48 | pub const RANK_8: u64 = 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_11111111; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rank_mask` is never used [INFO] [stdout] --> src/chess/bboard.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 86 | fn rank_mask(sq: &u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_mask` is never used [INFO] [stdout] --> src/chess/bboard.rs:90:4 [INFO] [stdout] | [INFO] [stdout] 90 | fn file_mask(sq: &u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/chess/bboard.rs:259:12 [INFO] [stdout] | [INFO] [stdout] 198 | impl BBoard { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 259 | pub fn get_board(&self) -> Board { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub fn get_piece_indeces(&self, piece: &Piece) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 393 | pub fn preview(&mut self, moves: u64) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 397 | pub fn preview_moves_of(&mut self, sq: &str, class: P, color: Color) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 404 | pub fn preview_attackers(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 410 | pub fn get_sqs_attackers(&self, sqs: u64, them_color: Color) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 487 | pub fn preview_moves(&mut self, piece: &Piece) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 519 | pub fn make_random_move(&mut self) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 767 | pub fn get_them_bb_array(&self) -> [u64; 7] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 771 | pub fn get_turns_bb_array(&self) -> [u64; 7] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 780 | pub fn count_available_moves_at_index(&self, i: u32, piece: &Piece) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1066 | pub fn serialize(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1075 | pub fn from_serialization(val: &str) -> BBoard { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | / bboard.push_unchecked_move(&Move { [INFO] [stdout] 78 | | target, [INFO] [stdout] 79 | | from, [INFO] [stdout] 80 | | piece, [INFO] [stdout] 81 | | captures: Some(captures), [INFO] [stdout] 82 | | }); [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 77 | let _ = bboard.push_unchecked_move(&Move { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | / bboard.push_unchecked_move(&Move { [INFO] [stdout] 90 | | target, [INFO] [stdout] 91 | | from, [INFO] [stdout] 92 | | piece, [INFO] [stdout] 93 | | captures: None, [INFO] [stdout] 94 | | }); [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 89 | let _ = bboard.push_unchecked_move(&Move { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/chess/bboard.rs:516:9 [INFO] [stdout] | [INFO] [stdout] 516 | self.push_unchecked_move(&m); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 516 | let _ = self.push_unchecked_move(&m); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/chess/bboard.rs:539:9 [INFO] [stdout] | [INFO] [stdout] 539 | self.push_unchecked_move(rmove); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 539 | let _ = self.push_unchecked_move(rmove); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `halfmoves` [INFO] [stdout] --> src/chess/board.rs:349:13 [INFO] [stdout] | [INFO] [stdout] 349 | ... let halfmoves = fields[4]; // Halfmove clock: The number of halfmoves since the last capture or pawn advance, used for the fifty-mo... [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_halfmoves` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> src/chess/piece.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | fn shr(self, rhs: Self) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/chess/piece.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/chess/piece.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 93 | Direction::DownRight => 9, [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 94 | Direction::Right => 1, [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] 95 | Direction::UpRight => -7, [INFO] [stdout] | ------------------ matches some of the same values [INFO] [stdout] 96 | Direction::Up => -8, [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 108 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/chess/piece.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/chess/piece.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 117 | Direction::DownRight => (b << 9) & !A_FILE, [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 118 | Direction::Right => (b << 1) & !A_FILE, [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] 119 | Direction::UpRight => (b >> 7) & !A_FILE, [INFO] [stdout] | ------------------ matches some of the same values [INFO] [stdout] 120 | Direction::Up => b >> 8, [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 127 | _ => panic!("invalid direction"), [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `us_bitmap` [INFO] [stdout] --> src/chess/bboard.rs:411:13 [INFO] [stdout] | [INFO] [stdout] 411 | let us_bitmap = self.get_side_bitmap(them_color.not()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_us_bitmap` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sqs` [INFO] [stdout] --> src/chess/bboard.rs:410:37 [INFO] [stdout] | [INFO] [stdout] 410 | pub fn get_sqs_attackers(&self, sqs: u64, them_color: Color) -> u64 { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_sqs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `best_score` [INFO] [stdout] --> src/chess/bboard.rs:634:17 [INFO] [stdout] | [INFO] [stdout] 634 | let mut best_score = -f32::INFINITY as i32; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_score` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/chess/bboard.rs:634:13 [INFO] [stdout] | [INFO] [stdout] 634 | let mut best_score = -f32::INFINITY as i32; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `them_bba` [INFO] [stdout] --> src/chess/bboard.rs:689:13 [INFO] [stdout] | [INFO] [stdout] 689 | let them_bba = self.get_side_bba(side.not()); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_them_bba` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bb` [INFO] [stdout] --> src/chess/bboard.rs:944:45 [INFO] [stdout] | [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_bb` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `color` [INFO] [stdout] --> src/chess/bboard.rs:944:54 [INFO] [stdout] | [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_color` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lib.rs:84:7 [INFO] [stdout] | [INFO] [stdout] 84 | let mut b = BBoard::from_serialization(s); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/chess/board.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Board { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn print(&self) -> () { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn get_all_possible_moves(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn get_index(&self, index: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn get_square(&self, square: &String) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn set_square(&mut self, square: &String, p: Option) -> () { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | pub fn push_move(&mut self, m: &Move) -> () { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn make_move(&mut self, from: &str, to: &str) -> () { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | pub fn get_available_moves(&self, notation: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | pub fn count_ply_moves(&self, depth: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn print_available_moves(&mut self, notation: &str) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 423 | pub fn render_acii(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/chess/piece.rs:229:12 [INFO] [stdout] | [INFO] [stdout] 208 | impl Piece { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 229 | pub fn is_queen(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | pub fn is_bishop(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 238 | pub fn is_king(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 248 | pub fn is_color(&self, color: Color) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn is_sliding(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub fn can_capture(&self, other: &Piece) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 260 | pub fn symbol(&self) -> &str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub fn get_paths(&self, index: usize, board: &Board) -> Vec> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RANK_1` is never used [INFO] [stdout] --> src/chess/bboard.rs:44:11 [INFO] [stdout] | [INFO] [stdout] 44 | pub const RANK_1: u64 = 0b11111111_00000000_00000000_00000000_00000000_00000000_00000000_00000000; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RANK_8` is never used [INFO] [stdout] --> src/chess/bboard.rs:48:11 [INFO] [stdout] | [INFO] [stdout] 48 | pub const RANK_8: u64 = 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_11111111; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PIECES_PERV` is never used [INFO] [stdout] --> src/chess/bboard.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | pub const PIECES_PERV: [P; 7] = [ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rank_mask` is never used [INFO] [stdout] --> src/chess/bboard.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 86 | fn rank_mask(sq: &u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_mask` is never used [INFO] [stdout] --> src/chess/bboard.rs:90:4 [INFO] [stdout] | [INFO] [stdout] 90 | fn file_mask(sq: &u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/chess/bboard.rs:227:12 [INFO] [stdout] | [INFO] [stdout] 198 | impl BBoard { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn from_fen(fen: &String) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 283 | pub fn parse_sq(n: &str) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub fn get_piece_indeces(&self, piece: &Piece) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 366 | pub fn pprint(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 393 | pub fn preview(&mut self, moves: u64) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 397 | pub fn preview_moves_of(&mut self, sq: &str, class: P, color: Color) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 404 | pub fn preview_attackers(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 410 | pub fn get_sqs_attackers(&self, sqs: u64, them_color: Color) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 487 | pub fn preview_moves(&mut self, piece: &Piece) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 493 | pub fn get_available_targets(&self, color: Color) -> [u64; 6] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 508 | pub fn make_good_move(&mut self, search_depth: u32) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 519 | pub fn make_random_move(&mut self) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 731 | pub fn count_ply_moves(&mut self, depth: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 767 | pub fn get_them_bb_array(&self) -> [u64; 7] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 771 | pub fn get_turns_bb_array(&self) -> [u64; 7] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 775 | pub fn count_available_moves(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 780 | pub fn count_available_moves_at_index(&self, i: u32, piece: &Piece) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 794 | pub fn get_available_moves(&self, piece: &Piece) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1046 | pub fn find_piece_at_index(&self, target: u32, side: Color) -> Piece { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:77:3 [INFO] [stdout] | [INFO] [stdout] 77 | b.push_unchecked_move(&mov); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 77 | let _ = b.push_unchecked_move(&mov); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/chess/bboard.rs:516:9 [INFO] [stdout] | [INFO] [stdout] 516 | self.push_unchecked_move(&m); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 516 | let _ = self.push_unchecked_move(&m); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/chess/bboard.rs:539:9 [INFO] [stdout] | [INFO] [stdout] 539 | self.push_unchecked_move(rmove); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 539 | let _ = self.push_unchecked_move(rmove); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.76s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.83 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "250c2ef7f3d50c36ae88a8ce23a3b7eaf82cc96872586e6f285955e2e652d7bb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "250c2ef7f3d50c36ae88a8ce23a3b7eaf82cc96872586e6f285955e2e652d7bb", kill_on_drop: false }` [INFO] [stdout] 250c2ef7f3d50c36ae88a8ce23a3b7eaf82cc96872586e6f285955e2e652d7bb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 8d0381cc603530db7779b78c578892a55704e673284f1d538a931fa90826372c [INFO] running `Command { std: "docker" "start" "-a" "8d0381cc603530db7779b78c578892a55704e673284f1d538a931fa90826372c", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `super::bboard::BBoard` [INFO] [stderr] --> src/chess/board.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use super::bboard::BBoard; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Mul` and `ShrAssign` [INFO] [stderr] --> src/chess/piece.rs:3:29 [INFO] [stderr] | [INFO] [stderr] 3 | use std::ops::{Add, BitXor, Mul, Shr, ShrAssign}; [INFO] [stderr] | ^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `wasm_bindgen::prelude::*` [INFO] [stderr] --> src/chess/bboard.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use wasm_bindgen::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/chess/bboard.rs:112:24 [INFO] [stderr] | [INFO] [stderr] 112 | pro &= rotate(pro, (2 * r)); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 112 - pro &= rotate(pro, (2 * r)); [INFO] [stderr] 112 + pro &= rotate(pro, 2 * r); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/chess/bboard.rs:113:29 [INFO] [stderr] | [INFO] [stderr] 113 | gen | pro & rotate(gen, (4 * r)) [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 113 - gen | pro & rotate(gen, (4 * r)) [INFO] [stderr] 113 + gen | pro & rotate(gen, 4 * r) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around match arm expression [INFO] [stderr] --> src/chess/bboard.rs:182:25 [INFO] [stderr] | [INFO] [stderr] 182 | Color::White => (Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb)), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 182 - Color::White => (Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb)), [INFO] [stderr] 182 + Color::White => Direction::UpRight.shift_once(bb) | Direction::UpLeft.shift_once(bb), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around match arm expression [INFO] [stderr] --> src/chess/bboard.rs:183:25 [INFO] [stderr] | [INFO] [stderr] 183 | Color::Black => (Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb)), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 183 - Color::Black => (Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb)), [INFO] [stderr] 183 + Color::Black => Direction::DownRight.shift_once(bb) | Direction::DownLeft.shift_once(bb), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `Move` [INFO] [stderr] --> src/lib.rs:2:29 [INFO] [stderr] | [INFO] [stderr] 2 | use chess::bboard::{BBoard, Move, loop_through_indeces}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `thread` and `time` [INFO] [stderr] --> src/lib.rs:3:11 [INFO] [stderr] | [INFO] [stderr] 3 | use std::{thread, time}; [INFO] [stderr] | ^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Color` and `P` [INFO] [stderr] --> src/lib.rs:8:20 [INFO] [stderr] | [INFO] [stderr] 8 | use chess::piece::{Color, Piece, P}; [INFO] [stderr] | ^^^^^ ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/chess/bboard.rs:1063:9 [INFO] [stderr] | [INFO] [stderr] 1063 | return panic!("no piece there"); [INFO] [stderr] | ^^^^^^^------------------------ [INFO] [stderr] | | | [INFO] [stderr] | | any code following this expression is unreachable [INFO] [stderr] | unreachable expression [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/chess/board.rs:330:13 [INFO] [stderr] | [INFO] [stderr] 330 | let mut board: &mut Board = &mut self.clone(); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `halfmoves` [INFO] [stderr] --> src/chess/board.rs:349:13 [INFO] [stderr] | [INFO] [stderr] 349 | ... let halfmoves = fields[4]; // Halfmove clock: The number of halfmoves since the last capture or pawn advance, used for the fifty-mo... [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_halfmoves` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rhs` [INFO] [stderr] --> src/chess/piece.rs:9:18 [INFO] [stderr] | [INFO] [stderr] 9 | fn shr(self, rhs: Self) -> Self::Output { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/chess/piece.rs:108:13 [INFO] [stderr] | [INFO] [stderr] 108 | _ => panic!("invalid direction"), [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/chess/piece.rs:108:13 [INFO] [stderr] | [INFO] [stderr] 93 | Direction::DownRight => 9, [INFO] [stderr] | -------------------- matches some of the same values [INFO] [stderr] 94 | Direction::Right => 1, [INFO] [stderr] | ---------------- matches some of the same values [INFO] [stderr] 95 | Direction::UpRight => -7, [INFO] [stderr] | ------------------ matches some of the same values [INFO] [stderr] 96 | Direction::Up => -8, [INFO] [stderr] | ------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 108 | _ => panic!("invalid direction"), [INFO] [stderr] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/chess/piece.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | _ => panic!("invalid direction"), [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/chess/piece.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 117 | Direction::DownRight => (b << 9) & !A_FILE, [INFO] [stderr] | -------------------- matches some of the same values [INFO] [stderr] 118 | Direction::Right => (b << 1) & !A_FILE, [INFO] [stderr] | ---------------- matches some of the same values [INFO] [stderr] 119 | Direction::UpRight => (b >> 7) & !A_FILE, [INFO] [stderr] | ------------------ matches some of the same values [INFO] [stderr] 120 | Direction::Up => b >> 8, [INFO] [stderr] | ------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 127 | _ => panic!("invalid direction"), [INFO] [stderr] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stderr] [INFO] [stderr] warning: unused variable: `us_bitmap` [INFO] [stderr] --> src/chess/bboard.rs:411:13 [INFO] [stderr] | [INFO] [stderr] 411 | let us_bitmap = self.get_side_bitmap(them_color.not()); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_us_bitmap` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sqs` [INFO] [stderr] --> src/chess/bboard.rs:410:37 [INFO] [stderr] | [INFO] [stderr] 410 | pub fn get_sqs_attackers(&self, sqs: u64, them_color: Color) -> u64 { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_sqs` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `best_score` [INFO] [stderr] --> src/chess/bboard.rs:634:17 [INFO] [stderr] | [INFO] [stderr] 634 | let mut best_score = -f32::INFINITY as i32; [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_score` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/chess/bboard.rs:634:13 [INFO] [stderr] | [INFO] [stderr] 634 | let mut best_score = -f32::INFINITY as i32; [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `them_bba` [INFO] [stderr] --> src/chess/bboard.rs:689:13 [INFO] [stderr] | [INFO] [stderr] 689 | let them_bba = self.get_side_bba(side.not()); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_them_bba` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `bb` [INFO] [stderr] --> src/chess/bboard.rs:944:45 [INFO] [stderr] | [INFO] [stderr] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_bb` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/chess/bboard.rs:944:54 [INFO] [stderr] | [INFO] [stderr] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_color` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:84:7 [INFO] [stderr] | [INFO] [stderr] 84 | let mut b = BBoard::from_serialization(s); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/chess/board.rs:51:12 [INFO] [stderr] | [INFO] [stderr] 31 | impl Board { [INFO] [stderr] | ---------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 51 | pub fn print(&self) -> () { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 68 | pub fn get_all_possible_moves(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 80 | pub fn get_index(&self, index: usize) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 83 | pub fn get_square(&self, square: &String) -> Option { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | pub fn set_square(&mut self, square: &String, p: Option) -> () { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 96 | pub fn push_move(&mut self, m: &Move) -> () { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 208 | pub fn make_move(&mut self, from: &str, to: &str) -> () { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 216 | pub fn get_available_moves(&self, notation: &str) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 221 | pub fn count_ply_moves(&self, depth: usize) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 325 | pub fn print_available_moves(&mut self, notation: &str) -> () { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 423 | pub fn render_acii(&self) -> String { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/chess/piece.rs:229:12 [INFO] [stderr] | [INFO] [stderr] 208 | impl Piece { [INFO] [stderr] | ---------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 229 | pub fn is_queen(&self) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 232 | pub fn is_bishop(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 238 | pub fn is_king(&self) -> bool { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 248 | pub fn is_color(&self, color: Color) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 252 | pub fn is_sliding(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 256 | pub fn can_capture(&self, other: &Piece) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 260 | pub fn symbol(&self) -> &str { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 280 | pub fn get_paths(&self, index: usize, board: &Board) -> Vec> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `RANK_1` is never used [INFO] [stderr] --> src/chess/bboard.rs:44:11 [INFO] [stderr] | [INFO] [stderr] 44 | pub const RANK_1: u64 = 0b11111111_00000000_00000000_00000000_00000000_00000000_00000000_00000000; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `RANK_8` is never used [INFO] [stderr] --> src/chess/bboard.rs:48:11 [INFO] [stderr] | [INFO] [stderr] 48 | pub const RANK_8: u64 = 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_11111111; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `PIECES_PERV` is never used [INFO] [stderr] --> src/chess/bboard.rs:51:11 [INFO] [stderr] | [INFO] [stderr] 51 | pub const PIECES_PERV: [P; 7] = [ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `rank_mask` is never used [INFO] [stderr] --> src/chess/bboard.rs:86:4 [INFO] [stderr] | [INFO] [stderr] 86 | fn rank_mask(sq: &u64) -> u64 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `file_mask` is never used [INFO] [stderr] --> src/chess/bboard.rs:90:4 [INFO] [stderr] | [INFO] [stderr] 90 | fn file_mask(sq: &u64) -> u64 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/chess/bboard.rs:227:12 [INFO] [stderr] | [INFO] [stderr] 198 | impl BBoard { [INFO] [stderr] | ----------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 227 | pub fn from_fen(fen: &String) -> Self { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 283 | pub fn parse_sq(n: &str) -> u8 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 347 | pub fn get_piece_indeces(&self, piece: &Piece) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 366 | pub fn pprint(&mut self) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 393 | pub fn preview(&mut self, moves: u64) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 397 | pub fn preview_moves_of(&mut self, sq: &str, class: P, color: Color) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 404 | pub fn preview_attackers(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 410 | pub fn get_sqs_attackers(&self, sqs: u64, them_color: Color) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 487 | pub fn preview_moves(&mut self, piece: &Piece) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 493 | pub fn get_available_targets(&self, color: Color) -> [u64; 6] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 508 | pub fn make_good_move(&mut self, search_depth: u32) -> () { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 519 | pub fn make_random_move(&mut self) -> () { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 731 | pub fn count_ply_moves(&mut self, depth: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 767 | pub fn get_them_bb_array(&self) -> [u64; 7] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 771 | pub fn get_turns_bb_array(&self) -> [u64; 7] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 775 | pub fn count_available_moves(&self) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 780 | pub fn count_available_moves_at_index(&self, i: u32, piece: &Piece) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 794 | pub fn get_available_moves(&self, piece: &Piece) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1046 | pub fn find_piece_at_index(&self, target: u32, side: Color) -> Piece { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/lib.rs:77:3 [INFO] [stderr] | [INFO] [stderr] 77 | b.push_unchecked_move(&mov); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 77 | let _ = b.push_unchecked_move(&mov); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/chess/bboard.rs:516:9 [INFO] [stderr] | [INFO] [stderr] 516 | self.push_unchecked_move(&m); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 516 | let _ = self.push_unchecked_move(&m); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/chess/bboard.rs:539:9 [INFO] [stderr] | [INFO] [stderr] 539 | self.push_unchecked_move(rmove); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 539 | let _ = self.push_unchecked_move(rmove); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: `crust` (lib) generated 35 warnings (run `cargo fix --lib -p crust` to apply 13 suggestions) [INFO] [stderr] warning: `crust` (lib test) generated 35 warnings (35 duplicates) [INFO] [stderr] warning: unused imports: `thread` and `time` [INFO] [stderr] --> src/main.rs:5:11 [INFO] [stderr] | [INFO] [stderr] 5 | use std::{thread, time}; [INFO] [stderr] | ^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crust::*` [INFO] [stderr] --> src/main.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use crust::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Color`, `P`, and `Piece` [INFO] [stderr] --> src/main.rs:12:20 [INFO] [stderr] | [INFO] [stderr] 12 | use chess::piece::{Color, Piece, P}; [INFO] [stderr] | ^^^^^ ^^^^^ ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/main.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 42 | return; [INFO] [stderr] | ------ any code following this expression is unreachable [INFO] [stderr] ... [INFO] [stderr] 45 | println!("starting agent at (depth: {ply})"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: methods `get_square`, `set_square`, `make_move`, `get_available_moves`, and `print_available_moves` are never used [INFO] [stderr] --> src/chess/board.rs:83:12 [INFO] [stderr] | [INFO] [stderr] 31 | impl Board { [INFO] [stderr] | ---------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 83 | pub fn get_square(&self, square: &String) -> Option { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | pub fn set_square(&mut self, square: &String, p: Option) -> () { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 208 | pub fn make_move(&mut self, from: &str, to: &str) -> () { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 216 | pub fn get_available_moves(&self, notation: &str) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 325 | pub fn print_available_moves(&mut self, notation: &str) -> () { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/chess/bboard.rs:259:12 [INFO] [stderr] | [INFO] [stderr] 198 | impl BBoard { [INFO] [stderr] | ----------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 259 | pub fn get_board(&self) -> Board { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 347 | pub fn get_piece_indeces(&self, piece: &Piece) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 393 | pub fn preview(&mut self, moves: u64) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 397 | pub fn preview_moves_of(&mut self, sq: &str, class: P, color: Color) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 404 | pub fn preview_attackers(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 410 | pub fn get_sqs_attackers(&self, sqs: u64, them_color: Color) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 487 | pub fn preview_moves(&mut self, piece: &Piece) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 519 | pub fn make_random_move(&mut self) -> () { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 767 | pub fn get_them_bb_array(&self) -> [u64; 7] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 771 | pub fn get_turns_bb_array(&self) -> [u64; 7] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 780 | pub fn count_available_moves_at_index(&self, i: u32, piece: &Piece) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 944 | pub fn count_attackers_of_square(&self, bb: u64, color: Color) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1066 | pub fn serialize(&self) -> String { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1075 | pub fn from_serialization(val: &str) -> BBoard { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/main.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | / bboard.push_unchecked_move(&Move { [INFO] [stderr] 78 | | target, [INFO] [stderr] 79 | | from, [INFO] [stderr] 80 | | piece, [INFO] [stderr] 81 | | captures: Some(captures), [INFO] [stderr] 82 | | }); [INFO] [stderr] | |______________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 77 | let _ = bboard.push_unchecked_move(&Move { [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/main.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | / bboard.push_unchecked_move(&Move { [INFO] [stderr] 90 | | target, [INFO] [stderr] 91 | | from, [INFO] [stderr] 92 | | piece, [INFO] [stderr] 93 | | captures: None, [INFO] [stderr] 94 | | }); [INFO] [stderr] | |______________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 89 | let _ = bboard.push_unchecked_move(&Move { [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: `crust` (bin "crust" test) generated 34 warnings (26 duplicates) (run `cargo fix --bin "crust" --tests` to apply 3 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.83 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/crust-d174ef1e6315fe4e) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/crust-7139253ca4219ff4) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test rules_are_right ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- rules_are_right stdout ---- [INFO] [stdout] laying to i 0: color: Black cls: Rook [INFO] [stdout] laying to i 1: color: Black cls: Knight [INFO] [stdout] laying to i 2: color: Black cls: Bishop [INFO] [stdout] laying to i 3: color: Black cls: Queen [INFO] [stdout] laying to i 4: color: Black cls: King [INFO] [stdout] laying to i 5: color: Black cls: Bishop [INFO] [stdout] laying to i 6: color: Black cls: Knight [INFO] [stdout] laying to i 7: color: Black cls: Rook [INFO] [stdout] laying to i 8: color: Black cls: Pawn [INFO] [stdout] laying to i 9: color: Black cls: Pawn [INFO] [stdout] laying to i 10: color: Black cls: Pawn [INFO] [stdout] laying to i 11: color: Black cls: Pawn [INFO] [stdout] laying to i 12: color: Black cls: Pawn [INFO] [stdout] laying to i 13: color: Black cls: Pawn [INFO] [stdout] laying to i 14: color: Black cls: Pawn [INFO] [stdout] laying to i 15: color: Black cls: Pawn [INFO] [stdout] ascii digit incr from 16 to 24 [INFO] [stdout] ascii digit incr from 24 to 32 [INFO] [stdout] ascii digit incr from 32 to 40 [INFO] [stdout] ascii digit incr from 40 to 48 [INFO] [stdout] laying to i 48: color: White cls: Pawn [INFO] [stdout] laying to i 49: color: White cls: Pawn [INFO] [stdout] laying to i 50: color: White cls: Pawn [INFO] [stdout] laying to i 51: color: White cls: Pawn [INFO] [stdout] laying to i 52: color: White cls: Pawn [INFO] [stdout] laying to i 53: color: White cls: Pawn [INFO] [stdout] laying to i 54: color: White cls: Pawn [INFO] [stdout] laying to i 55: color: White cls: Pawn [INFO] [stdout] laying to i 56: color: White cls: Rook [INFO] [stdout] laying to i 57: color: White cls: Knight [INFO] [stdout] laying to i 58: color: White cls: Bishop [INFO] [stdout] laying to i 59: color: White cls: Queen [INFO] [stdout] laying to i 60: color: White cls: King [INFO] [stdout] laying to i 61: color: White cls: Bishop [INFO] [stdout] laying to i 62: color: White cls: Knight [INFO] [stdout] laying to i 63: color: White cls: Rook [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 0 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Rook, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 1 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Knight, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 2 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Bishop, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 3 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Queen, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 4 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: King, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 5 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Bishop, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 6 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Knight, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 7 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Rook, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 8 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 9 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 10 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 11 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 12 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 13 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 14 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 15 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: Black, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 48 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 49 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 50 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 51 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 52 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 53 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 54 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 55 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Pawn, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 56 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Rook, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 57 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Knight, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 58 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Bishop, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 59 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Queen, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 60 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: King, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 61 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Bishop, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 62 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Knight, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [src/chess/bboard.rs:241:13] i = 63 [INFO] [stdout] [src/chess/bboard.rs:241:13] piece = Piece { [INFO] [stdout] class: Rook, [INFO] [stdout] color: White, [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] thread 'rules_are_right' panicked at src/main.rs:199:9: [INFO] [stdout] assertion `left == right` failed: ply 4 should be 197281 but was 189792 [INFO] [stdout] left: 189792 [INFO] [stdout] right: 197281 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x6438a5f9609a - std::backtrace_rs::backtrace::libunwind::trace::h88deb10bd0145eb8 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5 [INFO] [stdout] 1: 0x6438a5f9609a - std::backtrace_rs::backtrace::trace_unsynchronized::he1036f5481c14dff [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x6438a5f9609a - std::sys::backtrace::_print_fmt::hecc345b6e70c4b20 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/sys/backtrace.rs:66:9 [INFO] [stdout] 3: 0x6438a5f9609a - ::fmt::he089f96442833f67 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/sys/backtrace.rs:39:26 [INFO] [stdout] 4: 0x6438a5fbba73 - core::fmt::rt::Argument::fmt::h1f77cded99c71a14 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/rt.rs:177:76 [INFO] [stdout] 5: 0x6438a5fbba73 - core::fmt::write::h2f210ed4c94745cb [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/mod.rs:1440:21 [INFO] [stdout] 6: 0x6438a5f931b3 - std::io::Write::write_fmt::he723b56f7e0bd522 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/io/mod.rs:1887:15 [INFO] [stdout] 7: 0x6438a5f95ee2 - std::sys::backtrace::BacktraceLock::print::h810fbd31421329e6 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/sys/backtrace.rs:42:9 [INFO] [stdout] 8: 0x6438a5f975d0 - std::panicking::default_hook::{{closure}}::hbaad47ed9dc6356d [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:295:22 [INFO] [stdout] 9: 0x6438a5f9736d - std::panicking::default_hook::h24e207139139d40a [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:319:9 [INFO] [stdout] 10: 0x6438a5f575f3 - as core::ops::function::Fn>::call::h63353c459bb27956 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/alloc/src/boxed.rs:2007:9 [INFO] [stdout] 11: 0x6438a5f575f3 - test::test_main::{{closure}}::hd5af4d6c4e32fe08 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/test/src/lib.rs:134:21 [INFO] [stdout] 12: 0x6438a5f97e03 - as core::ops::function::Fn>::call::h3af32c23caf5c679 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/alloc/src/boxed.rs:2007:9 [INFO] [stdout] 13: 0x6438a5f97e03 - std::panicking::rust_panic_with_hook::ha9131beeb2ddc506 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:836:13 [INFO] [stdout] 14: 0x6438a5f97ada - std::panicking::begin_panic_handler::{{closure}}::h1bba0eaeb6da506f [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:701:13 [INFO] [stdout] 15: 0x6438a5f96599 - std::sys::backtrace::__rust_end_short_backtrace::h1d1ca3eade483f4c [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/sys/backtrace.rs:168:18 [INFO] [stdout] 16: 0x6438a5f9776d - rust_begin_unwind [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:692:5 [INFO] [stdout] 17: 0x6438a5f11c50 - core::panicking::panic_fmt::h896a0727a1a943f9 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panicking.rs:75:14 [INFO] [stdout] 18: 0x6438a5f11fa2 - core::panicking::assert_failed_inner::ha51bf8fa7906dee4 [INFO] [stdout] 19: 0x6438a5f11e29 - core::panicking::assert_failed::h670c9d126fab1881 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panicking.rs:364:5 [INFO] [stdout] 20: 0x6438a5f1a2cc - crust::rules_are_right::h3f373033594dba21 [INFO] [stdout] at /opt/rustwide/workdir/src/main.rs:199:9 [INFO] [stdout] 21: 0x6438a5f19ee7 - crust::rules_are_right::{{closure}}::h49f2f4f544990370 [INFO] [stdout] at /opt/rustwide/workdir/src/main.rs:188:21 [INFO] [stdout] 22: 0x6438a5f131a6 - core::ops::function::FnOnce::call_once::h2c7ec9c74f297873 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 23: 0x6438a5f5cd9b - core::ops::function::FnOnce::call_once::h8acc80b5a33ff319 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x6438a5f5cd9b - test::__rust_begin_short_backtrace::h52b6da716ad42b7d [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/test/src/lib.rs:632:18 [INFO] [stdout] 25: 0x6438a5f5bcd3 - test::run_test_in_process::{{closure}}::h2580047890abbefe [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/test/src/lib.rs:655:60 [INFO] [stdout] 26: 0x6438a5f5bcd3 - as core::ops::function::FnOnce<()>>::call_once::h936f8c89d0a99c40 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panic/unwind_safe.rs:272:9 [INFO] [stdout] 27: 0x6438a5f5bcd3 - std::panicking::try::do_call::h868682cc368697f9 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:584:40 [INFO] [stdout] 28: 0x6438a5f5bcd3 - std::panicking::try::h0356ffc38cbb5501 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:547:19 [INFO] [stdout] 29: 0x6438a5f5bcd3 - std::panic::catch_unwind::h74edf102a3082536 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panic.rs:358:14 [INFO] [stdout] 30: 0x6438a5f5bcd3 - test::run_test_in_process::hc27d69576b7224e4 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/test/src/lib.rs:655:27 [INFO] [stdout] 31: 0x6438a5f5bcd3 - test::run_test::{{closure}}::h9f3bfaf910429adb [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/test/src/lib.rs:576:43 [INFO] [stdout] 32: 0x6438a5f1fa05 - test::run_test::{{closure}}::h3d537cdce8ec5816 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/test/src/lib.rs:606:41 [INFO] [stdout] 33: 0x6438a5f1fa05 - std::sys::backtrace::__rust_begin_short_backtrace::hb51d9a6c67ec382d [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/sys/backtrace.rs:152:18 [INFO] [stdout] 34: 0x6438a5f23446 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h5738f3abb9603fe6 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/thread/mod.rs:564:17 [INFO] [stdout] 35: 0x6438a5f23446 - as core::ops::function::FnOnce<()>>::call_once::h5e9f4b56e45e8108 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panic/unwind_safe.rs:272:9 [INFO] [stdout] 36: 0x6438a5f23446 - std::panicking::try::do_call::ha36db853b2f34e23 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:584:40 [INFO] [stdout] 37: 0x6438a5f23446 - std::panicking::try::h57e1aa33a0efb1be [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:547:19 [INFO] [stdout] 38: 0x6438a5f23446 - std::panic::catch_unwind::hdb71a6103024936e [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panic.rs:358:14 [INFO] [stdout] 39: 0x6438a5f23446 - std::thread::Builder::spawn_unchecked_::{{closure}}::h8caa22218f423ab1 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/thread/mod.rs:562:30 [INFO] [stdout] 40: 0x6438a5f23446 - core::ops::function::FnOnce::call_once{{vtable.shim}}::hb3b44780e9c053e5 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 41: 0x6438a5f9bc6b - as core::ops::function::FnOnce>::call_once::h2649f14f1b1c150d [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/alloc/src/boxed.rs:1993:9 [INFO] [stdout] 42: 0x6438a5f9bc6b - as core::ops::function::FnOnce>::call_once::hb2ade58cb34e1bc4 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/alloc/src/boxed.rs:1993:9 [INFO] [stdout] 43: 0x6438a5f9bc6b - std::sys::pal::unix::thread::Thread::new::thread_start::ha07e360225fa3528 [INFO] [stdout] at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/sys/pal/unix/thread.rs:106:17 [INFO] [stdout] 44: 0x784b34c20ac3 - [INFO] [stdout] 45: 0x784b34cb1a04 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] rules_are_right [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--bin crust` [INFO] running `Command { std: "docker" "inspect" "8d0381cc603530db7779b78c578892a55704e673284f1d538a931fa90826372c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8d0381cc603530db7779b78c578892a55704e673284f1d538a931fa90826372c", kill_on_drop: false }` [INFO] [stdout] 8d0381cc603530db7779b78c578892a55704e673284f1d538a931fa90826372c