[INFO] fetching crate shuuro 1.1.8... [INFO] linting shuuro-1.1.8 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate shuuro 1.1.8 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate shuuro 1.1.8 [INFO] finished tweaking crates.io crate shuuro 1.1.8 [INFO] tweaked toml for crates.io crate shuuro 1.1.8 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate shuuro 1.1.8 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 crates.io crate shuuro 1.1.8 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] Downloading crates ... [INFO] [stderr] Downloaded zerocopy-derive v0.7.35 [INFO] [stderr] Downloaded unicode-ident v1.0.14 [INFO] [stderr] Downloaded either v1.13.0 [INFO] [stderr] Downloaded getrandom v0.2.15 [INFO] [stderr] Downloaded proc-macro2 v1.0.94 [INFO] [stderr] Downloaded zerocopy v0.7.35 [INFO] [stderr] Downloaded syn v2.0.90 [INFO] [stderr] Downloaded ppv-lite86 v0.2.20 [INFO] [stderr] Downloaded libc v0.2.167 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] fc0be34e357c2adfdf5405c04d1973f17424f4b8eadd79d6624b2bcd591eda5f [INFO] running `Command { std: "docker" "start" "-a" "fc0be34e357c2adfdf5405c04d1973f17424f4b8eadd79d6624b2bcd591eda5f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fc0be34e357c2adfdf5405c04d1973f17424f4b8eadd79d6624b2bcd591eda5f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fc0be34e357c2adfdf5405c04d1973f17424f4b8eadd79d6624b2bcd591eda5f", kill_on_drop: false }` [INFO] [stdout] fc0be34e357c2adfdf5405c04d1973f17424f4b8eadd79d6624b2bcd591eda5f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 9dbd797e9f3a6e9c741356cda9d4d95db87d69527b955da7137449152cd0456f [INFO] running `Command { std: "docker" "start" "-a" "9dbd797e9f3a6e9c741356cda9d4d95db87d69527b955da7137449152cd0456f", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.94 [INFO] [stderr] Compiling unicode-ident v1.0.14 [INFO] [stderr] Compiling libc v0.2.167 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Compiling syn v2.0.90 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking shuuro v1.1.8 (/opt/rustwide/workdir) [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/shuuro_rules/color.rs:69:1 [INFO] [stdout] | [INFO] [stdout] 69 | / impl ToString for Color { [INFO] [stdout] 70 | | fn to_string(&self) -> String { [INFO] [stdout] 71 | | match self { [INFO] [stdout] 72 | | Color::White => String::from("w"), [INFO] [stdout] ... | [INFO] [stdout] 77 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/shuuro_rules/moves.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | if !select_move.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `select_move.is_some()` [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: this boolean expression can be simplified [INFO] [stdout] --> src/shuuro_rules/moves.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | if !place_move.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `place_move.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/shuuro_rules/moves.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | if !normal_move.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `normal_move.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/shuuro_rules/moves.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 155 | / return format!( [INFO] [stdout] 156 | | "{}{}{}{}{}{}", [INFO] [stdout] 157 | | piece, same, captures, move_to, promote, action [INFO] [stdout] 158 | | ); [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] 155 ~ format!( [INFO] [stdout] 156 + "{}{}{}{}{}{}", [INFO] [stdout] 157 + piece, same, captures, move_to, promote, action [INFO] [stdout] 158 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/shuuro_rules/moves.rs:131:45 [INFO] [stdout] | [INFO] [stdout] 131 | let file = self.same_format(&from, 0, false); [INFO] [stdout] | ^^^^^ help: change this to: `from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/shuuro_rules/moves.rs:132:45 [INFO] [stdout] | [INFO] [stdout] 132 | let rank = self.same_format(&from, 1, true); [INFO] [stdout] | ^^^^^ help: change this to: `from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/shuuro_rules/moves.rs:135:34 [INFO] [stdout] | [INFO] [stdout] 135 | self.same_format(&from, 1, true) [INFO] [stdout] | ^^^^^ help: change this to: `from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/shuuro_rules/moves.rs:146:53 [INFO] [stdout] | [INFO] [stdout] 146 | format!("{}x", self.same_format(&from, 0, false)) [INFO] [stdout] | ^^^^^ help: change this to: `from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/shuuro_rules/position.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | / impl ToString for Outcome { [INFO] [stdout] 32 | | fn to_string(&self) -> String { [INFO] [stdout] 33 | | match &self { [INFO] [stdout] 34 | | Outcome::Check { color } => { [INFO] [stdout] ... | [INFO] [stdout] 57 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> src/shuuro_rules/position.rs:153:20 [INFO] [stdout] | [INFO] [stdout] 153 | if let Ok(_) = m { [INFO] [stdout] | -------^^^^^---- help: try: `if m.is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/shuuro_rules/position.rs:312:12 [INFO] [stdout] | [INFO] [stdout] 312 | if number == "" { [INFO] [stdout] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `number.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/shuuro_rules/position.rs:321:47 [INFO] [stdout] | [INFO] [stdout] 321 | let sq = S::new(current_file, rank as u8) [INFO] [stdout] | ^^^^^^^^^^ help: try: `rank` [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: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/shuuro_rules/position.rs:379:55 [INFO] [stdout] | [INFO] [stdout] 379 | let sq = S::new(current_file, rank as u8) [INFO] [stdout] | ^^^^^^^^^^ help: try: `rank` [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: unneeded `return` statement [INFO] [stdout] --> src/shuuro_rules/position.rs:697:9 [INFO] [stdout] | [INFO] [stdout] 697 | return Some(record); [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] 697 - return Some(record); [INFO] [stdout] 697 + Some(record) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: immediately dereferencing a reference [INFO] [stdout] --> src/shuuro_rules/position.rs:657:19 [INFO] [stdout] | [INFO] [stdout] 657 | || !(**&self [INFO] [stdout] | ___________________^ [INFO] [stdout] 658 | | .get_placement_squares() [INFO] [stdout] 659 | | .get(&(p.piece_type as usize)) [INFO] [stdout] 660 | | .unwrap_or(&B::empty()) [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stdout] = note: `#[warn(clippy::deref_addrof)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 657 ~ || !(*self [INFO] [stdout] 658 + .get_placement_squares() [INFO] [stdout] 659 + .get(&(p.piece_type as usize)) [INFO] [stdout] 660 + .unwrap_or(&B::empty()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/shuuro_rules/position.rs:744:9 [INFO] [stdout] | [INFO] [stdout] 744 | return Ok(self.outcome()); [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] 744 - return Ok(self.outcome()); [INFO] [stdout] 744 + Ok(self.outcome()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/shuuro_rules/position.rs:993:19 [INFO] [stdout] | [INFO] [stdout] 993 | } else if self.is_hand_empty(self.side_to_move(), PieceType::Plinth) [INFO] [stdout] | ___________________^ [INFO] [stdout] 994 | | == false [INFO] [stdout] | |____________________^ help: try: `!self.is_hand_empty(self.side_to_move(), PieceType::Plinth)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/shuuro_rules/position.rs:1395:9 [INFO] [stdout] | [INFO] [stdout] 1395 | return Some(moves); [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] 1395 - return Some(moves); [INFO] [stdout] 1395 + Some(moves) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/shuuro_rules/position.rs:1431:9 [INFO] [stdout] | [INFO] [stdout] 1431 | return self.moves.front().unwrap().clone(); [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] 1431 - return self.moves.front().unwrap().clone(); [INFO] [stdout] 1431 + self.moves.front().unwrap().clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/shuuro_rules/selection.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::u8; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `u8::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/shuuro_rules/variant.rs:78:1 [INFO] [stdout] | [INFO] [stdout] 78 | / impl ToString for Variant { [INFO] [stdout] 79 | | fn to_string(&self) -> String { [INFO] [stdout] 80 | | match &self { [INFO] [stdout] 81 | | Self::Shuuro => String::from("shuuro"), [INFO] [stdout] ... | [INFO] [stdout] 89 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/shuuro_rules/color.rs:69:1 [INFO] [stdout] | [INFO] [stdout] 69 | / impl ToString for Color { [INFO] [stdout] 70 | | fn to_string(&self) -> String { [INFO] [stdout] 71 | | match self { [INFO] [stdout] 72 | | Color::White => String::from("w"), [INFO] [stdout] ... | [INFO] [stdout] 77 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/shuuro_rules/moves.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | if !select_move.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `select_move.is_some()` [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: this boolean expression can be simplified [INFO] [stdout] --> src/shuuro_rules/moves.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | if !place_move.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `place_move.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/shuuro_rules/moves.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | if !normal_move.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `normal_move.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/shuuro_rules/moves.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 155 | / return format!( [INFO] [stdout] 156 | | "{}{}{}{}{}{}", [INFO] [stdout] 157 | | piece, same, captures, move_to, promote, action [INFO] [stdout] 158 | | ); [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] 155 ~ format!( [INFO] [stdout] 156 + "{}{}{}{}{}{}", [INFO] [stdout] 157 + piece, same, captures, move_to, promote, action [INFO] [stdout] 158 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/shuuro_rules/moves.rs:131:45 [INFO] [stdout] | [INFO] [stdout] 131 | let file = self.same_format(&from, 0, false); [INFO] [stdout] | ^^^^^ help: change this to: `from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/shuuro_rules/moves.rs:132:45 [INFO] [stdout] | [INFO] [stdout] 132 | let rank = self.same_format(&from, 1, true); [INFO] [stdout] | ^^^^^ help: change this to: `from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/shuuro_rules/moves.rs:135:34 [INFO] [stdout] | [INFO] [stdout] 135 | self.same_format(&from, 1, true) [INFO] [stdout] | ^^^^^ help: change this to: `from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/shuuro_rules/moves.rs:146:53 [INFO] [stdout] | [INFO] [stdout] 146 | format!("{}x", self.same_format(&from, 0, false)) [INFO] [stdout] | ^^^^^ help: change this to: `from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/shuuro_rules/position.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | / impl ToString for Outcome { [INFO] [stdout] 32 | | fn to_string(&self) -> String { [INFO] [stdout] 33 | | match &self { [INFO] [stdout] 34 | | Outcome::Check { color } => { [INFO] [stdout] ... | [INFO] [stdout] 57 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> src/shuuro_rules/position.rs:153:20 [INFO] [stdout] | [INFO] [stdout] 153 | if let Ok(_) = m { [INFO] [stdout] | -------^^^^^---- help: try: `if m.is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/shuuro_rules/position.rs:312:12 [INFO] [stdout] | [INFO] [stdout] 312 | if number == "" { [INFO] [stdout] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `number.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/shuuro_rules/position.rs:321:47 [INFO] [stdout] | [INFO] [stdout] 321 | let sq = S::new(current_file, rank as u8) [INFO] [stdout] | ^^^^^^^^^^ help: try: `rank` [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: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/shuuro_rules/position.rs:379:55 [INFO] [stdout] | [INFO] [stdout] 379 | let sq = S::new(current_file, rank as u8) [INFO] [stdout] | ^^^^^^^^^^ help: try: `rank` [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: unneeded `return` statement [INFO] [stdout] --> src/shuuro_rules/position.rs:697:9 [INFO] [stdout] | [INFO] [stdout] 697 | return Some(record); [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] 697 - return Some(record); [INFO] [stdout] 697 + Some(record) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: immediately dereferencing a reference [INFO] [stdout] --> src/shuuro_rules/position.rs:657:19 [INFO] [stdout] | [INFO] [stdout] 657 | || !(**&self [INFO] [stdout] | ___________________^ [INFO] [stdout] 658 | | .get_placement_squares() [INFO] [stdout] 659 | | .get(&(p.piece_type as usize)) [INFO] [stdout] 660 | | .unwrap_or(&B::empty()) [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stdout] = note: `#[warn(clippy::deref_addrof)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 657 ~ || !(*self [INFO] [stdout] 658 + .get_placement_squares() [INFO] [stdout] 659 + .get(&(p.piece_type as usize)) [INFO] [stdout] 660 + .unwrap_or(&B::empty()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/shuuro_rules/position.rs:744:9 [INFO] [stdout] | [INFO] [stdout] 744 | return Ok(self.outcome()); [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] 744 - return Ok(self.outcome()); [INFO] [stdout] 744 + Ok(self.outcome()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/shuuro_rules/position.rs:993:19 [INFO] [stdout] | [INFO] [stdout] 993 | } else if self.is_hand_empty(self.side_to_move(), PieceType::Plinth) [INFO] [stdout] | ___________________^ [INFO] [stdout] 994 | | == false [INFO] [stdout] | |____________________^ help: try: `!self.is_hand_empty(self.side_to_move(), PieceType::Plinth)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/shuuro_rules/position.rs:1395:9 [INFO] [stdout] | [INFO] [stdout] 1395 | return Some(moves); [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] 1395 - return Some(moves); [INFO] [stdout] 1395 + Some(moves) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/shuuro_rules/position.rs:1431:9 [INFO] [stdout] | [INFO] [stdout] 1431 | return self.moves.front().unwrap().clone(); [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] 1431 - return self.moves.front().unwrap().clone(); [INFO] [stdout] 1431 + self.moves.front().unwrap().clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/shuuro_rules/selection.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::u8; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `u8::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/shuuro_rules/variant.rs:78:1 [INFO] [stdout] | [INFO] [stdout] 78 | / impl ToString for Variant { [INFO] [stdout] 79 | | fn to_string(&self) -> String { [INFO] [stdout] 80 | | match &self { [INFO] [stdout] 81 | | Self::Shuuro => String::from("shuuro"), [INFO] [stdout] ... | [INFO] [stdout] 89 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [optimized + debuginfo] target(s) in 9.04s [INFO] running `Command { std: "docker" "inspect" "9dbd797e9f3a6e9c741356cda9d4d95db87d69527b955da7137449152cd0456f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9dbd797e9f3a6e9c741356cda9d4d95db87d69527b955da7137449152cd0456f", kill_on_drop: false }` [INFO] [stdout] 9dbd797e9f3a6e9c741356cda9d4d95db87d69527b955da7137449152cd0456f