[INFO] cloning repository https://github.com/kgz/lichess-stockfish [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kgz/lichess-stockfish" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkgz%2Flichess-stockfish", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkgz%2Flichess-stockfish'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4048e47795c38851eaae822573fec7fe2b1484bd [INFO] linting kgz/lichess-stockfish against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkgz%2Flichess-stockfish" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/kgz/lichess-stockfish [INFO] finished tweaking git repo https://github.com/kgz/lichess-stockfish [INFO] tweaked toml for git repo https://github.com/kgz/lichess-stockfish written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/kgz/lichess-stockfish 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/kgz/lichess-stockfish 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] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded typesize v0.1.7 [INFO] [stderr] Downloaded dsl_auto_type v0.1.2 [INFO] [stderr] Downloaded migrations_internals v2.2.0 [INFO] [stderr] Downloaded cargo-platform v0.1.8 [INFO] [stderr] Downloaded migrations_macros v2.2.0 [INFO] [stderr] Downloaded typesize-derive v0.1.7 [INFO] [stderr] Downloaded ravif v0.11.10 [INFO] [stderr] Downloaded diesel_migrations v2.2.0 [INFO] [stderr] Downloaded bytecount v0.6.8 [INFO] [stderr] Downloaded built v0.7.4 [INFO] [stderr] Downloaded rgb v0.8.48 [INFO] [stderr] Downloaded bitstream-io v2.5.0 [INFO] [stderr] Downloaded half v2.4.1 [INFO] [stderr] Downloaded diesel_derives v2.2.2 [INFO] [stderr] Downloaded flate2 v1.0.31 [INFO] [stderr] Downloaded libfuzzer-sys v0.4.7 [INFO] [stderr] Downloaded indexmap v2.3.0 [INFO] [stderr] Downloaded serde_json v1.0.122 [INFO] [stderr] Downloaded syn v2.0.73 [INFO] [stderr] Downloaded serde v1.0.206 [INFO] [stderr] Downloaded image-webp v0.1.3 [INFO] [stderr] Downloaded mysqlclient-sys v0.4.0 [INFO] [stderr] Downloaded image v0.25.2 [INFO] [stderr] Downloaded webpki-roots v0.26.3 [INFO] [stderr] Downloaded imgref v1.10.1 [INFO] [stderr] Downloaded bytemuck v1.16.3 [INFO] [stderr] Downloaded zune-jpeg v0.4.13 [INFO] [stderr] Downloaded serde_derive v1.0.206 [INFO] [stderr] Downloaded diesel v2.2.2 [INFO] [stderr] Downloaded cc v1.1.10 [INFO] [stderr] Downloaded camino v1.1.7 [INFO] [stderr] Downloaded triomphe v0.1.13 [INFO] [stderr] Downloaded command_attr v0.5.2 [INFO] [stderr] Downloaded tl v0.7.8 [INFO] [stderr] Downloaded arbitrary v1.3.2 [INFO] [stderr] Downloaded avif-serialize v0.8.1 [INFO] [stderr] Downloaded serenity v0.12.2 [INFO] [stderr] Downloaded tokio v1.39.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 6bf80680622f979489eb103ed255bd643e0988878b79da9b772589740a65d143 [INFO] running `Command { std: "docker" "start" "-a" "6bf80680622f979489eb103ed255bd643e0988878b79da9b772589740a65d143", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6bf80680622f979489eb103ed255bd643e0988878b79da9b772589740a65d143", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6bf80680622f979489eb103ed255bd643e0988878b79da9b772589740a65d143", kill_on_drop: false }` [INFO] [stdout] 6bf80680622f979489eb103ed255bd643e0988878b79da9b772589740a65d143 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] f6c420f844887ecc0ffc701268cf36d511539fd12daa7cc44eaa46f291db5648 [INFO] running `Command { std: "docker" "start" "-a" "f6c420f844887ecc0ffc701268cf36d511539fd12daa7cc44eaa46f291db5648", kill_on_drop: false }` [INFO] [stderr] Compiling serde v1.0.206 [INFO] [stderr] Compiling cc v1.1.10 [INFO] [stderr] Checking bytes v1.7.1 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Compiling pkg-config v0.3.30 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking mio v1.0.1 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking tinyvec v1.8.0 [INFO] [stderr] Checking simd-adler32 v0.3.7 [INFO] [stderr] Checking unicode-bidi v0.3.15 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Compiling unicase v2.7.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Checking miniz_oxide v0.7.4 [INFO] [stderr] Compiling openssl v0.10.66 [INFO] [stderr] Checking http v1.1.0 [INFO] [stderr] Checking indexmap v2.3.0 [INFO] [stderr] Compiling syn v2.0.73 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Checking unicode-normalization v0.1.23 [INFO] [stderr] Compiling anyhow v1.0.86 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking aligned-vec v0.5.0 [INFO] [stderr] Compiling winnow v0.6.18 [INFO] [stderr] Compiling built v0.7.4 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Checking flate2 v1.0.31 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Compiling mysqlclient-sys v0.4.0 [INFO] [stderr] Checking tower-layer v0.3.2 [INFO] [stderr] Compiling rav1e v0.7.1 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Checking bytemuck v1.16.3 [INFO] [stderr] Checking cpufeatures v0.2.13 [INFO] [stderr] Checking crossbeam-deque v0.8.5 [INFO] [stderr] Checking iana-time-zone v0.1.60 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Checking maybe-rayon v0.1.1 [INFO] [stderr] Checking encoding_rs v0.8.34 [INFO] [stderr] Compiling serde_json v1.0.122 [INFO] [stderr] Checking weezl v0.1.8 [INFO] [stderr] Checking rayon-core v1.12.1 [INFO] [stderr] Checking new_debug_unreachable v1.0.6 [INFO] [stderr] Checking bitstream-io v2.5.0 [INFO] [stderr] Checking quick-error v2.0.1 [INFO] [stderr] Compiling noop_proc_macro v0.3.0 [INFO] [stderr] Checking imgref v1.10.1 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking rgb v0.8.48 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking v_frame v0.3.8 [INFO] [stderr] Checking loop9 v0.1.5 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking zune-inflate v0.2.54 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking fdeflate v0.3.4 [INFO] [stderr] Checking webpki-roots v0.26.3 [INFO] [stderr] Checking flume v0.11.0 [INFO] [stderr] Checking half v2.4.1 [INFO] [stderr] Checking jpeg-decoder v0.3.1 [INFO] [stderr] Checking zune-core v0.4.12 [INFO] [stderr] Checking bit_field v0.10.2 [INFO] [stderr] Checking byteorder-lite v0.1.0 [INFO] [stderr] Checking lebe v0.5.2 [INFO] [stderr] Compiling serenity v0.12.2 [INFO] [stderr] Checking png v0.17.13 [INFO] [stderr] Checking zune-jpeg v0.4.13 [INFO] [stderr] Compiling ring v0.17.8 [INFO] [stderr] Compiling openssl-sys v0.9.103 [INFO] [stderr] Checking image-webp v0.1.3 [INFO] [stderr] Checking exr v1.72.0 [INFO] [stderr] Checking gif v0.13.1 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking rustls-pemfile v2.1.3 [INFO] [stderr] Compiling native-tls v0.2.12 [INFO] [stderr] Checking tiff v0.9.1 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Checking sync_wrapper v1.0.1 [INFO] [stderr] Checking uuid v0.8.2 [INFO] [stderr] Checking tl v0.7.8 [INFO] [stderr] Checking http-body-util v0.1.2 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Compiling rustls v0.22.4 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Compiling darling_core v0.20.10 [INFO] [stderr] Compiling diesel_table_macro_syntax v0.2.0 [INFO] [stderr] Checking rustls-webpki v0.101.7 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Checking rustls-webpki v0.102.6 [INFO] [stderr] Compiling serde_derive v1.0.206 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling pin-project-internal v1.1.5 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling profiling-procmacros v1.0.15 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling async-trait v0.1.81 [INFO] [stderr] Checking profiling v1.0.15 [INFO] [stderr] Checking tokio v1.39.2 [INFO] [stderr] Compiling command_attr v0.5.2 [INFO] [stderr] Checking pin-project v1.1.5 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking thiserror v1.0.63 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Compiling darling_macro v0.20.10 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling darling v0.20.10 [INFO] [stderr] Compiling dsl_auto_type v0.1.2 [INFO] [stderr] Compiling diesel_derives v2.2.2 [INFO] [stderr] Checking tokio-util v0.7.11 [INFO] [stderr] Checking tower v0.4.13 [INFO] [stderr] Checking tokio-rustls v0.24.1 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking tokio-rustls v0.25.0 [INFO] [stderr] Checking h2 v0.4.5 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking url v2.5.2 [INFO] [stderr] Checking arrayvec v0.7.4 [INFO] [stderr] Checking serde_spanned v0.6.7 [INFO] [stderr] Checking toml_datetime v0.6.8 [INFO] [stderr] Checking chrono v0.4.38 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Checking serde_cow v0.1.2 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stderr] Checking secrecy v0.8.0 [INFO] [stderr] Checking toml_edit v0.22.20 [INFO] [stderr] Checking av1-grain v0.2.3 [INFO] [stderr] Checking avif-serialize v0.8.1 [INFO] [stderr] Checking tungstenite v0.21.0 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking tokio-tungstenite v0.21.0 [INFO] [stderr] Checking diesel v2.2.2 [INFO] [stderr] Checking toml v0.8.19 [INFO] [stderr] Checking hyper v1.4.1 [INFO] [stderr] Checking migrations_internals v2.2.0 [INFO] [stderr] Checking hyper v0.14.30 [INFO] [stderr] Compiling migrations_macros v2.2.0 [INFO] [stderr] Checking hyper-util v0.1.7 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.5 [INFO] [stderr] Checking hyper-rustls v0.24.2 [INFO] [stderr] Checking ravif v0.11.10 [INFO] [stderr] Checking reqwest v0.11.27 [INFO] [stderr] Checking image v0.25.2 [INFO] [stderr] Checking diesel_migrations v2.2.0 [INFO] [stderr] Checking lichess-stockfish v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `num` [INFO] [stdout] --> src/board/mod.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{num, process::exit, sync::Arc}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num` [INFO] [stdout] --> src/board/mod.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{num, process::exit, sync::Arc}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/main.rs:210:13 [INFO] [stdout] | [INFO] [stdout] 210 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/main.rs:379:9 [INFO] [stdout] | [INFO] [stdout] 379 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/main.rs:210:13 [INFO] [stdout] | [INFO] [stdout] 210 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/main.rs:379:9 [INFO] [stdout] | [INFO] [stdout] 379 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `orientation_b` [INFO] [stdout] --> src/board/mod.rs:142:9 [INFO] [stdout] | [INFO] [stdout] 142 | let orientation_b = orientation_b.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_orientation_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `orientation_b` [INFO] [stdout] --> src/board/mod.rs:142:9 [INFO] [stdout] | [INFO] [stdout] 142 | let orientation_b = orientation_b.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_orientation_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/board/mod.rs:132:8 [INFO] [stdout] | [INFO] [stdout] 132 | if !pieces.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `pieces.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: this boolean expression can be simplified [INFO] [stdout] --> src/board/mod.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 228 | if !classes.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `classes.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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/board/mod.rs:132:8 [INFO] [stdout] | [INFO] [stdout] 132 | if !pieces.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `pieces.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: this boolean expression can be simplified [INFO] [stdout] --> src/board/mod.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 228 | if !classes.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `classes.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] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `tl::queryselector::QuerySelectorIterator<'_, '_, tl::VDom<'_>>` [INFO] [stdout] --> src/board/mod.rs:259:18 [INFO] [stdout] | [INFO] [stdout] 259 | for piece in pieces.clone().into_iter() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `pieces.clone()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `board` [INFO] [stdout] --> src/board/mod.rs:317:14 [INFO] [stdout] | [INFO] [stdout] 317 | for i 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] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 317 - for i in 0..8 { [INFO] [stdout] 317 + for (i, ) in board.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `board` [INFO] [stdout] --> src/board/mod.rs:318:18 [INFO] [stdout] | [INFO] [stdout] 318 | for j 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] 318 - for j in 0..8 { [INFO] [stdout] 318 + for (j, ) in board.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `tl::queryselector::QuerySelectorIterator<'_, '_, tl::VDom<'_>>` [INFO] [stdout] --> src/board/mod.rs:259:18 [INFO] [stdout] | [INFO] [stdout] 259 | for piece in pieces.clone().into_iter() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `pieces.clone()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/board/mod.rs:362:19 [INFO] [stdout] | [INFO] [stdout] 362 | pub async fn help<'a>(channel: Arc>) -> Result { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `stockfish.evaluation` after checking its variant with `is_some` [INFO] [stdout] --> src/board/mod.rs:413:25 [INFO] [stdout] | [INFO] [stdout] 412 | if stockfish.evaluation.is_some() { [INFO] [stdout] | --------------------------------- help: try: `if let Some() = stockfish.evaluation` [INFO] [stdout] 413 | chance_to_win = (stockfish.evaluation.unwrap()) / 153.0; [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: using `clone` on type `[[u8; 8]; 8]` which implements the `Copy` trait [INFO] [stdout] --> src/board/mod.rs:377:27 [INFO] [stdout] | [INFO] [stdout] 377 | let board_for_image = board.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `board` [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: the loop variable `i` is used to index `board` [INFO] [stdout] --> src/board/mod.rs:317:14 [INFO] [stdout] | [INFO] [stdout] 317 | for i 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] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 317 - for i in 0..8 { [INFO] [stdout] 317 + for (i, ) in board.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `board` [INFO] [stdout] --> src/board/mod.rs:318:18 [INFO] [stdout] | [INFO] [stdout] 318 | for j 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] 318 - for j in 0..8 { [INFO] [stdout] 318 + for (j, ) in board.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/board/mod.rs:405:18 [INFO] [stdout] | [INFO] [stdout] 405 | let ponder = bestmove.split_whitespace().nth(2).unwrap_or_else(|| "None"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `unwrap_or` instead [INFO] [stdout] | [INFO] [stdout] 405 - let ponder = bestmove.split_whitespace().nth(2).unwrap_or_else(|| "None"); [INFO] [stdout] 405 + let ponder = bestmove.split_whitespace().nth(2).unwrap_or("None"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/board/mod.rs:406:20 [INFO] [stdout] | [INFO] [stdout] 406 | let bestmove = bestmove.split_whitespace().nth(0).unwrap_or_else(|| "None"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `unwrap_or` instead [INFO] [stdout] | [INFO] [stdout] 406 - let bestmove = bestmove.split_whitespace().nth(0).unwrap_or_else(|| "None"); [INFO] [stdout] 406 + let bestmove = bestmove.split_whitespace().nth(0).unwrap_or("None"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/board/mod.rs:406:20 [INFO] [stdout] | [INFO] [stdout] 406 | let bestmove = bestmove.split_whitespace().nth(0).unwrap_or_else(|| "None"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `bestmove.split_whitespace().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern reimplements `Option::unwrap_or` [INFO] [stdout] --> src/board/mod.rs:407:17 [INFO] [stdout] | [INFO] [stdout] 407 | let _eval = match stockfish.evaluation { [INFO] [stdout] | _________________^ [INFO] [stdout] 408 | | Some(eval) => eval, [INFO] [stdout] 409 | | None => 0.0, [INFO] [stdout] 410 | | }; [INFO] [stdout] | |_____^ help: replace with: `stockfish.evaluation.unwrap_or(0.0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or [INFO] [stdout] = note: `#[warn(clippy::manual_unwrap_or)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/board/mod.rs:418:9 [INFO] [stdout] | [INFO] [stdout] 418 | chance_to_win = chance_to_win * 100.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `chance_to_win *= 100.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/board/mod.rs:448:16 [INFO] [stdout] | [INFO] [stdout] 448 | let path = String::from(format!("{}.png", path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}.png", path)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board/mod.rs:716:5 [INFO] [stdout] | [INFO] [stdout] 716 | return name; [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] 716 - return name; [INFO] [stdout] 716 + name [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `count` is used as a loop counter [INFO] [stdout] --> src/board/mod.rs:496:5 [INFO] [stdout] | [INFO] [stdout] 496 | for (x, y) in last_moves_x_y_vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (count, (x, y)) in last_moves_x_y_vec.into_iter().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> src/board/mod.rs:498:17 [INFO] [stdout] | [INFO] [stdout] 498 | let x = x as f32 / 100.0; [INFO] [stdout] | ^^^^^^^^ help: try: `x` [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 (`f32` -> `f32`) [INFO] [stdout] --> src/board/mod.rs:499:17 [INFO] [stdout] | [INFO] [stdout] 499 | let y = y as f32 / 100.0; [INFO] [stdout] | ^^^^^^^^ help: try: `y` [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 late initialization [INFO] [stdout] --> src/board/mod.rs:511:9 [INFO] [stdout] | [INFO] [stdout] 511 | let last_moved; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `last_moved` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 511 ~ [INFO] [stdout] 512 | // in theory should never be more then 2 [INFO] [stdout] 513 ~ let last_moved = if count % 2 == 0 { [INFO] [stdout] 514 | // last_moved = ImageReader::open(format!( [INFO] [stdout] ... [INFO] [stdout] 519 | [INFO] [stdout] 520 ~ ImageReader::open(cwd.join(format!( [INFO] [stdout] 521 | "src/assets/JohnPablok Cburnett Chess set/PNGs/No shadow/128h/{}", [INFO] [stdout] 522 | last_moved_img [INFO] [stdout] 523 | ))) [INFO] [stdout] 524 ~ .unwrap_or_else(|_| panic!("Error opening {:?}/assets/JohnPablok Cburnett Chess set/PNGs/No shadow/128h/{}", cwd.display(), last_moved_img)) [INFO] [stdout] 525 | } else { [INFO] [stdout] ... [INFO] [stdout] 531 | [INFO] [stdout] 532 ~ ImageReader::open(cwd.join(format!( [INFO] [stdout] 533 | "src/assets/JohnPablok Cburnett Chess set/PNGs/No shadow/128h/{}", [INFO] [stdout] 534 | last_moved_img1 [INFO] [stdout] 535 | ))) [INFO] [stdout] 536 ~ .unwrap_or_else(|_| panic!("Error opening {:?}/assets/JohnPablok Cburnett Chess set/PNGs/No shadow/128h/{}", cwd.display(), last_moved_img1)) [INFO] [stdout] 537 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/board/mod.rs:362:19 [INFO] [stdout] | [INFO] [stdout] 362 | pub async fn help<'a>(channel: Arc>) -> Result { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `stockfish.evaluation` after checking its variant with `is_some` [INFO] [stdout] --> src/board/mod.rs:413:25 [INFO] [stdout] | [INFO] [stdout] 412 | if stockfish.evaluation.is_some() { [INFO] [stdout] | --------------------------------- help: try: `if let Some() = stockfish.evaluation` [INFO] [stdout] 413 | chance_to_win = (stockfish.evaluation.unwrap()) / 153.0; [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: using `clone` on type `[[u8; 8]; 8]` which implements the `Copy` trait [INFO] [stdout] --> src/board/mod.rs:377:27 [INFO] [stdout] | [INFO] [stdout] 377 | let board_for_image = board.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `board` [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: the loop variable `i` is used to index `board_bytes` [INFO] [stdout] --> src/board/mod.rs:640:14 [INFO] [stdout] | [INFO] [stdout] 640 | for i 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] 640 - for i in 0..8 { [INFO] [stdout] 640 + for (i, ) in board_bytes.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `board_bytes` [INFO] [stdout] --> src/board/mod.rs:641:18 [INFO] [stdout] | [INFO] [stdout] 641 | for j 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] 641 - for j in 0..8 { [INFO] [stdout] 641 + for (j, ) in board_bytes.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/board/mod.rs:405:18 [INFO] [stdout] | [INFO] [stdout] 405 | let ponder = bestmove.split_whitespace().nth(2).unwrap_or_else(|| "None"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `unwrap_or` instead [INFO] [stdout] | [INFO] [stdout] 405 - let ponder = bestmove.split_whitespace().nth(2).unwrap_or_else(|| "None"); [INFO] [stdout] 405 + let ponder = bestmove.split_whitespace().nth(2).unwrap_or("None"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/board/mod.rs:406:20 [INFO] [stdout] | [INFO] [stdout] 406 | let bestmove = bestmove.split_whitespace().nth(0).unwrap_or_else(|| "None"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `unwrap_or` instead [INFO] [stdout] | [INFO] [stdout] 406 - let bestmove = bestmove.split_whitespace().nth(0).unwrap_or_else(|| "None"); [INFO] [stdout] 406 + let bestmove = bestmove.split_whitespace().nth(0).unwrap_or("None"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/board/mod.rs:406:20 [INFO] [stdout] | [INFO] [stdout] 406 | let bestmove = bestmove.split_whitespace().nth(0).unwrap_or_else(|| "None"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `bestmove.split_whitespace().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern reimplements `Option::unwrap_or` [INFO] [stdout] --> src/board/mod.rs:407:17 [INFO] [stdout] | [INFO] [stdout] 407 | let _eval = match stockfish.evaluation { [INFO] [stdout] | _________________^ [INFO] [stdout] 408 | | Some(eval) => eval, [INFO] [stdout] 409 | | None => 0.0, [INFO] [stdout] 410 | | }; [INFO] [stdout] | |_____^ help: replace with: `stockfish.evaluation.unwrap_or(0.0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or [INFO] [stdout] = note: `#[warn(clippy::manual_unwrap_or)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/board/mod.rs:418:9 [INFO] [stdout] | [INFO] [stdout] 418 | chance_to_win = chance_to_win * 100.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `chance_to_win *= 100.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/board/mod.rs:757:5 [INFO] [stdout] | [INFO] [stdout] 755 | let fen_unhtml = fen.replace("%20", " "); [INFO] [stdout] | ----------------------------------------- unnecessary `let` binding [INFO] [stdout] 756 | [INFO] [stdout] 757 | fen_unhtml [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 755 ~ [INFO] [stdout] 756 | [INFO] [stdout] 757 ~ fen.replace("%20", " ") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `board` [INFO] [stdout] --> src/board/mod.rs:721:14 [INFO] [stdout] | [INFO] [stdout] 721 | for i 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] 721 - for i in 0..8 { [INFO] [stdout] 721 + for (i, ) in board.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `board` [INFO] [stdout] --> src/board/mod.rs:729:18 [INFO] [stdout] | [INFO] [stdout] 729 | for j 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 [INFO] [stdout] | [INFO] [stdout] 729 - for j in 0..8 { [INFO] [stdout] 729 + for in &board { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/board/mod.rs:742:27 [INFO] [stdout] | [INFO] [stdout] 742 | fen.push_str(&format!("{}", piece_type)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `piece_type.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/board/mod.rs:448:16 [INFO] [stdout] | [INFO] [stdout] 448 | let path = String::from(format!("{}.png", path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}.png", path)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board/mod.rs:716:5 [INFO] [stdout] | [INFO] [stdout] 716 | return name; [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] 716 - return name; [INFO] [stdout] 716 + name [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `count` is used as a loop counter [INFO] [stdout] --> src/board/mod.rs:496:5 [INFO] [stdout] | [INFO] [stdout] 496 | for (x, y) in last_moves_x_y_vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (count, (x, y)) in last_moves_x_y_vec.into_iter().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> src/board/mod.rs:498:17 [INFO] [stdout] | [INFO] [stdout] 498 | let x = x as f32 / 100.0; [INFO] [stdout] | ^^^^^^^^ help: try: `x` [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 (`f32` -> `f32`) [INFO] [stdout] --> src/board/mod.rs:499:17 [INFO] [stdout] | [INFO] [stdout] 499 | let y = y as f32 / 100.0; [INFO] [stdout] | ^^^^^^^^ help: try: `y` [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 late initialization [INFO] [stdout] --> src/board/mod.rs:511:9 [INFO] [stdout] | [INFO] [stdout] 511 | let last_moved; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `last_moved` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 511 ~ [INFO] [stdout] 512 | // in theory should never be more then 2 [INFO] [stdout] 513 ~ let last_moved = if count % 2 == 0 { [INFO] [stdout] 514 | // last_moved = ImageReader::open(format!( [INFO] [stdout] ... [INFO] [stdout] 519 | [INFO] [stdout] 520 ~ ImageReader::open(cwd.join(format!( [INFO] [stdout] 521 | "src/assets/JohnPablok Cburnett Chess set/PNGs/No shadow/128h/{}", [INFO] [stdout] 522 | last_moved_img [INFO] [stdout] 523 | ))) [INFO] [stdout] 524 ~ .unwrap_or_else(|_| panic!("Error opening {:?}/assets/JohnPablok Cburnett Chess set/PNGs/No shadow/128h/{}", cwd.display(), last_moved_img)) [INFO] [stdout] 525 | } else { [INFO] [stdout] ... [INFO] [stdout] 531 | [INFO] [stdout] 532 ~ ImageReader::open(cwd.join(format!( [INFO] [stdout] 533 | "src/assets/JohnPablok Cburnett Chess set/PNGs/No shadow/128h/{}", [INFO] [stdout] 534 | last_moved_img1 [INFO] [stdout] 535 | ))) [INFO] [stdout] 536 ~ .unwrap_or_else(|_| panic!("Error opening {:?}/assets/JohnPablok Cburnett Chess set/PNGs/No shadow/128h/{}", cwd.display(), last_moved_img1)) [INFO] [stdout] 537 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `board_bytes` [INFO] [stdout] --> src/board/mod.rs:640:14 [INFO] [stdout] | [INFO] [stdout] 640 | for i 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] 640 - for i in 0..8 { [INFO] [stdout] 640 + for (i, ) in board_bytes.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `board_bytes` [INFO] [stdout] --> src/board/mod.rs:641:18 [INFO] [stdout] | [INFO] [stdout] 641 | for j 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] 641 - for j in 0..8 { [INFO] [stdout] 641 + for (j, ) in board_bytes.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/board/mod.rs:757:5 [INFO] [stdout] | [INFO] [stdout] 755 | let fen_unhtml = fen.replace("%20", " "); [INFO] [stdout] | ----------------------------------------- unnecessary `let` binding [INFO] [stdout] 756 | [INFO] [stdout] 757 | fen_unhtml [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 755 ~ [INFO] [stdout] 756 | [INFO] [stdout] 757 ~ fen.replace("%20", " ") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `board` [INFO] [stdout] --> src/board/mod.rs:721:14 [INFO] [stdout] | [INFO] [stdout] 721 | for i 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] 721 - for i in 0..8 { [INFO] [stdout] 721 + for (i, ) in board.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `board` [INFO] [stdout] --> src/board/mod.rs:729:18 [INFO] [stdout] | [INFO] [stdout] 729 | for j 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 [INFO] [stdout] | [INFO] [stdout] 729 - for j in 0..8 { [INFO] [stdout] 729 + for in &board { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/board/mod.rs:742:27 [INFO] [stdout] | [INFO] [stdout] 742 | fen.push_str(&format!("{}", piece_type)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `piece_type.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `()` [INFO] [stdout] --> src/main.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 133 | return (); [INFO] [stdout] | ^^ help: remove the `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u64` is unnecessary [INFO] [stdout] --> src/main.rs:145:35 [INFO] [stdout] | [INFO] [stdout] 145 | let _tchannel = ChannelId::new(167174376045805568 as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `167174376045805568_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: unneeded `()` [INFO] [stdout] --> src/main.rs:226:11 [INFO] [stdout] | [INFO] [stdout] 226 | return (); [INFO] [stdout] | ^^ help: remove the `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `()` [INFO] [stdout] --> src/main.rs:291:11 [INFO] [stdout] | [INFO] [stdout] 291 | return (); [INFO] [stdout] | ^^ help: remove the `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u64` is unnecessary [INFO] [stdout] --> src/main.rs:305:34 [INFO] [stdout] | [INFO] [stdout] 305 | let _tchannel = ChannelId::new(167174376045805568 as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `167174376045805568_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: unneeded `()` [INFO] [stdout] --> src/main.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 133 | return (); [INFO] [stdout] | ^^ help: remove the `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u64` is unnecessary [INFO] [stdout] --> src/main.rs:145:35 [INFO] [stdout] | [INFO] [stdout] 145 | let _tchannel = ChannelId::new(167174376045805568 as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `167174376045805568_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: unneeded `()` [INFO] [stdout] --> src/main.rs:226:11 [INFO] [stdout] | [INFO] [stdout] 226 | return (); [INFO] [stdout] | ^^ help: remove the `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `()` [INFO] [stdout] --> src/main.rs:291:11 [INFO] [stdout] | [INFO] [stdout] 291 | return (); [INFO] [stdout] | ^^ help: remove the `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u64` is unnecessary [INFO] [stdout] --> src/main.rs:305:34 [INFO] [stdout] | [INFO] [stdout] 305 | let _tchannel = ChannelId::new(167174376045805568 as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `167174376045805568_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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 31s [INFO] running `Command { std: "docker" "inspect" "f6c420f844887ecc0ffc701268cf36d511539fd12daa7cc44eaa46f291db5648", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f6c420f844887ecc0ffc701268cf36d511539fd12daa7cc44eaa46f291db5648", kill_on_drop: false }` [INFO] [stdout] f6c420f844887ecc0ffc701268cf36d511539fd12daa7cc44eaa46f291db5648