[INFO] cloning repository https://github.com/thom-gg/solachess
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/thom-gg/solachess" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthom-gg%2Fsolachess", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthom-gg%2Fsolachess'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 22d587a479a4166665addafd4bf1a07e195d0fcc
[INFO] checking thom-gg/solachess against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthom-gg%2Fsolachess" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/thom-gg/solachess
[INFO] finished tweaking git repo https://github.com/thom-gg/solachess
[INFO] tweaked toml for git repo https://github.com/thom-gg/solachess written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/thom-gg/solachess on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/thom-gg/solachess 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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded solana-frozen-abi-macro v1.18.1
[INFO] [stderr]   Downloaded borsh-derive v1.3.1
[INFO] [stderr]   Downloaded solana-frozen-abi v1.18.1
[INFO] [stderr]   Downloaded solana-sdk-macro v1.18.1
[INFO] [stderr]   Downloaded bytemuck v1.14.2
[INFO] [stderr]   Downloaded winnow v0.5.39
[INFO] [stderr]   Downloaded borsh v1.3.1
[INFO] [stderr]   Downloaded blake3 v1.5.0
[INFO] [stderr]   Downloaded solana-program v1.18.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 24c7d205041a41c26c416fc14196dcebde95685b62f6c0d13ba0159c607fe06f
[INFO] running `Command { std: "docker" "start" "-a" "24c7d205041a41c26c416fc14196dcebde95685b62f6c0d13ba0159c607fe06f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "24c7d205041a41c26c416fc14196dcebde95685b62f6c0d13ba0159c607fe06f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "24c7d205041a41c26c416fc14196dcebde95685b62f6c0d13ba0159c607fe06f", kill_on_drop: false }`
[INFO] [stdout] 24c7d205041a41c26c416fc14196dcebde95685b62f6c0d13ba0159c607fe06f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b1c60c5dbeb071bea86af7d446910739b83f0e637c03b4821b31c1abd29779cf
[INFO] running `Command { std: "docker" "start" "-a" "b1c60c5dbeb071bea86af7d446910739b83f0e637c03b4821b31c1abd29779cf", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling proc-macro2 v1.0.78
[INFO] [stderr]    Compiling serde v1.0.196
[INFO] [stderr]     Checking subtle v2.5.0
[INFO] [stderr]    Compiling serde_json v1.0.113
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling semver v1.0.21
[INFO] [stderr]    Compiling unicode-segmentation v1.11.0
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]    Compiling ryu v1.0.16
[INFO] [stderr]    Compiling itoa v1.0.10
[INFO] [stderr]    Compiling anyhow v1.0.79
[INFO] [stderr]    Compiling ahash v0.8.7
[INFO] [stderr]    Compiling bs58 v0.5.0
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling num-bigint v0.4.4
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.91
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling indexmap v2.2.2
[INFO] [stderr]    Compiling winnow v0.5.39
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]    Compiling log v0.4.20
[INFO] [stderr]    Compiling rustc_version v0.4.0
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]    Compiling bumpalo v3.14.0
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling im v15.1.0
[INFO] [stderr]    Compiling borsh v1.3.1
[INFO] [stderr]     Checking rayon v1.8.1
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]     Checking ahash v0.7.7
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling solana-frozen-abi-macro v1.18.1
[INFO] [stderr]    Compiling solana-frozen-abi v1.18.1
[INFO] [stderr]     Checking rand_xoshiro v0.6.0
[INFO] [stderr]    Compiling wasm-bindgen v0.2.91
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling syn v2.0.48
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking ark-std v0.4.0
[INFO] [stderr]    Compiling jobserver v0.1.27
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]    Compiling toml_edit v0.21.1
[INFO] [stderr]    Compiling blake3 v1.5.0
[INFO] [stderr]    Compiling solana-program v1.18.1
[INFO] [stderr]    Compiling borsh-derive-internal v0.10.3
[INFO] [stderr]    Compiling borsh-schema-derive-internal v0.10.3
[INFO] [stderr]    Compiling borsh-derive-internal v0.9.3
[INFO] [stderr]    Compiling borsh-schema-derive-internal v0.9.3
[INFO] [stderr]    Compiling proc-macro-crate v3.1.0
[INFO] [stderr]    Compiling ark-serialize-derive v0.4.2
[INFO] [stderr]    Compiling ark-ff-macros v0.4.2
[INFO] [stderr]    Compiling ark-ff-asm v0.4.2
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling anchor-derive-space v0.29.0
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.91
[INFO] [stderr]    Compiling serde_derive v1.0.196
[INFO] [stderr]    Compiling thiserror-impl v1.0.56
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling syn_derive v0.1.8
[INFO] [stderr]    Compiling bytemuck_derive v1.5.0
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling solana-sdk-macro v1.18.1
[INFO] [stderr]     Checking zeroize v1.3.0
[INFO] [stderr]    Compiling borsh-derive v1.3.1
[INFO] [stderr]     Checking bytemuck v1.14.2
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.91
[INFO] [stderr]    Compiling thiserror v1.0.56
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.91
[INFO] [stderr]     Checking serde_bytes v0.11.14
[INFO] [stderr]     Checking bv v0.11.1
[INFO] [stderr]     Checking bitflags v2.4.2
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking crypto-mac v0.8.0
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]     Checking libsecp256k1-core v0.2.2
[INFO] [stderr]     Checking curve25519-dalek v3.2.1
[INFO] [stderr]     Checking hmac v0.8.1
[INFO] [stderr]     Checking pbkdf2 v0.4.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking hmac-drbg v0.3.0
[INFO] [stderr]     Checking tiny-bip39 v0.8.2
[INFO] [stderr]     Checking ark-serialize v0.4.2
[INFO] [stderr]     Checking sha2 v0.10.8
[INFO] [stderr]     Checking sha3 v0.10.8
[INFO] [stderr]     Checking ark-ff v0.4.2
[INFO] [stderr]    Compiling proc-macro-crate v0.1.5
[INFO] [stderr]    Compiling borsh-derive v0.10.3
[INFO] [stderr]    Compiling borsh-derive v0.9.3
[INFO] [stderr]    Compiling anchor-syn v0.29.0
[INFO] [stderr]     Checking borsh v0.9.3
[INFO] [stderr]     Checking borsh v0.10.3
[INFO] [stderr]    Compiling libsecp256k1-gen-genmult v0.2.1
[INFO] [stderr]    Compiling libsecp256k1-gen-ecmult v0.2.1
[INFO] [stderr]    Compiling libsecp256k1 v0.6.0
[INFO] [stderr]    Compiling anchor-attribute-account v0.29.0
[INFO] [stderr]    Compiling anchor-attribute-event v0.29.0
[INFO] [stderr]    Compiling anchor-attribute-access-control v0.29.0
[INFO] [stderr]    Compiling anchor-attribute-program v0.29.0
[INFO] [stderr]    Compiling anchor-attribute-constant v0.29.0
[INFO] [stderr]    Compiling anchor-derive-accounts v0.29.0
[INFO] [stderr]    Compiling anchor-attribute-error v0.29.0
[INFO] [stderr]    Compiling anchor-derive-serde v0.29.0
[INFO] [stderr]     Checking ark-poly v0.4.2
[INFO] [stderr]     Checking ark-ec v0.4.2
[INFO] [stderr]     Checking ark-bn254 v0.4.0
[INFO] [stderr]     Checking light-poseidon v0.2.0
[INFO] [stderr]     Checking anchor-lang v0.29.0
[INFO] [stderr]     Checking solachess v0.1.0 (/opt/rustwide/workdir/programs/solachess)
[INFO] [stdout] warning: unexpected `cfg` condition value: `custom-heap`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `$crate::custom_heap_default` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `$crate::custom_heap_default` may come from an old version of the `solana_program` crate, try updating your dependency with `cargo update -p solana_program`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `$crate::custom_heap_default` which comes from the expansion of the attribute macro `program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `solana`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `target_os` are: `aix`, `amdhsa`, `android`, `cuda`, `cygwin`, `dragonfly`, `emscripten`, `espidf`, `freebsd`, `fuchsia`, `haiku`, `helenos`, `hermit`, `horizon`, `hurd`, `illumos`, `ios`, `l4re`, `linux`, `lynxos178`, `macos`, `managarm`, `motor`, `netbsd`, `none`, `nto`, `nuttx`, `openbsd`, `psp`, `psx`, `qurt`, `redox`, `rtems`, `solaris`, and `solid_asp3` and 14 more
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `$crate::custom_heap_default` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `$crate::custom_heap_default` may come from an old version of the `solana_program` crate, try updating your dependency with `cargo update -p solana_program`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `$crate::custom_heap_default` which comes from the expansion of the attribute macro `program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `custom-panic`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `$crate::custom_panic_default` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `$crate::custom_panic_default` may come from an old version of the `solana_program` crate, try updating your dependency with `cargo update -p solana_program`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `$crate::custom_panic_default` which comes from the expansion of the attribute macro `program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `solana`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `target_os` are: `aix`, `amdhsa`, `android`, `cuda`, `cygwin`, `dragonfly`, `emscripten`, `espidf`, `freebsd`, `fuchsia`, `haiku`, `helenos`, `hermit`, `horizon`, `hurd`, `illumos`, `ios`, `l4re`, `linux`, `lynxos178`, `macos`, `managarm`, `motor`, `netbsd`, `none`, `nto`, `nuttx`, `openbsd`, `psp`, `psx`, `qurt`, `redox`, `rtems`, `solaris`, and `solid_asp3` and 14 more
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `$crate::custom_panic_default` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `$crate::custom_panic_default` may come from an old version of the `solana_program` crate, try updating your dependency with `cargo update -p solana_program`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `$crate::custom_panic_default` which comes from the expansion of the attribute macro `program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]  --> programs/solachess/src/rules.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 |     if (y < z && x > y && x < z) {
[INFO] [stdout]   |        ^                       ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 4 -     if (y < z && x > y && x < z) {
[INFO] [stdout] 4 +     if y < z && x > y && x < z  {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]  --> programs/solachess/src/rules.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 |     if (y > z && x < y && x > z) {
[INFO] [stdout]   |        ^                       ^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 7 -     if (y > z && x < y && x > z) {
[INFO] [stdout] 7 +     if y > z && x < y && x > z  {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 |     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout]    |        ^                                                            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 17 -     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout] 17 +     if from < 0 || from >= grid.len() || to < 0 || to >= grid.len()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 |     if (startingTile.piece == Piece::Empty || &startingTile.color != colorPlaying) {
[INFO] [stdout]    |        ^                                                                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 30 -     if (startingTile.piece == Piece::Empty || &startingTile.color != colorPlaying) {
[INFO] [stdout] 30 +     if startingTile.piece == Piece::Empty || &startingTile.color != colorPlaying  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 |     if (endingTile.piece != Piece::Empty && &endingTile.color == colorPlaying) {
[INFO] [stdout]    |        ^                                                                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 35 -     if (endingTile.piece != Piece::Empty && &endingTile.color == colorPlaying) {
[INFO] [stdout] 35 +     if endingTile.piece != Piece::Empty && &endingTile.color == colorPlaying  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `return` value
[INFO] [stdout]   --> programs/solachess/src/rules.rs:45:32
[INFO] [stdout]    |
[INFO] [stdout] 45 |         Piece::Queen => return (rook_rules(startX, startY, endX, endY, grid.clone()) 
[INFO] [stdout]    |                                ^
[INFO] [stdout] 46 |                                     || 
[INFO] [stdout] 47 |                                 bishop_rules(startX, startY, endX, endY, grid.clone())),
[INFO] [stdout]    |                                                                                       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 45 ~         Piece::Queen => return rook_rules(startX, startY, endX, endY, grid.clone()) 
[INFO] [stdout] 46 |                                     || 
[INFO] [stdout] 47 ~                                 bishop_rules(startX, startY, endX, endY, grid.clone()) ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 |     if (endingTile.piece != Piece::Empty) {  // if eating, has to be in diagonal
[INFO] [stdout]    |        ^                                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 55 -     if (endingTile.piece != Piece::Empty) {  // if eating, has to be in diagonal
[INFO] [stdout] 55 +     if endingTile.piece != Piece::Empty  {  // if eating, has to be in diagonal
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 |         if (endY == startY + 1) {
[INFO] [stdout]    |            ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 75 -         if (endY == startY + 1) {
[INFO] [stdout] 75 +         if endY == startY + 1  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 |         if (endY == startY + 2 && startY == 1) {
[INFO] [stdout]    |            ^                                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 78 -         if (endY == startY + 2 && startY == 1) {
[INFO] [stdout] 78 +         if endY == startY + 2 && startY == 1  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |         if (endY == startY - 1) {
[INFO] [stdout]    |            ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 85 -         if (endY == startY - 1) {
[INFO] [stdout] 85 +         if endY == startY - 1  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 |         if (endY == startY - 2 && startY == 6) {
[INFO] [stdout]    |            ^                                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 88 -         if (endY == startY - 2 && startY == 6) {
[INFO] [stdout] 88 +         if endY == startY - 2 && startY == 6  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 |     if (startX == endX) {
[INFO] [stdout]    |        ^              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 96 -     if (startX == endX) {
[INFO] [stdout] 96 +     if startX == endX  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 |         if (startY < endY) {
[INFO] [stdout]    |            ^             ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 98 -         if (startY < endY) {
[INFO] [stdout] 98 +         if startY < endY  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/rules.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 |     if (startY == endY) {
[INFO] [stdout]     |        ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 116 -     if (startY == endY) {
[INFO] [stdout] 116 +     if startY == endY  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/rules.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 117 |         if (startX < endX) {
[INFO] [stdout]     |            ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 117 -         if (startX < endX) {
[INFO] [stdout] 117 +         if startX < endX  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> programs/solachess/src/rules.rs:119:25
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 if grid[(startY*8 + i)].piece != Piece::Empty {
[INFO] [stdout]     |                         ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 119 -                 if grid[(startY*8 + i)].piece != Piece::Empty {
[INFO] [stdout] 119 +                 if grid[startY*8 + i ].piece != Piece::Empty {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> programs/solachess/src/rules.rs:126:25
[INFO] [stdout]     |
[INFO] [stdout] 126 |                 if grid[(startY*8 + i)].piece != Piece::Empty {
[INFO] [stdout]     |                         ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 126 -                 if grid[(startY*8 + i)].piece != Piece::Empty {
[INFO] [stdout] 126 +                 if grid[startY*8 + i ].piece != Piece::Empty {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/rules.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 155 |         if (goingDown) { tmpY -= 1;}
[INFO] [stdout]     |            ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -         if (goingDown) { tmpY -= 1;}
[INFO] [stdout] 155 +         if goingDown  { tmpY -= 1;}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/rules.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout] 158 |         if (goingLeft) { tmpX -= 1;}
[INFO] [stdout]     |            ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 158 -         if (goingLeft) { tmpX -= 1;}
[INFO] [stdout] 158 +         if goingLeft  { tmpX -= 1;}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> programs/solachess/src/rules.rs:161:17
[INFO] [stdout]     |
[INFO] [stdout] 161 |         if grid[(tmpY*8 + tmpX)].piece != Piece::Empty {
[INFO] [stdout]     |                 ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 161 -         if grid[(tmpY*8 + tmpX)].piece != Piece::Empty {
[INFO] [stdout] 161 +         if grid[tmpY*8 + tmpX ].piece != Piece::Empty {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/rules.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 172 |         if (((endX as i8) - (startX as i8)).abs() == 2 && ( (endY as i8) - (startY as i8)).abs() == 1) {
[INFO] [stdout]     |            ^                                                                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 172 -         if (((endX as i8) - (startX as i8)).abs() == 2 && ( (endY as i8) - (startY as i8)).abs() == 1) {
[INFO] [stdout] 172 +         if ((endX as i8) - (startX as i8)).abs() == 2 && ( (endY as i8) - (startY as i8)).abs() == 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/rules.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 175 |         if (((endX as i8) - (startX as i8)).abs() == 1 && ( (endY as i8) - (startY as i8)).abs() == 2) {
[INFO] [stdout]     |            ^                                                                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 175 -         if (((endX as i8) - (startX as i8)).abs() == 1 && ( (endY as i8) - (startY as i8)).abs() == 2) {
[INFO] [stdout] 175 +         if ((endX as i8) - (startX as i8)).abs() == 1 && ( (endY as i8) - (startY as i8)).abs() == 2  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/rules.rs:183:10
[INFO] [stdout]     |
[INFO] [stdout] 183 |       if ( ((endX as i8) - (startX as i8)).abs() == 1 && ((endY as i8) - (startY as i8)).abs() == 1) {
[INFO] [stdout]     |          ^^                                                                                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 183 -       if ( ((endX as i8) - (startX as i8)).abs() == 1 && ((endY as i8) - (startY as i8)).abs() == 1) {
[INFO] [stdout] 183 +       if ((endX as i8) - (startX as i8)).abs() == 1 && ((endY as i8) - (startY as i8)).abs() == 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a attribute macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `program` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the attribute macro `program` may come from an old version of the `anchor_attribute_program` crate, try updating your dependency with `cargo update -p anchor_attribute_program`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the attribute macro `program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/lib.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 |         if (ctx.accounts.game_account.grid[usize::from(to)].piece == Piece::King) {
[INFO] [stdout]     |            ^                                                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 119 -         if (ctx.accounts.game_account.grid[usize::from(to)].piece == Piece::King) {
[INFO] [stdout] 119 +         if ctx.accounts.game_account.grid[usize::from(to)].piece == Piece::King  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/lib.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout] 120 |             if (ctx.accounts.game_account.grid[usize::from(to)].color == Color::White) {
[INFO] [stdout]     |                ^                                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 120 -             if (ctx.accounts.game_account.grid[usize::from(to)].color == Color::White) {
[INFO] [stdout] 120 +             if ctx.accounts.game_account.grid[usize::from(to)].color == Color::White  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/lib.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 |         if (ctx.accounts.game_account.next_to_play == Color::White) {
[INFO] [stdout]     |            ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 141 -         if (ctx.accounts.game_account.next_to_play == Color::White) {
[INFO] [stdout] 141 +         if ctx.accounts.game_account.next_to_play == Color::White  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/lib.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 |     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout]     |        ^                                                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 152 -     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout] 152 +     if from < 0 || from >= grid.len() || to < 0 || to >= grid.len()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/lib.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 |     if (startingTile.piece == Piece::Empty || &startingTile.color != colorPlaying) {
[INFO] [stdout]     |        ^                                                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 156 -     if (startingTile.piece == Piece::Empty || &startingTile.color != colorPlaying) {
[INFO] [stdout] 156 +     if startingTile.piece == Piece::Empty || &startingTile.color != colorPlaying  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/lib.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 |     if (destinationTile.piece != Piece::Empty && &destinationTile.color == colorPlaying) {
[INFO] [stdout]     |        ^                                                                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 161 -     if (destinationTile.piece != Piece::Empty && &destinationTile.color == colorPlaying) {
[INFO] [stdout] 161 +     if destinationTile.piece != Piece::Empty && &destinationTile.color == colorPlaying  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]    --> programs/solachess/src/lib.rs:172:10
[INFO] [stdout]     |
[INFO] [stdout] 172 | #[derive(Accounts)]
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `custom-heap`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `$crate::custom_heap_default` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `$crate::custom_heap_default` may come from an old version of the `solana_program` crate, try updating your dependency with `cargo update -p solana_program`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `$crate::custom_heap_default` which comes from the expansion of the attribute macro `program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]    --> programs/solachess/src/lib.rs:185:10
[INFO] [stdout]     |
[INFO] [stdout] 185 | #[derive(Accounts)]
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `solana`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `target_os` are: `aix`, `amdhsa`, `android`, `cuda`, `cygwin`, `dragonfly`, `emscripten`, `espidf`, `freebsd`, `fuchsia`, `haiku`, `helenos`, `hermit`, `horizon`, `hurd`, `illumos`, `ios`, `l4re`, `linux`, `lynxos178`, `macos`, `managarm`, `motor`, `netbsd`, `none`, `nto`, `nuttx`, `openbsd`, `psp`, `psx`, `qurt`, `redox`, `rtems`, `solaris`, and `solid_asp3` and 14 more
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `$crate::custom_heap_default` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `$crate::custom_heap_default` may come from an old version of the `solana_program` crate, try updating your dependency with `cargo update -p solana_program`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `$crate::custom_heap_default` which comes from the expansion of the attribute macro `program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]    --> programs/solachess/src/lib.rs:196:10
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[derive(Accounts)]
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]    --> programs/solachess/src/lib.rs:205:10
[INFO] [stdout]     |
[INFO] [stdout] 205 | #[derive(Accounts)]
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `custom-panic`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `$crate::custom_panic_default` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `$crate::custom_panic_default` may come from an old version of the `solana_program` crate, try updating your dependency with `cargo update -p solana_program`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `$crate::custom_panic_default` which comes from the expansion of the attribute macro `program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `solana`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `target_os` are: `aix`, `amdhsa`, `android`, `cuda`, `cygwin`, `dragonfly`, `emscripten`, `espidf`, `freebsd`, `fuchsia`, `haiku`, `helenos`, `hermit`, `horizon`, `hurd`, `illumos`, `ios`, `l4re`, `linux`, `lynxos178`, `macos`, `managarm`, `motor`, `netbsd`, `none`, `nto`, `nuttx`, `openbsd`, `psp`, `psx`, `qurt`, `redox`, `rtems`, `solaris`, and `solid_asp3` and 14 more
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `$crate::custom_panic_default` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `$crate::custom_panic_default` may come from an old version of the `solana_program` crate, try updating your dependency with `cargo update -p solana_program`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `$crate::custom_panic_default` which comes from the expansion of the attribute macro `program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]  --> programs/solachess/src/rules.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 |     if (y < z && x > y && x < z) {
[INFO] [stdout]   |        ^                       ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 4 -     if (y < z && x > y && x < z) {
[INFO] [stdout] 4 +     if y < z && x > y && x < z  {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]  --> programs/solachess/src/rules.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 |     if (y > z && x < y && x > z) {
[INFO] [stdout]   |        ^                       ^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 7 -     if (y > z && x < y && x > z) {
[INFO] [stdout] 7 +     if y > z && x < y && x > z  {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 |     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout]    |        ^                                                            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 17 -     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout] 17 +     if from < 0 || from >= grid.len() || to < 0 || to >= grid.len()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 |     if (startingTile.piece == Piece::Empty || &startingTile.color != colorPlaying) {
[INFO] [stdout]    |        ^                                                                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 30 -     if (startingTile.piece == Piece::Empty || &startingTile.color != colorPlaying) {
[INFO] [stdout] 30 +     if startingTile.piece == Piece::Empty || &startingTile.color != colorPlaying  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 |     if (endingTile.piece != Piece::Empty && &endingTile.color == colorPlaying) {
[INFO] [stdout]    |        ^                                                                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 35 -     if (endingTile.piece != Piece::Empty && &endingTile.color == colorPlaying) {
[INFO] [stdout] 35 +     if endingTile.piece != Piece::Empty && &endingTile.color == colorPlaying  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `return` value
[INFO] [stdout]   --> programs/solachess/src/rules.rs:45:32
[INFO] [stdout]    |
[INFO] [stdout] 45 |         Piece::Queen => return (rook_rules(startX, startY, endX, endY, grid.clone()) 
[INFO] [stdout]    |                                ^
[INFO] [stdout] 46 |                                     || 
[INFO] [stdout] 47 |                                 bishop_rules(startX, startY, endX, endY, grid.clone())),
[INFO] [stdout]    |                                                                                       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 45 ~         Piece::Queen => return rook_rules(startX, startY, endX, endY, grid.clone()) 
[INFO] [stdout] 46 |                                     || 
[INFO] [stdout] 47 ~                                 bishop_rules(startX, startY, endX, endY, grid.clone()) ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 |     if (endingTile.piece != Piece::Empty) {  // if eating, has to be in diagonal
[INFO] [stdout]    |        ^                                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 55 -     if (endingTile.piece != Piece::Empty) {  // if eating, has to be in diagonal
[INFO] [stdout] 55 +     if endingTile.piece != Piece::Empty  {  // if eating, has to be in diagonal
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 |         if (endY == startY + 1) {
[INFO] [stdout]    |            ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 75 -         if (endY == startY + 1) {
[INFO] [stdout] 75 +         if endY == startY + 1  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 |         if (endY == startY + 2 && startY == 1) {
[INFO] [stdout]    |            ^                                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 78 -         if (endY == startY + 2 && startY == 1) {
[INFO] [stdout] 78 +         if endY == startY + 2 && startY == 1  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |         if (endY == startY - 1) {
[INFO] [stdout]    |            ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 85 -         if (endY == startY - 1) {
[INFO] [stdout] 85 +         if endY == startY - 1  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 |         if (endY == startY - 2 && startY == 6) {
[INFO] [stdout]    |            ^                                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 88 -         if (endY == startY - 2 && startY == 6) {
[INFO] [stdout] 88 +         if endY == startY - 2 && startY == 6  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 |     if (startX == endX) {
[INFO] [stdout]    |        ^              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 96 -     if (startX == endX) {
[INFO] [stdout] 96 +     if startX == endX  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> programs/solachess/src/rules.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 |         if (startY < endY) {
[INFO] [stdout]    |            ^             ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 98 -         if (startY < endY) {
[INFO] [stdout] 98 +         if startY < endY  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/rules.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 |     if (startY == endY) {
[INFO] [stdout]     |        ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 116 -     if (startY == endY) {
[INFO] [stdout] 116 +     if startY == endY  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/rules.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 117 |         if (startX < endX) {
[INFO] [stdout]     |            ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 117 -         if (startX < endX) {
[INFO] [stdout] 117 +         if startX < endX  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> programs/solachess/src/rules.rs:119:25
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 if grid[(startY*8 + i)].piece != Piece::Empty {
[INFO] [stdout]     |                         ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 119 -                 if grid[(startY*8 + i)].piece != Piece::Empty {
[INFO] [stdout] 119 +                 if grid[startY*8 + i ].piece != Piece::Empty {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> programs/solachess/src/rules.rs:126:25
[INFO] [stdout]     |
[INFO] [stdout] 126 |                 if grid[(startY*8 + i)].piece != Piece::Empty {
[INFO] [stdout]     |                         ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 126 -                 if grid[(startY*8 + i)].piece != Piece::Empty {
[INFO] [stdout] 126 +                 if grid[startY*8 + i ].piece != Piece::Empty {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/rules.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 155 |         if (goingDown) { tmpY -= 1;}
[INFO] [stdout]     |            ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -         if (goingDown) { tmpY -= 1;}
[INFO] [stdout] 155 +         if goingDown  { tmpY -= 1;}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/rules.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout] 158 |         if (goingLeft) { tmpX -= 1;}
[INFO] [stdout]     |            ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 158 -         if (goingLeft) { tmpX -= 1;}
[INFO] [stdout] 158 +         if goingLeft  { tmpX -= 1;}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> programs/solachess/src/rules.rs:161:17
[INFO] [stdout]     |
[INFO] [stdout] 161 |         if grid[(tmpY*8 + tmpX)].piece != Piece::Empty {
[INFO] [stdout]     |                 ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 161 -         if grid[(tmpY*8 + tmpX)].piece != Piece::Empty {
[INFO] [stdout] 161 +         if grid[tmpY*8 + tmpX ].piece != Piece::Empty {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/rules.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 172 |         if (((endX as i8) - (startX as i8)).abs() == 2 && ( (endY as i8) - (startY as i8)).abs() == 1) {
[INFO] [stdout]     |            ^                                                                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 172 -         if (((endX as i8) - (startX as i8)).abs() == 2 && ( (endY as i8) - (startY as i8)).abs() == 1) {
[INFO] [stdout] 172 +         if ((endX as i8) - (startX as i8)).abs() == 2 && ( (endY as i8) - (startY as i8)).abs() == 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/rules.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 175 |         if (((endX as i8) - (startX as i8)).abs() == 1 && ( (endY as i8) - (startY as i8)).abs() == 2) {
[INFO] [stdout]     |            ^                                                                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 175 -         if (((endX as i8) - (startX as i8)).abs() == 1 && ( (endY as i8) - (startY as i8)).abs() == 2) {
[INFO] [stdout] 175 +         if ((endX as i8) - (startX as i8)).abs() == 1 && ( (endY as i8) - (startY as i8)).abs() == 2  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/rules.rs:183:10
[INFO] [stdout]     |
[INFO] [stdout] 183 |       if ( ((endX as i8) - (startX as i8)).abs() == 1 && ((endY as i8) - (startY as i8)).abs() == 1) {
[INFO] [stdout]     |          ^^                                                                                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 183 -       if ( ((endX as i8) - (startX as i8)).abs() == 1 && ((endY as i8) - (startY as i8)).abs() == 1) {
[INFO] [stdout] 183 +       if ((endX as i8) - (startX as i8)).abs() == 1 && ((endY as i8) - (startY as i8)).abs() == 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a attribute macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `program` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the attribute macro `program` may come from an old version of the `anchor_attribute_program` crate, try updating your dependency with `cargo update -p anchor_attribute_program`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the attribute macro `program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[program]
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/lib.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 |         if (ctx.accounts.game_account.grid[usize::from(to)].piece == Piece::King) {
[INFO] [stdout]     |            ^                                                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 119 -         if (ctx.accounts.game_account.grid[usize::from(to)].piece == Piece::King) {
[INFO] [stdout] 119 +         if ctx.accounts.game_account.grid[usize::from(to)].piece == Piece::King  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/lib.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout] 120 |             if (ctx.accounts.game_account.grid[usize::from(to)].color == Color::White) {
[INFO] [stdout]     |                ^                                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 120 -             if (ctx.accounts.game_account.grid[usize::from(to)].color == Color::White) {
[INFO] [stdout] 120 +             if ctx.accounts.game_account.grid[usize::from(to)].color == Color::White  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/lib.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 |         if (ctx.accounts.game_account.next_to_play == Color::White) {
[INFO] [stdout]     |            ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 141 -         if (ctx.accounts.game_account.next_to_play == Color::White) {
[INFO] [stdout] 141 +         if ctx.accounts.game_account.next_to_play == Color::White  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/lib.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 |     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout]     |        ^                                                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 152 -     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout] 152 +     if from < 0 || from >= grid.len() || to < 0 || to >= grid.len()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/lib.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 |     if (startingTile.piece == Piece::Empty || &startingTile.color != colorPlaying) {
[INFO] [stdout]     |        ^                                                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 156 -     if (startingTile.piece == Piece::Empty || &startingTile.color != colorPlaying) {
[INFO] [stdout] 156 +     if startingTile.piece == Piece::Empty || &startingTile.color != colorPlaying  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> programs/solachess/src/lib.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 |     if (destinationTile.piece != Piece::Empty && &destinationTile.color == colorPlaying) {
[INFO] [stdout]     |        ^                                                                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 161 -     if (destinationTile.piece != Piece::Empty && &destinationTile.color == colorPlaying) {
[INFO] [stdout] 161 +     if destinationTile.piece != Piece::Empty && &destinationTile.color == colorPlaying  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]    --> programs/solachess/src/lib.rs:172:10
[INFO] [stdout]     |
[INFO] [stdout] 172 | #[derive(Accounts)]
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]    --> programs/solachess/src/lib.rs:185:10
[INFO] [stdout]     |
[INFO] [stdout] 185 | #[derive(Accounts)]
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]    --> programs/solachess/src/lib.rs:196:10
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[derive(Accounts)]
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `anchor-debug`
[INFO] [stdout]    --> programs/solachess/src/lib.rs:205:10
[INFO] [stdout]     |
[INFO] [stdout] 205 | #[derive(Accounts)]
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `cpi`, `default`, `no-entrypoint`, `no-idl`, and `no-log-ix-name`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Accounts` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = help: the derive macro `Accounts` may come from an old version of the `anchor_derive_accounts` crate, try updating your dependency with `cargo update -p anchor_derive_accounts`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Accounts` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> programs/solachess/src/rules.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |     for i in 0..offsetX-1 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> programs/solachess/src/rules.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |     for i in 0..offsetX-1 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> programs/solachess/src/lib.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mut lastMove = vec![255, 255];
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> programs/solachess/src/lib.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let mut grid = init_grid();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game_id`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:46:46
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn join_game(ctx: Context<JoinGame>, game_id: u64) -> Result<()> {
[INFO] [stdout]    |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> programs/solachess/src/lib.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let mut lastMove = vec![from, to];
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game_id`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:74:37
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn play(ctx: Context<Play>, game_id: u64, from: u8, to: u8) -> Result<()> {
[INFO] [stdout]    |                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_x_between_y_z` is never used
[INFO] [stdout]  --> programs/solachess/src/rules.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn is_x_between_y_z(x: usize, y: usize, z: usize) -> bool {
[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 `is_move_legal` is never used
[INFO] [stdout]   --> programs/solachess/src/rules.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn is_move_legal(grid: &Vec<Tile>, from: usize, to: usize, colorPlaying: &Color) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pawn_rules` is never used
[INFO] [stdout]   --> programs/solachess/src/rules.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn pawn_rules(startX: usize, startY: usize, endX: usize, endY: usize, startingTile: Tile, endingTile: Tile) -> bool{
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rook_rules` is never used
[INFO] [stdout]   --> programs/solachess/src/rules.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn rook_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bishop_rules` is never used
[INFO] [stdout]    --> programs/solachess/src/rules.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn bishop_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `knight_rules` is never used
[INFO] [stdout]    --> programs/solachess/src/rules.rs:169:4
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn knight_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `king_rules` is never used
[INFO] [stdout]    --> programs/solachess/src/rules.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn king_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `colorPlaying` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:151:60
[INFO] [stdout]     |
[INFO] [stdout] 151 | fn is_move_legal(grid: &Vec<Tile>, from: usize, to: usize, colorPlaying: &Color) -> bool {
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^ help: convert the identifier to snake case: `color_playing`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> programs/solachess/src/lib.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> programs/solachess/src/lib.rs:152:43
[INFO] [stdout]     |
[INFO] [stdout] 152 |     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout]     |                                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startingTile` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     let startingTile = &grid[from];
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `starting_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `destinationTile` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     let destinationTile = &grid[to];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `destination_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `gameId` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:197:15
[INFO] [stdout]     |
[INFO] [stdout] 197 | #[instruction(gameId: u64)]
[INFO] [stdout]     |               ^^^^^^ help: convert the identifier to snake case: `game_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `gameId` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:206:15
[INFO] [stdout]     |
[INFO] [stdout] 206 | #[instruction(gameId: u64, from: u8, to: u8)]
[INFO] [stdout]     |               ^^^^^^ help: convert the identifier to snake case: `game_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `lastGameId` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:216:5
[INFO] [stdout]     |
[INFO] [stdout] 216 |     lastGameId: u64,
[INFO] [stdout]     |     ^^^^^^^^^^ help: convert the identifier to snake case: `last_game_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `lastMove` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 227 |     lastMove: Vec<u8>,    // 1 byte per u8, 2 u8 in the Vec, 4 bytes to store Vec size, so 6 bytes
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `last_move`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `colorPlaying` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:14:64
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn is_move_legal(grid: &Vec<Tile>, from: usize, to: usize, colorPlaying: &Color) -> bool {
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^ help: convert the identifier to snake case: `color_playing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> programs/solachess/src/rules.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> programs/solachess/src/rules.rs:17:43
[INFO] [stdout]    |
[INFO] [stdout] 17 |     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout]    |                                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startX` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let startX: usize = from % 8;
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `start_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startY` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let startY: usize = from / 8;
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `start_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endX` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let endX: usize = to % 8;
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `end_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endY` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let endY: usize = to / 8;
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `end_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startingTile` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let startingTile = &grid[from];
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `starting_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endingTile` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let endingTile = &grid[to];
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `ending_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startX` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:54:15
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn pawn_rules(startX: usize, startY: usize, endX: usize, endY: usize, startingTile: Tile, endingTile: Tile) -> bool{
[INFO] [stdout]    |               ^^^^^^ help: convert the identifier to snake case: `start_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startY` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:54:30
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn pawn_rules(startX: usize, startY: usize, endX: usize, endY: usize, startingTile: Tile, endingTile: Tile) -> bool{
[INFO] [stdout]    |                              ^^^^^^ help: convert the identifier to snake case: `start_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endX` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:54:45
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn pawn_rules(startX: usize, startY: usize, endX: usize, endY: usize, startingTile: Tile, endingTile: Tile) -> bool{
[INFO] [stdout]    |                                             ^^^^ help: convert the identifier to snake case: `end_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endY` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:54:58
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn pawn_rules(startX: usize, startY: usize, endX: usize, endY: usize, startingTile: Tile, endingTile: Tile) -> bool{
[INFO] [stdout]    |                                                          ^^^^ help: convert the identifier to snake case: `end_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startingTile` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:54:71
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn pawn_rules(startX: usize, startY: usize, endX: usize, endY: usize, startingTile: Tile, endingTile: Tile) -> bool{
[INFO] [stdout]    |                                                                       ^^^^^^^^^^^^ help: convert the identifier to snake case: `starting_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endingTile` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:54:91
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn pawn_rules(startX: usize, startY: usize, endX: usize, endY: usize, startingTile: Tile, endingTile: Tile) -> bool{
[INFO] [stdout]    |                                                                                           ^^^^^^^^^^ help: convert the identifier to snake case: `ending_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startX` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:95:15
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn rook_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]    |               ^^^^^^ help: convert the identifier to snake case: `start_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startY` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:95:30
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn rook_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]    |                              ^^^^^^ help: convert the identifier to snake case: `start_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endX` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:95:45
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn rook_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]    |                                             ^^^^ help: convert the identifier to snake case: `end_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endY` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:95:58
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn rook_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]    |                                                          ^^^^ help: convert the identifier to snake case: `end_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:138:17
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn bishop_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case: `start_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:138:32
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn bishop_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]     |                                ^^^^^^ help: convert the identifier to snake case: `start_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:138:47
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn bishop_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]     |                                               ^^^^ help: convert the identifier to snake case: `end_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:138:60
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn bishop_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]     |                                                            ^^^^ help: convert the identifier to snake case: `end_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `offsetX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 139 |     let offsetX: i8 = (endX as i8) - (startX as i8);
[INFO] [stdout]     |         ^^^^^^^ help: convert the identifier to snake case: `offset_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `offsetY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     let offsetY: i8 = (endY as i8) - (startY as i8);
[INFO] [stdout]     |         ^^^^^^^ help: convert the identifier to snake case: `offset_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `goingDown` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |     let goingDown: bool = endY < startY;
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `going_down`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `goingLeft` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |     let goingLeft: bool = endX < startX;
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `going_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tmpX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |     let mut tmpX: usize = startX;
[INFO] [stdout]     |             ^^^^ help: convert the identifier to snake case: `tmp_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tmpY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:152:13
[INFO] [stdout]     |
[INFO] [stdout] 152 |     let mut tmpY: usize = startY;
[INFO] [stdout]     |             ^^^^ help: convert the identifier to snake case: `tmp_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn knight_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case: `start_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:169:32
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn knight_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |                                ^^^^^^ help: convert the identifier to snake case: `start_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:169:47
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn knight_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |                                               ^^^^ help: convert the identifier to snake case: `end_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:169:60
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn knight_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |                                                            ^^^^ help: convert the identifier to snake case: `end_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:181:15
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn king_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |               ^^^^^^ help: convert the identifier to snake case: `start_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:181:30
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn king_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |                              ^^^^^^ help: convert the identifier to snake case: `start_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:181:45
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn king_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |                                             ^^^^ help: convert the identifier to snake case: `end_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:181:58
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn king_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |                                                          ^^^^ help: convert the identifier to snake case: `end_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `toString` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/chess_types.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn toString(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^ help: convert the identifier to snake case: `to_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `lastMove` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/lib.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mut lastMove = vec![255, 255];
[INFO] [stdout]    |                 ^^^^^^^^ help: convert the identifier to snake case: `last_move`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `lastMove` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:136:17
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let mut lastMove = vec![from, to];
[INFO] [stdout]     |                 ^^^^^^^^ help: convert the identifier to snake case: `last_move`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> programs/solachess/src/lib.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mut lastMove = vec![255, 255];
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> programs/solachess/src/lib.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let mut grid = init_grid();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game_id`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:46:46
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn join_game(ctx: Context<JoinGame>, game_id: u64) -> Result<()> {
[INFO] [stdout]    |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> programs/solachess/src/lib.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let mut lastMove = vec![from, to];
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game_id`
[INFO] [stdout]   --> programs/solachess/src/lib.rs:74:37
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn play(ctx: Context<Play>, game_id: u64, from: u8, to: u8) -> Result<()> {
[INFO] [stdout]    |                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_x_between_y_z` is never used
[INFO] [stdout]  --> programs/solachess/src/rules.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn is_x_between_y_z(x: usize, y: usize, z: usize) -> bool {
[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 `is_move_legal` is never used
[INFO] [stdout]   --> programs/solachess/src/rules.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn is_move_legal(grid: &Vec<Tile>, from: usize, to: usize, colorPlaying: &Color) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pawn_rules` is never used
[INFO] [stdout]   --> programs/solachess/src/rules.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn pawn_rules(startX: usize, startY: usize, endX: usize, endY: usize, startingTile: Tile, endingTile: Tile) -> bool{
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rook_rules` is never used
[INFO] [stdout]   --> programs/solachess/src/rules.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn rook_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bishop_rules` is never used
[INFO] [stdout]    --> programs/solachess/src/rules.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn bishop_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `knight_rules` is never used
[INFO] [stdout]    --> programs/solachess/src/rules.rs:169:4
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn knight_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `king_rules` is never used
[INFO] [stdout]    --> programs/solachess/src/rules.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn king_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `colorPlaying` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:151:60
[INFO] [stdout]     |
[INFO] [stdout] 151 | fn is_move_legal(grid: &Vec<Tile>, from: usize, to: usize, colorPlaying: &Color) -> bool {
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^ help: convert the identifier to snake case: `color_playing`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> programs/solachess/src/lib.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> programs/solachess/src/lib.rs:152:43
[INFO] [stdout]     |
[INFO] [stdout] 152 |     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout]     |                                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startingTile` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     let startingTile = &grid[from];
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `starting_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `destinationTile` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     let destinationTile = &grid[to];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `destination_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `gameId` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:197:15
[INFO] [stdout]     |
[INFO] [stdout] 197 | #[instruction(gameId: u64)]
[INFO] [stdout]     |               ^^^^^^ help: convert the identifier to snake case: `game_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `gameId` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:206:15
[INFO] [stdout]     |
[INFO] [stdout] 206 | #[instruction(gameId: u64, from: u8, to: u8)]
[INFO] [stdout]     |               ^^^^^^ help: convert the identifier to snake case: `game_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `lastGameId` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:216:5
[INFO] [stdout]     |
[INFO] [stdout] 216 |     lastGameId: u64,
[INFO] [stdout]     |     ^^^^^^^^^^ help: convert the identifier to snake case: `last_game_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `lastMove` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 227 |     lastMove: Vec<u8>,    // 1 byte per u8, 2 u8 in the Vec, 4 bytes to store Vec size, so 6 bytes
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `last_move`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `colorPlaying` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:14:64
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn is_move_legal(grid: &Vec<Tile>, from: usize, to: usize, colorPlaying: &Color) -> bool {
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^ help: convert the identifier to snake case: `color_playing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> programs/solachess/src/rules.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> programs/solachess/src/rules.rs:17:43
[INFO] [stdout]    |
[INFO] [stdout] 17 |     if (from < 0 || from >= grid.len() || to < 0 || to >= grid.len()) {
[INFO] [stdout]    |                                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startX` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let startX: usize = from % 8;
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `start_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startY` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let startY: usize = from / 8;
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `start_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endX` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let endX: usize = to % 8;
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `end_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endY` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let endY: usize = to / 8;
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `end_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startingTile` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let startingTile = &grid[from];
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `starting_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endingTile` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let endingTile = &grid[to];
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `ending_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startX` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:54:15
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn pawn_rules(startX: usize, startY: usize, endX: usize, endY: usize, startingTile: Tile, endingTile: Tile) -> bool{
[INFO] [stdout]    |               ^^^^^^ help: convert the identifier to snake case: `start_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startY` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:54:30
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn pawn_rules(startX: usize, startY: usize, endX: usize, endY: usize, startingTile: Tile, endingTile: Tile) -> bool{
[INFO] [stdout]    |                              ^^^^^^ help: convert the identifier to snake case: `start_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endX` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:54:45
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn pawn_rules(startX: usize, startY: usize, endX: usize, endY: usize, startingTile: Tile, endingTile: Tile) -> bool{
[INFO] [stdout]    |                                             ^^^^ help: convert the identifier to snake case: `end_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endY` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:54:58
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn pawn_rules(startX: usize, startY: usize, endX: usize, endY: usize, startingTile: Tile, endingTile: Tile) -> bool{
[INFO] [stdout]    |                                                          ^^^^ help: convert the identifier to snake case: `end_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startingTile` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:54:71
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn pawn_rules(startX: usize, startY: usize, endX: usize, endY: usize, startingTile: Tile, endingTile: Tile) -> bool{
[INFO] [stdout]    |                                                                       ^^^^^^^^^^^^ help: convert the identifier to snake case: `starting_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endingTile` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:54:91
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn pawn_rules(startX: usize, startY: usize, endX: usize, endY: usize, startingTile: Tile, endingTile: Tile) -> bool{
[INFO] [stdout]    |                                                                                           ^^^^^^^^^^ help: convert the identifier to snake case: `ending_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startX` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:95:15
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn rook_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]    |               ^^^^^^ help: convert the identifier to snake case: `start_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startY` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:95:30
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn rook_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]    |                              ^^^^^^ help: convert the identifier to snake case: `start_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endX` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:95:45
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn rook_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]    |                                             ^^^^ help: convert the identifier to snake case: `end_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endY` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/rules.rs:95:58
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn rook_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]    |                                                          ^^^^ help: convert the identifier to snake case: `end_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:138:17
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn bishop_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case: `start_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:138:32
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn bishop_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]     |                                ^^^^^^ help: convert the identifier to snake case: `start_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:138:47
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn bishop_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]     |                                               ^^^^ help: convert the identifier to snake case: `end_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:138:60
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn bishop_rules(startX: usize, startY: usize, endX: usize, endY: usize, grid: Vec<Tile>) -> bool {
[INFO] [stdout]     |                                                            ^^^^ help: convert the identifier to snake case: `end_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `offsetX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 139 |     let offsetX: i8 = (endX as i8) - (startX as i8);
[INFO] [stdout]     |         ^^^^^^^ help: convert the identifier to snake case: `offset_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `offsetY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     let offsetY: i8 = (endY as i8) - (startY as i8);
[INFO] [stdout]     |         ^^^^^^^ help: convert the identifier to snake case: `offset_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `goingDown` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |     let goingDown: bool = endY < startY;
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `going_down`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `goingLeft` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |     let goingLeft: bool = endX < startX;
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `going_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tmpX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |     let mut tmpX: usize = startX;
[INFO] [stdout]     |             ^^^^ help: convert the identifier to snake case: `tmp_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tmpY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:152:13
[INFO] [stdout]     |
[INFO] [stdout] 152 |     let mut tmpY: usize = startY;
[INFO] [stdout]     |             ^^^^ help: convert the identifier to snake case: `tmp_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn knight_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case: `start_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:169:32
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn knight_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |                                ^^^^^^ help: convert the identifier to snake case: `start_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:169:47
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn knight_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |                                               ^^^^ help: convert the identifier to snake case: `end_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:169:60
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn knight_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |                                                            ^^^^ help: convert the identifier to snake case: `end_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:181:15
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn king_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |               ^^^^^^ help: convert the identifier to snake case: `start_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `startY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:181:30
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn king_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |                              ^^^^^^ help: convert the identifier to snake case: `start_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endX` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:181:45
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn king_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |                                             ^^^^ help: convert the identifier to snake case: `end_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `endY` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/rules.rs:181:58
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn king_rules(startX: usize, startY: usize, endX: usize, endY: usize) -> bool {
[INFO] [stdout]     |                                                          ^^^^ help: convert the identifier to snake case: `end_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `toString` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/chess_types.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn toString(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^ help: convert the identifier to snake case: `to_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `lastMove` should have a snake case name
[INFO] [stdout]   --> programs/solachess/src/lib.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mut lastMove = vec![255, 255];
[INFO] [stdout]    |                 ^^^^^^^^ help: convert the identifier to snake case: `last_move`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `lastMove` should have a snake case name
[INFO] [stdout]    --> programs/solachess/src/lib.rs:136:17
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let mut lastMove = vec![from, to];
[INFO] [stdout]     |                 ^^^^^^^^ help: convert the identifier to snake case: `last_move`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 59.28s
[INFO] running `Command { std: "docker" "inspect" "b1c60c5dbeb071bea86af7d446910739b83f0e637c03b4821b31c1abd29779cf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b1c60c5dbeb071bea86af7d446910739b83f0e637c03b4821b31c1abd29779cf", kill_on_drop: false }`
[INFO] [stdout] b1c60c5dbeb071bea86af7d446910739b83f0e637c03b4821b31c1abd29779cf
