[INFO] cloning repository https://github.com/pieterbrandsen/ChessGameRust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pieterbrandsen/ChessGameRust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpieterbrandsen%2FChessGameRust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpieterbrandsen%2FChessGameRust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ca7ac6c7c9c8d6f5ec62cccfcc132be4edb031d8 [INFO] linting pieterbrandsen/ChessGameRust against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpieterbrandsen%2FChessGameRust" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/pieterbrandsen/ChessGameRust [INFO] finished tweaking git repo https://github.com/pieterbrandsen/ChessGameRust [INFO] tweaked toml for git repo https://github.com/pieterbrandsen/ChessGameRust written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/pieterbrandsen/ChessGameRust on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/pieterbrandsen/ChessGameRust 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f1f4a1dbf367e114b4c3c88120c646d31d10c5df93576aec0f9a10122488db99 [INFO] running `Command { std: "docker" "start" "-a" "f1f4a1dbf367e114b4c3c88120c646d31d10c5df93576aec0f9a10122488db99", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f1f4a1dbf367e114b4c3c88120c646d31d10c5df93576aec0f9a10122488db99", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f1f4a1dbf367e114b4c3c88120c646d31d10c5df93576aec0f9a10122488db99", kill_on_drop: false }` [INFO] [stdout] f1f4a1dbf367e114b4c3c88120c646d31d10c5df93576aec0f9a10122488db99 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4a9453e9de5039b6a4946afd7db6be66a0d8314e8c68dd73b687066487f5643a [INFO] running `Command { std: "docker" "start" "-a" "4a9453e9de5039b6a4946afd7db6be66a0d8314e8c68dd73b687066487f5643a", kill_on_drop: false }` [INFO] [stderr] Checking chess_game v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: function `help` is never used [INFO] [stdout] --> src/commands/move_piece.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn help() { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `execute_command` is never used [INFO] [stdout] --> src/commands/move_piece.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn execute_command() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/chess/state_management.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | / match (self, other) { [INFO] [stdout] 33 | | (PieceType::Pawn, PieceType::Pawn) => true, [INFO] [stdout] 34 | | (PieceType::Knight, PieceType::Knight) => true, [INFO] [stdout] 35 | | (PieceType::Bishop, PieceType::Bishop) => true, [INFO] [stdout] ... | [INFO] [stdout] 39 | | _ => false, [INFO] [stdout] 40 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 32 - match (self, other) { [INFO] [stdout] 33 - (PieceType::Pawn, PieceType::Pawn) => true, [INFO] [stdout] 34 - (PieceType::Knight, PieceType::Knight) => true, [INFO] [stdout] 35 - (PieceType::Bishop, PieceType::Bishop) => true, [INFO] [stdout] 36 - (PieceType::Rook, PieceType::Rook) => true, [INFO] [stdout] 37 - (PieceType::Queen, PieceType::Queen) => true, [INFO] [stdout] 38 - (PieceType::King, PieceType::King) => true, [INFO] [stdout] 39 - _ => false, [INFO] [stdout] 40 - } [INFO] [stdout] 32 + matches!((self, other), (PieceType::Pawn, PieceType::Pawn) | (PieceType::Knight, PieceType::Knight) | (PieceType::Bishop, PieceType::Bishop) | (PieceType::Rook, PieceType::Rook) | (PieceType::Queen, PieceType::Queen) | (PieceType::King, PieceType::King)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/chess/state_management.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | / match (self, other) { [INFO] [stdout] 64 | | (Side::White, Side::White) => true, [INFO] [stdout] 65 | | (Side::Black, Side::Black) => true, [INFO] [stdout] 66 | | _ => false, [INFO] [stdout] 67 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 63 - match (self, other) { [INFO] [stdout] 64 - (Side::White, Side::White) => true, [INFO] [stdout] 65 - (Side::Black, Side::Black) => true, [INFO] [stdout] 66 - _ => false, [INFO] [stdout] 67 - } [INFO] [stdout] 63 + matches!((self, other), (Side::White, Side::White) | (Side::Black, Side::Black)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/chess/state_management.rs:344:20 [INFO] [stdout] | [INFO] [stdout] 344 | if (x_moved_abs == 1 && y_moved_abs == 1) [INFO] [stdout] | ____________________^ [INFO] [stdout] 345 | | || (x_moved_abs == 1 && y_moved_abs == 0) [INFO] [stdout] | |_____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 344 - if (x_moved_abs == 1 && y_moved_abs == 1) [INFO] [stdout] 345 - || (x_moved_abs == 1 && y_moved_abs == 0) [INFO] [stdout] 344 + if !(x_moved_abs != 1 || y_moved_abs != 1 && y_moved_abs != 0) [INFO] [stdout] | [INFO] [stdout] 344 - if (x_moved_abs == 1 && y_moved_abs == 1) [INFO] [stdout] 345 - || (x_moved_abs == 1 && y_moved_abs == 0) [INFO] [stdout] 344 + if (y_moved_abs == 0 || y_moved_abs == 1) && x_moved_abs == 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/chess/state_management.rs:428:17 [INFO] [stdout] | [INFO] [stdout] 428 | / if !piece.has_moved { [INFO] [stdout] 429 | | if y_moved_abs == 2 && x_moved_abs == 0 { [INFO] [stdout] 430 | | if self.pos_has_piece(new_x, new_y) { [INFO] [stdout] 431 | | return false; [INFO] [stdout] ... | [INFO] [stdout] 435 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 428 ~ if !piece.has_moved [INFO] [stdout] 429 ~ && y_moved_abs == 2 && x_moved_abs == 0 { [INFO] [stdout] 430 | if self.pos_has_piece(new_x, new_y) { [INFO] [stdout] ... [INFO] [stdout] 433 | return true; [INFO] [stdout] 434 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/chess/state_management.rs:541:50 [INFO] [stdout] | [INFO] [stdout] 541 | if new_x < 1 || new_x > 8 || new_y < 1 || new_y > 8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(1..=8).contains(&new_y)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/chess/state_management.rs:541:24 [INFO] [stdout] | [INFO] [stdout] 541 | if new_x < 1 || new_x > 8 || new_y < 1 || new_y > 8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(1..=8).contains(&new_x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/chess/state_management.rs:547:28 [INFO] [stdout] | [INFO] [stdout] 547 | if self.is_in_check(new_x, new_y, side.clone()) == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!self.is_in_check(new_x, new_y, side.clone())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/chess/state_management.rs:611:13 [INFO] [stdout] | [INFO] [stdout] 611 | let x = move_string.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `move_string.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/chess/state_management.rs:641:8 [INFO] [stdout] | [INFO] [stdout] 641 | if (x_number < 1 || x_number > 8) || (y_number < 1 || y_number > 8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(1..=8).contains(&x_number)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/chess/state_management.rs:641:42 [INFO] [stdout] | [INFO] [stdout] 641 | if (x_number < 1 || x_number > 8) || (y_number < 1 || y_number > 8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(1..=8).contains(&y_number)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `help` is never used [INFO] [stdout] --> src/commands/move_piece.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn help() { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `execute_command` is never used [INFO] [stdout] --> src/commands/move_piece.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn execute_command() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/chess/state_management.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | / match (self, other) { [INFO] [stdout] 33 | | (PieceType::Pawn, PieceType::Pawn) => true, [INFO] [stdout] 34 | | (PieceType::Knight, PieceType::Knight) => true, [INFO] [stdout] 35 | | (PieceType::Bishop, PieceType::Bishop) => true, [INFO] [stdout] ... | [INFO] [stdout] 39 | | _ => false, [INFO] [stdout] 40 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 32 - match (self, other) { [INFO] [stdout] 33 - (PieceType::Pawn, PieceType::Pawn) => true, [INFO] [stdout] 34 - (PieceType::Knight, PieceType::Knight) => true, [INFO] [stdout] 35 - (PieceType::Bishop, PieceType::Bishop) => true, [INFO] [stdout] 36 - (PieceType::Rook, PieceType::Rook) => true, [INFO] [stdout] 37 - (PieceType::Queen, PieceType::Queen) => true, [INFO] [stdout] 38 - (PieceType::King, PieceType::King) => true, [INFO] [stdout] 39 - _ => false, [INFO] [stdout] 40 - } [INFO] [stdout] 32 + matches!((self, other), (PieceType::Pawn, PieceType::Pawn) | (PieceType::Knight, PieceType::Knight) | (PieceType::Bishop, PieceType::Bishop) | (PieceType::Rook, PieceType::Rook) | (PieceType::Queen, PieceType::Queen) | (PieceType::King, PieceType::King)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/chess/state_management.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | / match (self, other) { [INFO] [stdout] 64 | | (Side::White, Side::White) => true, [INFO] [stdout] 65 | | (Side::Black, Side::Black) => true, [INFO] [stdout] 66 | | _ => false, [INFO] [stdout] 67 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 63 - match (self, other) { [INFO] [stdout] 64 - (Side::White, Side::White) => true, [INFO] [stdout] 65 - (Side::Black, Side::Black) => true, [INFO] [stdout] 66 - _ => false, [INFO] [stdout] 67 - } [INFO] [stdout] 63 + matches!((self, other), (Side::White, Side::White) | (Side::Black, Side::Black)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/chess/state_management.rs:344:20 [INFO] [stdout] | [INFO] [stdout] 344 | if (x_moved_abs == 1 && y_moved_abs == 1) [INFO] [stdout] | ____________________^ [INFO] [stdout] 345 | | || (x_moved_abs == 1 && y_moved_abs == 0) [INFO] [stdout] | |_____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 344 - if (x_moved_abs == 1 && y_moved_abs == 1) [INFO] [stdout] 345 - || (x_moved_abs == 1 && y_moved_abs == 0) [INFO] [stdout] 344 + if !(x_moved_abs != 1 || y_moved_abs != 1 && y_moved_abs != 0) [INFO] [stdout] | [INFO] [stdout] 344 - if (x_moved_abs == 1 && y_moved_abs == 1) [INFO] [stdout] 345 - || (x_moved_abs == 1 && y_moved_abs == 0) [INFO] [stdout] 344 + if (y_moved_abs == 0 || y_moved_abs == 1) && x_moved_abs == 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/chess/state_management.rs:428:17 [INFO] [stdout] | [INFO] [stdout] 428 | / if !piece.has_moved { [INFO] [stdout] 429 | | if y_moved_abs == 2 && x_moved_abs == 0 { [INFO] [stdout] 430 | | if self.pos_has_piece(new_x, new_y) { [INFO] [stdout] 431 | | return false; [INFO] [stdout] ... | [INFO] [stdout] 435 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 428 ~ if !piece.has_moved [INFO] [stdout] 429 ~ && y_moved_abs == 2 && x_moved_abs == 0 { [INFO] [stdout] 430 | if self.pos_has_piece(new_x, new_y) { [INFO] [stdout] ... [INFO] [stdout] 433 | return true; [INFO] [stdout] 434 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/chess/state_management.rs:541:50 [INFO] [stdout] | [INFO] [stdout] 541 | if new_x < 1 || new_x > 8 || new_y < 1 || new_y > 8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(1..=8).contains(&new_y)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/chess/state_management.rs:541:24 [INFO] [stdout] | [INFO] [stdout] 541 | if new_x < 1 || new_x > 8 || new_y < 1 || new_y > 8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(1..=8).contains(&new_x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/chess/state_management.rs:547:28 [INFO] [stdout] | [INFO] [stdout] 547 | if self.is_in_check(new_x, new_y, side.clone()) == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!self.is_in_check(new_x, new_y, side.clone())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/chess/state_management.rs:611:13 [INFO] [stdout] | [INFO] [stdout] 611 | let x = move_string.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `move_string.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/chess/state_management.rs:641:8 [INFO] [stdout] | [INFO] [stdout] 641 | if (x_number < 1 || x_number > 8) || (y_number < 1 || y_number > 8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(1..=8).contains(&x_number)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/chess/state_management.rs:641:42 [INFO] [stdout] | [INFO] [stdout] 641 | if (x_number < 1 || x_number > 8) || (y_number < 1 || y_number > 8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(1..=8).contains(&y_number)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.36s [INFO] running `Command { std: "docker" "inspect" "4a9453e9de5039b6a4946afd7db6be66a0d8314e8c68dd73b687066487f5643a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4a9453e9de5039b6a4946afd7db6be66a0d8314e8c68dd73b687066487f5643a", kill_on_drop: false }` [INFO] [stdout] 4a9453e9de5039b6a4946afd7db6be66a0d8314e8c68dd73b687066487f5643a