[INFO] cloning repository https://github.com/codeandkey/nc-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/codeandkey/nc-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcodeandkey%2Fnc-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcodeandkey%2Fnc-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4a7766f3a7b1dad1cbcd3dcaaa55609d86fa5e02 [INFO] linting codeandkey/nc-rs against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcodeandkey%2Fnc-rs" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/codeandkey/nc-rs [INFO] finished tweaking git repo https://github.com/codeandkey/nc-rs [INFO] tweaked toml for git repo https://github.com/codeandkey/nc-rs written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/codeandkey/nc-rs on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/codeandkey/nc-rs already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded arr_macro v0.1.3 [INFO] [stderr] Downloaded pretty_env_logger v0.4.0 [INFO] [stderr] Downloaded arr_macro_impl v0.1.3 [INFO] [stderr] Downloaded hermit-abi v0.1.17 [INFO] [stderr] Downloaded ppv-lite86 v0.2.9 [INFO] [stderr] Downloaded regex v1.4.1 [INFO] [stderr] Downloaded aho-corasick v0.7.14 [INFO] [stderr] Downloaded libc v0.2.80 [INFO] [stderr] Downloaded regex-syntax v0.6.20 [INFO] [stderr] Downloaded syn v1.0.48 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d0eaf97412ddf234527d380f6ec41cacf92187b89abad17d08bfbb6dab1f7c4a [INFO] running `Command { std: "docker" "start" "-a" "d0eaf97412ddf234527d380f6ec41cacf92187b89abad17d08bfbb6dab1f7c4a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d0eaf97412ddf234527d380f6ec41cacf92187b89abad17d08bfbb6dab1f7c4a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d0eaf97412ddf234527d380f6ec41cacf92187b89abad17d08bfbb6dab1f7c4a", kill_on_drop: false }` [INFO] [stdout] d0eaf97412ddf234527d380f6ec41cacf92187b89abad17d08bfbb6dab1f7c4a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 07ef2213f6e49692057606475cba38779e62cb72f2c398c97be135d30336c434 [INFO] running `Command { std: "docker" "start" "-a" "07ef2213f6e49692057606475cba38779e62cb72f2c398c97be135d30336c434", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.80 [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Compiling getrandom v0.1.15 [INFO] [stderr] Compiling syn v1.0.48 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Checking thread_local v1.0.1 [INFO] [stderr] Checking regex-syntax v0.6.20 [INFO] [stderr] Checking humantime v1.3.0 [INFO] [stderr] Checking ppv-lite86 v0.2.9 [INFO] [stderr] Compiling proc-macro-hack v0.5.18 [INFO] [stderr] Checking termcolor v1.1.0 [INFO] [stderr] Checking aho-corasick v0.7.14 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking regex v1.4.1 [INFO] [stderr] Checking env_logger v0.7.1 [INFO] [stderr] Checking pretty_env_logger v0.4.0 [INFO] [stderr] Compiling arr_macro_impl v0.1.3 [INFO] [stderr] Checking arr_macro v0.1.3 [INFO] [stderr] Checking nc v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/piece.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | color: color, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `color` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::zobrist::*` [INFO] [stdout] --> src/position.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::zobrist::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/position.rs:192:13 [INFO] [stdout] | [INFO] [stdout] 192 | b: b, [INFO] [stdout] | ^^^^ help: replace it with: `b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/position.rs:193:13 [INFO] [stdout] | [INFO] [stdout] 193 | ctm: ctm, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `ctm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/position.rs:184:17 [INFO] [stdout] | [INFO] [stdout] 184 | ep_target: ep_target, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ep_target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/position.rs:187:17 [INFO] [stdout] | [INFO] [stdout] 187 | fm_number: fm_number, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fm_number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/position.rs:188:17 [INFO] [stdout] | [INFO] [stdout] 188 | hm_clock: hm_clock, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `hm_clock` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/piece.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | color: color, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `color` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::zobrist::*` [INFO] [stdout] --> src/position.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::zobrist::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/position.rs:192:13 [INFO] [stdout] | [INFO] [stdout] 192 | b: b, [INFO] [stdout] | ^^^^ help: replace it with: `b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/position.rs:193:13 [INFO] [stdout] | [INFO] [stdout] 193 | ctm: ctm, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `ctm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/position.rs:184:17 [INFO] [stdout] | [INFO] [stdout] 184 | ep_target: ep_target, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ep_target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/position.rs:187:17 [INFO] [stdout] | [INFO] [stdout] 187 | fm_number: fm_number, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fm_number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/position.rs:188:17 [INFO] [stdout] | [INFO] [stdout] 188 | hm_clock: hm_clock, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `hm_clock` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `remove`, `key`, `get_ad`, and `to_fen_string` are never used [INFO] [stdout] --> src/board.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl Board { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn remove(&mut self, s: Square) -> Piece { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn key(&self) -> u64 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn get_ad(&self) -> [[u64; 64]; 2] { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn to_fen_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `to_uci_withnull`, `from_uci`, `src`, `dst`, and `ptype` are never used [INFO] [stdout] --> src/gmove.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl Move { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn to_uci_withnull(inp: &Option) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn from_uci(inp: &String) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn src(&self) -> Square { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn dst(&self) -> Square { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn ptype(&self) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_fen` is never used [INFO] [stdout] --> src/piece.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl Color { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn to_fen(&self) -> char { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from` and `to_fen` are never used [INFO] [stdout] --> src/piece.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 75 | impl Piece { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 76 | pub fn from(t: Type, c: Color) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn to_fen(&self) -> char { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `to_fen`, `make_move`, `unmake_move`, and `perft` are never used [INFO] [stdout] --> src/position.rs:197:12 [INFO] [stdout] | [INFO] [stdout] 78 | impl Position { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 197 | pub fn to_fen(&self) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 236 | pub fn make_move(&mut self, m: Move) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 362 | pub fn unmake_move(&mut self, m: Move) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 625 | pub fn perft(&mut self, d: usize, p: usize) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CASTLE_ATT_MASKS` is never used [INFO] [stdout] --> src/position.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | pub const CASTLE_ATT_MASKS: [[u64; 2]; 2] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EAST` and `WEST` are never constructed [INFO] [stdout] --> src/square.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 1 | pub enum Direction { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 2 | EAST = 1, [INFO] [stdout] | ^^^^ [INFO] [stdout] 3 | WEST = -1, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `to_str_withnull`, `rank`, and `file` are never used [INFO] [stdout] --> src/square.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl Square { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn to_str_withnull(inp: &Option) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn rank(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn file(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gen_ep_keys` is never used [INFO] [stdout] --> src/zobrist.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn gen_ep_keys() -> [u64; 8] { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gen_castle_keys` is never used [INFO] [stdout] --> src/zobrist.rs:8:4 [INFO] [stdout] | [INFO] [stdout] 8 | fn gen_castle_keys() -> [[u64; 2]; 2] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `sq` is used to index `output` [INFO] [stdout] --> src/attacks.rs:573:15 [INFO] [stdout] | [INFO] [stdout] 573 | for sq in 0..64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 573 - for sq in 0..64 { [INFO] [stdout] 573 + for (sq, ) in output.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `sq` is used to index `output` [INFO] [stdout] --> src/attacks.rs:633:15 [INFO] [stdout] | [INFO] [stdout] 633 | for sq in 0..64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 633 - for sq in 0..64 { [INFO] [stdout] 633 + for (sq, ) in output.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/attacks.rs:728:5 [INFO] [stdout] | [INFO] [stdout] 728 | return output; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 728 - return output; [INFO] [stdout] 728 + output [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> src/attacks.rs:711:12 [INFO] [stdout] | [INFO] [stdout] 711 | if (index >> i) as u32 & 1 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `(index >> i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/board.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | assert!(!self.state[s.index()].is_some()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.state[s.index()].is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/gmove.rs:20:19 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn to_uci(&self) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.m_ptype` after checking its variant with `is_some` [INFO] [stdout] --> src/gmove.rs:25:22 [INFO] [stdout] | [INFO] [stdout] 24 | if self.m_ptype.is_some() { [INFO] [stdout] | ------------------------- help: try: `if let Some() = self.m_ptype` [INFO] [stdout] 25 | out.push(self.m_ptype.unwrap().to_fen()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/gmove.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | / if ptype.is_none() { [INFO] [stdout] 60 | | return None; [INFO] [stdout] 61 | | } [INFO] [stdout] | |_____________^ help: replace it with: `ptype?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/gmove.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | self.m_ptype.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.m_ptype` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `PAWN` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | PAWN = 0, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Pawn` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `BISHOP` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | BISHOP = 1, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Bishop` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `KNIGHT` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | KNIGHT = 2, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Knight` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ROOK` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | ROOK = 3, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Rook` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `QUEEN` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | QUEEN = 4, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Queen` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `KING` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | KING = 5, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `King` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/piece.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn to_fen(&self) -> char { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `WHITE` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | WHITE = 0, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `White` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `BLACK` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | BLACK = 1, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Black` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/piece.rs:53:19 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn to_fen(&self) -> char { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/piece.rs:80:19 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn to_fen(&self) -> char { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/piece.rs:84:13 [INFO] [stdout] | [INFO] [stdout] 84 | return tc.to_uppercase().collect::>()[0]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 84 - return tc.to_uppercase().collect::>()[0]; [INFO] [stdout] 84 + tc.to_uppercase().collect::>()[0] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/piece.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | return tc; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 86 - return tc; [INFO] [stdout] 86 + tc [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/piece.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | / if ptype.is_none() { [INFO] [stdout] 100 | | return None; [INFO] [stdout] 101 | | } [INFO] [stdout] | |_________^ help: replace it with: `ptype?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Color` which implements the `Copy` trait [INFO] [stdout] --> src/piece.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | self.color.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.color` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Type` which implements the `Copy` trait [INFO] [stdout] --> src/piece.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | self.ptype.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.ptype` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `QUEENSIDE` contains a capitalized acronym [INFO] [stdout] --> src/position.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | QUEENSIDE = 0, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Queenside` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `KINGSIDE` contains a capitalized acronym [INFO] [stdout] --> src/position.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | KINGSIDE = 1, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Kingside` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is used to index `ranks` [INFO] [stdout] --> src/position.rs:104:18 [INFO] [stdout] | [INFO] [stdout] 104 | for r in 0..8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 104 - for r in 0..8 { [INFO] [stdout] 104 + for (r, ) in ranks.iter().enumerate().take(8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/position.rs:113:20 [INFO] [stdout] | [INFO] [stdout] 113 | if c.is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/position.rs:119:55 [INFO] [stdout] | [INFO] [stdout] 119 | Some(p) => b.place(Square::at((7 - r) as usize, f as usize), p), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `((7 - r))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `last_state.ep_target` after checking its variant with `is_some` [INFO] [stdout] --> src/position.rs:261:31 [INFO] [stdout] | [INFO] [stdout] 259 | if last_state.ep_target.is_some() { [INFO] [stdout] | --------------------------------- help: try: `if let Some() = last_state.ep_target` [INFO] [stdout] 260 | if self.b.piece_occ(Type::PAWN) & m.src().mask() != 0u64 [INFO] [stdout] 261 | && m.dst() == last_state.ep_target.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `last_state.ep_target` after checking its variant with `is_some` [INFO] [stdout] --> src/position.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 259 | if last_state.ep_target.is_some() { [INFO] [stdout] | --------------------------------- help: try: `if let Some() = last_state.ep_target` [INFO] [stdout] ... [INFO] [stdout] 265 | (last_state.ep_target.unwrap().index() as i32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Move` which implements the `Copy` trait [INFO] [stdout] --> src/position.rs:245:36 [INFO] [stdout] | [INFO] [stdout] 245 | new_state.last_move = Some(m.clone()); [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `m` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/position.rs:259:9 [INFO] [stdout] | [INFO] [stdout] 259 | / if last_state.ep_target.is_some() { [INFO] [stdout] 260 | | if self.b.piece_occ(Type::PAWN) & m.src().mask() != 0u64 [INFO] [stdout] 261 | | && m.dst() == last_state.ep_target.unwrap() [INFO] [stdout] ... | [INFO] [stdout] 273 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 259 ~ if last_state.ep_target.is_some() [INFO] [stdout] 260 ~ && self.b.piece_occ(Type::PAWN) & m.src().mask() != 0u64 [INFO] [stdout] 261 | && m.dst() == last_state.ep_target.unwrap() [INFO] [stdout] ... [INFO] [stdout] 271 | new_state.capture_square = Some(ep_square); [INFO] [stdout] 272 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/position.rs:324:9 [INFO] [stdout] | [INFO] [stdout] 324 | / if self.b.piece_occ(Type::PAWN) & m.src().mask() != 0u64 { [INFO] [stdout] 325 | | if (m.dst().rank() as i32 - m.src().rank() as i32).abs() > 1 { [INFO] [stdout] 326 | | new_state.ep_target = Some(Square::at( [INFO] [stdout] 327 | | (m.src().rank() + m.dst().rank()) / 2, [INFO] [stdout] ... | [INFO] [stdout] 331 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 324 ~ if self.b.piece_occ(Type::PAWN) & m.src().mask() != 0u64 [INFO] [stdout] 325 ~ && (m.dst().rank() as i32 - m.src().rank() as i32).abs() > 1 { [INFO] [stdout] 326 | new_state.ep_target = Some(Square::at( [INFO] [stdout] ... [INFO] [stdout] 329 | )); [INFO] [stdout] 330 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/position.rs:369:9 [INFO] [stdout] | [INFO] [stdout] 369 | / if self.b.piece_occ(Type::KING) & m.dst().mask() != 0u64 { [INFO] [stdout] 370 | | if (m.src().file() as i32 - m.dst().file() as i32).abs() > 1 { [INFO] [stdout] 371 | | let castle_side = match m.dst().file() { [INFO] [stdout] 372 | | 2 => Castling::QUEENSIDE, [INFO] [stdout] ... | [INFO] [stdout] 389 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 369 ~ if self.b.piece_occ(Type::KING) & m.dst().mask() != 0u64 [INFO] [stdout] 370 ~ && (m.src().file() as i32 - m.dst().file() as i32).abs() > 1 { [INFO] [stdout] 371 | let castle_side = match m.dst().file() { [INFO] [stdout] ... [INFO] [stdout] 387 | } [INFO] [stdout] 388 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/position.rs:402:9 [INFO] [stdout] | [INFO] [stdout] 402 | / match last_state.capture_square { [INFO] [stdout] 403 | | Some(sq) => { [INFO] [stdout] 404 | | self.b.place(sq, last_state.captured.unwrap()); [INFO] [stdout] ... | [INFO] [stdout] 407 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 402 ~ if let Some(sq) = last_state.capture_square { [INFO] [stdout] 403 + self.b.place(sq, last_state.captured.unwrap()); [INFO] [stdout] 404 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/position.rs:594:9 [INFO] [stdout] | [INFO] [stdout] 594 | / if top.castling[self.ctm as usize][Castling::QUEENSIDE as usize] { [INFO] [stdout] 595 | | if self.b.global_occ() [INFO] [stdout] 596 | | & movegen::CASTLE_OCC_MASKS[self.ctm as usize][Castling::QUEENSIDE as usize] [INFO] [stdout] 597 | | == 0u64 [INFO] [stdout] ... | [INFO] [stdout] 606 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 594 ~ if top.castling[self.ctm as usize][Castling::QUEENSIDE as usize] [INFO] [stdout] 595 ~ && self.b.global_occ() [INFO] [stdout] 596 | & movegen::CASTLE_OCC_MASKS[self.ctm as usize][Castling::QUEENSIDE as usize] [INFO] [stdout] ... [INFO] [stdout] 604 | output.push(Move::new(Square::at(rank, 4), Square::at(rank, 2), None)); [INFO] [stdout] 605 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/position.rs:608:9 [INFO] [stdout] | [INFO] [stdout] 608 | / if top.castling[self.ctm as usize][Castling::KINGSIDE as usize] { [INFO] [stdout] 609 | | if self.b.global_occ() [INFO] [stdout] 610 | | & movegen::CASTLE_OCC_MASKS[self.ctm as usize][Castling::KINGSIDE as usize] [INFO] [stdout] 611 | | == 0u64 [INFO] [stdout] ... | [INFO] [stdout] 620 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 608 ~ if top.castling[self.ctm as usize][Castling::KINGSIDE as usize] [INFO] [stdout] 609 ~ && self.b.global_occ() [INFO] [stdout] 610 | & movegen::CASTLE_OCC_MASKS[self.ctm as usize][Castling::KINGSIDE as usize] [INFO] [stdout] ... [INFO] [stdout] 618 | output.push(Move::new(Square::at(rank, 4), Square::at(rank, 6), None)); [INFO] [stdout] 619 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Move` which implements the `Copy` trait [INFO] [stdout] --> src/position.rs:634:31 [INFO] [stdout] | [INFO] [stdout] 634 | if self.make_move(m.clone()) { [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `m` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter is only used in recursion [INFO] [stdout] --> src/position.rs:625:39 [INFO] [stdout] | [INFO] [stdout] 625 | pub fn perft(&mut self, d: usize, p: usize) -> usize { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> src/position.rs:635:44 [INFO] [stdout] | [INFO] [stdout] 635 | let rs = self.perft(d - 1, p + 1); [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#only_used_in_recursion [INFO] [stdout] = note: `#[warn(clippy::only_used_in_recursion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EAST` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | EAST = 1, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `East` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `WEST` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | WEST = -1, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `West` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NORTH` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | NORTH = 8, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `North` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SOUTH` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | SOUTH = -8, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `South` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NORTHWEST` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | NORTHWEST = 7, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Northwest` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NORTHEAST` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | NORTHEAST = 9, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Northeast` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SOUTHWEST` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | SOUTHWEST = -9, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Southwest` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SOUTHEAST` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | SOUTHEAST = -7, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Southeast` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/square.rs:31:19 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn to_str(&self) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting a character literal to `u8` truncates [INFO] [stdout] --> src/square.rs:34:19 [INFO] [stdout] | [INFO] [stdout] 34 | out.push((('a' as u8) + self.f as u8) as char); [INFO] [stdout] | ^^^^^^^^^^^ help: use a byte literal instead: `b'a'` [INFO] [stdout] | [INFO] [stdout] = note: `char` is four bytes wide, but `u8` is a single byte [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stdout] = note: `#[warn(clippy::char_lit_as_u8)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting a character literal to `u8` truncates [INFO] [stdout] --> src/square.rs:35:19 [INFO] [stdout] | [INFO] [stdout] 35 | out.push((('1' as u8) + self.r as u8) as char); [INFO] [stdout] | ^^^^^^^^^^^ help: use a byte literal instead: `b'1'` [INFO] [stdout] | [INFO] [stdout] = note: `char` is four bytes wide, but `u8` is a single byte [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!Range::contains` implementation [INFO] [stdout] --> src/square.rs:48:37 [INFO] [stdout] | [INFO] [stdout] 48 | if file < 0 || file >= 8 || rank < 0 || rank >= 8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `!(0..8).contains(&rank)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!Range::contains` implementation [INFO] [stdout] --> src/square.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | if file < 0 || file >= 8 || rank < 0 || rank >= 8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `!(0..8).contains(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u64` is unnecessary [INFO] [stdout] --> src/square.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 79 | (1 as u64) << self.ind [INFO] [stdout] | ^^^^^^^^^^ help: try: `1_u64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `s` is only used to index `out` [INFO] [stdout] --> src/zobrist.rs:17:14 [INFO] [stdout] | [INFO] [stdout] 17 | for s in 0..64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 17 - for s in 0..64 { [INFO] [stdout] 17 + for in &mut out { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EAST` and `WEST` are never constructed [INFO] [stdout] --> src/square.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 1 | pub enum Direction { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 2 | EAST = 1, [INFO] [stdout] | ^^^^ [INFO] [stdout] 3 | WEST = -1, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `sq` is used to index `output` [INFO] [stdout] --> src/attacks.rs:573:15 [INFO] [stdout] | [INFO] [stdout] 573 | for sq in 0..64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 573 - for sq in 0..64 { [INFO] [stdout] 573 + for (sq, ) in output.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `sq` is used to index `output` [INFO] [stdout] --> src/attacks.rs:633:15 [INFO] [stdout] | [INFO] [stdout] 633 | for sq in 0..64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 633 - for sq in 0..64 { [INFO] [stdout] 633 + for (sq, ) in output.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/attacks.rs:728:5 [INFO] [stdout] | [INFO] [stdout] 728 | return output; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 728 - return output; [INFO] [stdout] 728 + output [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> src/attacks.rs:711:12 [INFO] [stdout] | [INFO] [stdout] 711 | if (index >> i) as u32 & 1 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `(index >> i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/board.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | assert!(!self.state[s.index()].is_some()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.state[s.index()].is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/gmove.rs:20:19 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn to_uci(&self) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.m_ptype` after checking its variant with `is_some` [INFO] [stdout] --> src/gmove.rs:25:22 [INFO] [stdout] | [INFO] [stdout] 24 | if self.m_ptype.is_some() { [INFO] [stdout] | ------------------------- help: try: `if let Some() = self.m_ptype` [INFO] [stdout] 25 | out.push(self.m_ptype.unwrap().to_fen()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/gmove.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | / if ptype.is_none() { [INFO] [stdout] 60 | | return None; [INFO] [stdout] 61 | | } [INFO] [stdout] | |_____________^ help: replace it with: `ptype?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/gmove.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | self.m_ptype.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.m_ptype` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `PAWN` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | PAWN = 0, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Pawn` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `BISHOP` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | BISHOP = 1, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Bishop` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `KNIGHT` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | KNIGHT = 2, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Knight` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ROOK` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | ROOK = 3, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Rook` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `QUEEN` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | QUEEN = 4, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Queen` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `KING` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | KING = 5, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `King` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/piece.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn to_fen(&self) -> char { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `WHITE` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | WHITE = 0, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `White` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `BLACK` contains a capitalized acronym [INFO] [stdout] --> src/piece.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | BLACK = 1, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Black` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/piece.rs:53:19 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn to_fen(&self) -> char { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/piece.rs:80:19 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn to_fen(&self) -> char { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/piece.rs:84:13 [INFO] [stdout] | [INFO] [stdout] 84 | return tc.to_uppercase().collect::>()[0]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 84 - return tc.to_uppercase().collect::>()[0]; [INFO] [stdout] 84 + tc.to_uppercase().collect::>()[0] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/piece.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | return tc; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 86 - return tc; [INFO] [stdout] 86 + tc [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/piece.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | / if ptype.is_none() { [INFO] [stdout] 100 | | return None; [INFO] [stdout] 101 | | } [INFO] [stdout] | |_________^ help: replace it with: `ptype?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Color` which implements the `Copy` trait [INFO] [stdout] --> src/piece.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | self.color.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.color` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Type` which implements the `Copy` trait [INFO] [stdout] --> src/piece.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | self.ptype.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.ptype` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `QUEENSIDE` contains a capitalized acronym [INFO] [stdout] --> src/position.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | QUEENSIDE = 0, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Queenside` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `KINGSIDE` contains a capitalized acronym [INFO] [stdout] --> src/position.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | KINGSIDE = 1, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Kingside` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is used to index `ranks` [INFO] [stdout] --> src/position.rs:104:18 [INFO] [stdout] | [INFO] [stdout] 104 | for r in 0..8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 104 - for r in 0..8 { [INFO] [stdout] 104 + for (r, ) in ranks.iter().enumerate().take(8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/position.rs:113:20 [INFO] [stdout] | [INFO] [stdout] 113 | if c.is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/position.rs:119:55 [INFO] [stdout] | [INFO] [stdout] 119 | Some(p) => b.place(Square::at((7 - r) as usize, f as usize), p), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `((7 - r))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `last_state.ep_target` after checking its variant with `is_some` [INFO] [stdout] --> src/position.rs:261:31 [INFO] [stdout] | [INFO] [stdout] 259 | if last_state.ep_target.is_some() { [INFO] [stdout] | --------------------------------- help: try: `if let Some() = last_state.ep_target` [INFO] [stdout] 260 | if self.b.piece_occ(Type::PAWN) & m.src().mask() != 0u64 [INFO] [stdout] 261 | && m.dst() == last_state.ep_target.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `last_state.ep_target` after checking its variant with `is_some` [INFO] [stdout] --> src/position.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 259 | if last_state.ep_target.is_some() { [INFO] [stdout] | --------------------------------- help: try: `if let Some() = last_state.ep_target` [INFO] [stdout] ... [INFO] [stdout] 265 | (last_state.ep_target.unwrap().index() as i32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Move` which implements the `Copy` trait [INFO] [stdout] --> src/position.rs:245:36 [INFO] [stdout] | [INFO] [stdout] 245 | new_state.last_move = Some(m.clone()); [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `m` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/position.rs:259:9 [INFO] [stdout] | [INFO] [stdout] 259 | / if last_state.ep_target.is_some() { [INFO] [stdout] 260 | | if self.b.piece_occ(Type::PAWN) & m.src().mask() != 0u64 [INFO] [stdout] 261 | | && m.dst() == last_state.ep_target.unwrap() [INFO] [stdout] ... | [INFO] [stdout] 273 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 259 ~ if last_state.ep_target.is_some() [INFO] [stdout] 260 ~ && self.b.piece_occ(Type::PAWN) & m.src().mask() != 0u64 [INFO] [stdout] 261 | && m.dst() == last_state.ep_target.unwrap() [INFO] [stdout] ... [INFO] [stdout] 271 | new_state.capture_square = Some(ep_square); [INFO] [stdout] 272 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/position.rs:324:9 [INFO] [stdout] | [INFO] [stdout] 324 | / if self.b.piece_occ(Type::PAWN) & m.src().mask() != 0u64 { [INFO] [stdout] 325 | | if (m.dst().rank() as i32 - m.src().rank() as i32).abs() > 1 { [INFO] [stdout] 326 | | new_state.ep_target = Some(Square::at( [INFO] [stdout] 327 | | (m.src().rank() + m.dst().rank()) / 2, [INFO] [stdout] ... | [INFO] [stdout] 331 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 324 ~ if self.b.piece_occ(Type::PAWN) & m.src().mask() != 0u64 [INFO] [stdout] 325 ~ && (m.dst().rank() as i32 - m.src().rank() as i32).abs() > 1 { [INFO] [stdout] 326 | new_state.ep_target = Some(Square::at( [INFO] [stdout] ... [INFO] [stdout] 329 | )); [INFO] [stdout] 330 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/position.rs:369:9 [INFO] [stdout] | [INFO] [stdout] 369 | / if self.b.piece_occ(Type::KING) & m.dst().mask() != 0u64 { [INFO] [stdout] 370 | | if (m.src().file() as i32 - m.dst().file() as i32).abs() > 1 { [INFO] [stdout] 371 | | let castle_side = match m.dst().file() { [INFO] [stdout] 372 | | 2 => Castling::QUEENSIDE, [INFO] [stdout] ... | [INFO] [stdout] 389 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 369 ~ if self.b.piece_occ(Type::KING) & m.dst().mask() != 0u64 [INFO] [stdout] 370 ~ && (m.src().file() as i32 - m.dst().file() as i32).abs() > 1 { [INFO] [stdout] 371 | let castle_side = match m.dst().file() { [INFO] [stdout] ... [INFO] [stdout] 387 | } [INFO] [stdout] 388 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/position.rs:402:9 [INFO] [stdout] | [INFO] [stdout] 402 | / match last_state.capture_square { [INFO] [stdout] 403 | | Some(sq) => { [INFO] [stdout] 404 | | self.b.place(sq, last_state.captured.unwrap()); [INFO] [stdout] ... | [INFO] [stdout] 407 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 402 ~ if let Some(sq) = last_state.capture_square { [INFO] [stdout] 403 + self.b.place(sq, last_state.captured.unwrap()); [INFO] [stdout] 404 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/position.rs:594:9 [INFO] [stdout] | [INFO] [stdout] 594 | / if top.castling[self.ctm as usize][Castling::QUEENSIDE as usize] { [INFO] [stdout] 595 | | if self.b.global_occ() [INFO] [stdout] 596 | | & movegen::CASTLE_OCC_MASKS[self.ctm as usize][Castling::QUEENSIDE as usize] [INFO] [stdout] 597 | | == 0u64 [INFO] [stdout] ... | [INFO] [stdout] 606 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 594 ~ if top.castling[self.ctm as usize][Castling::QUEENSIDE as usize] [INFO] [stdout] 595 ~ && self.b.global_occ() [INFO] [stdout] 596 | & movegen::CASTLE_OCC_MASKS[self.ctm as usize][Castling::QUEENSIDE as usize] [INFO] [stdout] ... [INFO] [stdout] 604 | output.push(Move::new(Square::at(rank, 4), Square::at(rank, 2), None)); [INFO] [stdout] 605 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/position.rs:608:9 [INFO] [stdout] | [INFO] [stdout] 608 | / if top.castling[self.ctm as usize][Castling::KINGSIDE as usize] { [INFO] [stdout] 609 | | if self.b.global_occ() [INFO] [stdout] 610 | | & movegen::CASTLE_OCC_MASKS[self.ctm as usize][Castling::KINGSIDE as usize] [INFO] [stdout] 611 | | == 0u64 [INFO] [stdout] ... | [INFO] [stdout] 620 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 608 ~ if top.castling[self.ctm as usize][Castling::KINGSIDE as usize] [INFO] [stdout] 609 ~ && self.b.global_occ() [INFO] [stdout] 610 | & movegen::CASTLE_OCC_MASKS[self.ctm as usize][Castling::KINGSIDE as usize] [INFO] [stdout] ... [INFO] [stdout] 618 | output.push(Move::new(Square::at(rank, 4), Square::at(rank, 6), None)); [INFO] [stdout] 619 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Move` which implements the `Copy` trait [INFO] [stdout] --> src/position.rs:634:31 [INFO] [stdout] | [INFO] [stdout] 634 | if self.make_move(m.clone()) { [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `m` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter is only used in recursion [INFO] [stdout] --> src/position.rs:625:39 [INFO] [stdout] | [INFO] [stdout] 625 | pub fn perft(&mut self, d: usize, p: usize) -> usize { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> src/position.rs:635:44 [INFO] [stdout] | [INFO] [stdout] 635 | let rs = self.perft(d - 1, p + 1); [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#only_used_in_recursion [INFO] [stdout] = note: `#[warn(clippy::only_used_in_recursion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Move` which implements the `Copy` trait [INFO] [stdout] --> src/position.rs:827:25 [INFO] [stdout] | [INFO] [stdout] 827 | p.make_move(m.clone()); [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `m` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EAST` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | EAST = 1, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `East` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `WEST` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | WEST = -1, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `West` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NORTH` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | NORTH = 8, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `North` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SOUTH` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | SOUTH = -8, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `South` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NORTHWEST` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | NORTHWEST = 7, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Northwest` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NORTHEAST` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | NORTHEAST = 9, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Northeast` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SOUTHWEST` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | SOUTHWEST = -9, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Southwest` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SOUTHEAST` contains a capitalized acronym [INFO] [stdout] --> src/square.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | SOUTHEAST = -7, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Southeast` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/square.rs:31:19 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn to_str(&self) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting a character literal to `u8` truncates [INFO] [stdout] --> src/square.rs:34:19 [INFO] [stdout] | [INFO] [stdout] 34 | out.push((('a' as u8) + self.f as u8) as char); [INFO] [stdout] | ^^^^^^^^^^^ help: use a byte literal instead: `b'a'` [INFO] [stdout] | [INFO] [stdout] = note: `char` is four bytes wide, but `u8` is a single byte [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stdout] = note: `#[warn(clippy::char_lit_as_u8)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting a character literal to `u8` truncates [INFO] [stdout] --> src/square.rs:35:19 [INFO] [stdout] | [INFO] [stdout] 35 | out.push((('1' as u8) + self.r as u8) as char); [INFO] [stdout] | ^^^^^^^^^^^ help: use a byte literal instead: `b'1'` [INFO] [stdout] | [INFO] [stdout] = note: `char` is four bytes wide, but `u8` is a single byte [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!Range::contains` implementation [INFO] [stdout] --> src/square.rs:48:37 [INFO] [stdout] | [INFO] [stdout] 48 | if file < 0 || file >= 8 || rank < 0 || rank >= 8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `!(0..8).contains(&rank)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!Range::contains` implementation [INFO] [stdout] --> src/square.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | if file < 0 || file >= 8 || rank < 0 || rank >= 8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `!(0..8).contains(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u64` is unnecessary [INFO] [stdout] --> src/square.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 79 | (1 as u64) << self.ind [INFO] [stdout] | ^^^^^^^^^^ help: try: `1_u64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `s` is only used to index `out` [INFO] [stdout] --> src/zobrist.rs:17:14 [INFO] [stdout] | [INFO] [stdout] 17 | for s in 0..64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 17 - for s in 0..64 { [INFO] [stdout] 17 + for in &mut out { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.39s [INFO] running `Command { std: "docker" "inspect" "07ef2213f6e49692057606475cba38779e62cb72f2c398c97be135d30336c434", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "07ef2213f6e49692057606475cba38779e62cb72f2c398c97be135d30336c434", kill_on_drop: false }` [INFO] [stdout] 07ef2213f6e49692057606475cba38779e62cb72f2c398c97be135d30336c434