[INFO] cloning repository https://github.com/JENebel/Cadabra [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JENebel/Cadabra" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJENebel%2FCadabra", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJENebel%2FCadabra'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 79864d0d40bf862f83fdaf728d4a543d123d52aa [INFO] linting JENebel/Cadabra against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJENebel%2FCadabra" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-7-tc1/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/JENebel/Cadabra [INFO] finished tweaking git repo https://github.com/JENebel/Cadabra [INFO] tweaked toml for git repo https://github.com/JENebel/Cadabra written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/JENebel/Cadabra 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/JENebel/Cadabra 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 git repository `https://github.com/finnbear/bitintr` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded btoi v0.4.3 [INFO] [stderr] Downloaded pretty-duration v0.1.1 [INFO] [stderr] Downloaded const_for v0.1.4 [INFO] [stderr] Downloaded circular v0.3.0 [INFO] [stderr] Downloaded chess v3.2.0 [INFO] [stderr] Downloaded pgn-reader v0.25.0 [INFO] [stderr] Downloaded rayon v1.9.0 [INFO] [stderr] Downloaded shakmaty v0.26.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5a45ff331861fdb476929ef28d31e2e91b239c9f0330f4c4f23fe18c7e52711d [INFO] running `Command { std: "docker" "start" "-a" "5a45ff331861fdb476929ef28d31e2e91b239c9f0330f4c4f23fe18c7e52711d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5a45ff331861fdb476929ef28d31e2e91b239c9f0330f4c4f23fe18c7e52711d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5a45ff331861fdb476929ef28d31e2e91b239c9f0330f4c4f23fe18c7e52711d", kill_on_drop: false }` [INFO] [stdout] 5a45ff331861fdb476929ef28d31e2e91b239c9f0330f4c4f23fe18c7e52711d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e33ff87a4df9cde12ea5e6028458c0e7dc0bed12e779053ed55065a115a738f0 [INFO] running `Command { std: "docker" "start" "-a" "e33ff87a4df9cde12ea5e6028458c0e7dc0bed12e779053ed55065a115a738f0", kill_on_drop: false }` [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling backtrace v0.3.69 [INFO] [stderr] Compiling heapless v0.8.0 [INFO] [stderr] Checking hash32 v0.3.1 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Compiling libc v0.2.153 [INFO] [stderr] Compiling cadabra v2.1.0 (/opt/rustwide/workdir/engine) [INFO] [stderr] Compiling syn v2.0.53 [INFO] [stdout] warning: unnecessary use of `.write(true)` because there is `.append(true)` [INFO] [stdout] --> engine/src/generate_sliding_attacks.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | .write(true) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove `.write(true)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ineffective_open_options [INFO] [stdout] = note: `#[warn(clippy::ineffective_open_options)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling num-traits v0.2.18 [INFO] [stderr] Compiling gimli v0.28.1 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling memchr v2.7.1 [INFO] [stderr] Checking bitintr v0.3.0 (https://github.com/finnbear/bitintr?branch=remove_nightly#34a5deb0) [INFO] [stderr] Checking const_for v0.1.4 [INFO] [stderr] Compiling miniz_oxide v0.7.2 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling object v0.32.2 [INFO] [stderr] Compiling ppv-lite86 v0.2.17 [INFO] [stderr] Compiling rustc-demangle v0.1.23 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling rand_pcg v0.2.1 [INFO] [stderr] Compiling lock_api v0.4.11 [INFO] [stderr] Checking futures-sink v0.3.30 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Checking getrandom v0.2.12 [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> engine/src/engine/search/search.rs:261:12 [INFO] [stdout] | [INFO] [stdout] 261 | && depth >= NULL_MOVE_R + 1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `depth > NULL_MOVE_R` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] = note: `#[warn(clippy::int_plus_one)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking btoi v0.4.3 [INFO] [stderr] Checking shakmaty v0.26.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling addr2line v0.21.0 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking circular v0.3.0 [INFO] [stderr] Checking either v1.10.0 [INFO] [stderr] Checking nodrop v0.1.14 [INFO] [stderr] Checking chrono v0.4.35 [INFO] [stderr] Checking rayon v1.9.0 [INFO] [stderr] Checking num-format v0.4.4 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling failure v0.1.8 [INFO] [stderr] Checking tokio v1.36.0 [INFO] [stderr] Checking term_size v0.3.2 [INFO] [stderr] Checking fastrand v2.0.2 [INFO] [stderr] Checking pretty-duration v0.1.1 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Compiling chess v3.2.0 [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> engine/src/engine/search/search.rs:261:12 [INFO] [stdout] | [INFO] [stdout] 261 | && depth >= NULL_MOVE_R + 1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `depth > NULL_MOVE_R` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] = note: `#[warn(clippy::int_plus_one)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> engine/src/engine/square.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | / pub fn from_str(str: &str) -> Result { [INFO] [stdout] 31 | | if !str.is_ascii() { [INFO] [stdout] 32 | | return Err(format!("Square string contained non ASCII characters")) [INFO] [stdout] ... | [INFO] [stdout] 51 | | Ok(Square::from(8 * rank + file)) [INFO] [stdout] 52 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/engine/square.rs:32:24 [INFO] [stdout] | [INFO] [stdout] 32 | return Err(format!("Square string contained non ASCII characters")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Square string contained non ASCII characters".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 use of `format!` [INFO] [stdout] --> engine/src/engine/square.rs:43:24 [INFO] [stdout] | [INFO] [stdout] 43 | return Err(format!("Illegal file in square string")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal file in square string".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/engine/square.rs:48:24 [INFO] [stdout] | [INFO] [stdout] 48 | return Err(format!("Illegal rank in square string")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal rank in square string".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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engine/src/engine/zobrist.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | return num as u32; [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] 83 - return num as u32; [INFO] [stdout] 83 + num as u32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engine/src/engine/zobrist.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | return (n1 as u64 | ((n2 as u64) << 32), n3); [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] 93 - return (n1 as u64 | ((n2 as u64) << 32), n3); [INFO] [stdout] 93 + (n1 as u64 | ((n2 as u64) << 32), n3) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> engine/src/engine/color.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | / pub fn from_str(str: &str) -> Result { [INFO] [stdout] 29 | | match str { [INFO] [stdout] 30 | | "w" => Ok(White), [INFO] [stdout] 31 | | "b" => Ok(Black), [INFO] [stdout] ... | [INFO] [stdout] 34 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/engine/position.rs:40:32 [INFO] [stdout] | [INFO] [stdout] 40 | None => return Err(format!("Expected board string in fen")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected board string in fen".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/engine/position.rs:47:24 [INFO] [stdout] | [INFO] [stdout] 47 | return Err(format!("Expected a color char")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected a color char".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/engine/position.rs:65:38 [INFO] [stdout] | [INFO] [stdout] 65 | Err(_) => return Err(format!("Half moves was not a number")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Half moves was not a number".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/engine/position.rs:73:38 [INFO] [stdout] | [INFO] [stdout] 73 | Err(_) => return Err(format!("Full moves was not a number")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Full moves was not a number".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/engine/position.rs:96:28 [INFO] [stdout] | [INFO] [stdout] 96 | return Err(format!("Board from fen does not fit on the board")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Board from fen does not fit on the board".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] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> engine/src/engine/castling.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | / pub fn from_str(castling_str: &str) -> Result { [INFO] [stdout] 26 | | let mut byte: u8 = 0; [INFO] [stdout] 27 | | [INFO] [stdout] 28 | | if castling_str == "-" { [INFO] [stdout] ... | [INFO] [stdout] 49 | | Ok(Self{byte}) [INFO] [stdout] 50 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: transmute used without annotations [INFO] [stdout] --> engine/src/engine/moove.rs:53:52 [INFO] [stdout] | [INFO] [stdout] 53 | Self::new_internal(src, dst, unsafe { mem::transmute(is_capture) }) [INFO] [stdout] | ^^^^^^^^^ help: consider adding missing annotations: `transmute::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_transmute_annotations [INFO] [stdout] = note: `#[warn(clippy::missing_transmute_annotations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large array defined as const [INFO] [stdout] --> /opt/rustwide/target/debug/build/cadabra-b5d3eb995d46b95b/out/sliding_attacks.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | pub const HV_SLIDING_ATTACKS: [u64; 102400] = [ [INFO] [stdout] | ^ ----- help: make this a static item: `static` [INFO] [stdout] | _| [INFO] [stdout] | | [INFO] [stdout] 10 | | 72340172838076926,72340172838076674,72340172838076678,72340172838076674,72340172838076686,72340172838076674,72340172838076678,723... [INFO] [stdout] 11 | | 286,258,262,258,270,258,262,258,318,258,262,258,270,258,262,258,286,258,262,258,270,258,262,258,382,258,262,258,270,258,262,258,2... [INFO] [stdout] 12 | | 65854,65794,65798,65794,65806,65794,65798,65794,65822,65794,65798,65794,65806,65794,65798,65794,65918,65794,65798,65794,65806,657... [INFO] [stdout] ... | [INFO] [stdout] 521 | | 4647714815446351872,4647714815446351872,4647714815446351872,4647714815446351872,4647714815446351872,4647714815446351872,464771481... [INFO] [stdout] 522 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays [INFO] [stdout] = note: `#[warn(clippy::large_const_arrays)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large array defined as const [INFO] [stdout] --> /opt/rustwide/target/debug/build/cadabra-b5d3eb995d46b95b/out/sliding_attacks.rs:532:1 [INFO] [stdout] | [INFO] [stdout] 532 | pub const D12_SLIDING_ATTACKS: [u64; 5248] = [ [INFO] [stdout] | ^ ----- help: make this a static item: `static` [INFO] [stdout] | _| [INFO] [stdout] | | [INFO] [stdout] 533 | | 9241421688590303744,512,262656,512,134480384,512,262656,512,68853957120,512,262656,512,134480384,512,262656,512,35253226045952,51... [INFO] [stdout] 534 | | 76042240,8409088,67653632,20480,8933376,8409088,544768,20480,8665976832,8409088,8657588224,20480,8933376,8409088,544768,20480,760... [INFO] [stdout] 535 | | 70506468999178,70506452221962,17432586,655370,285868042,269090826,17432586,655370,137724821514,137708044298,17432586,655370,28586... [INFO] [stdout] ... | [INFO] [stdout] 559 | | 18049582881570816,18049582881570816,18049582881570816,18049582881570816,18049582881570816,18049582881570816,18049582881570816,180... [INFO] [stdout] 560 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large array defined as const [INFO] [stdout] --> engine/src/engine/move_gen/pin_and_check_masks.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub const SLIDER_HV_CHECK_MASK: [u64; 4096] = generate_hv_slider_check_mask(); [INFO] [stdout] | ^^^^-----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: make this a static item: `static` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large array defined as const [INFO] [stdout] --> engine/src/engine/move_gen/pin_and_check_masks.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub const SLIDER_D12_CHECK_MASK: [u64; 4096] = generate_d12_slider_check_mask(); [INFO] [stdout] | ^^^^-----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: make this a static item: `static` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large array defined as const [INFO] [stdout] --> engine/src/engine/move_gen/pin_and_check_masks.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub const PIN_MASKS: [u64; 16384] = generate_pin_masks(); [INFO] [stdout] | ^^^^-----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: make this a static item: `static` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> engine/src/engine/search/mod.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | mod search; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SearchArgs` which implements the `Copy` trait [INFO] [stdout] --> engine/src/engine/search/search.rs:42:24 [INFO] [stdout] | [INFO] [stdout] 42 | let meta = meta.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `meta` [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: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> engine/src/engine/search/search.rs:43:23 [INFO] [stdout] | [INFO] [stdout] 43 | let pos = pos.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `pos` [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: manual `Range::contains` implementation [INFO] [stdout] --> engine/src/engine/search/search.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | if score >= -MATE_VALUE && score < -MATE_BOUND { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(-MATE_VALUE..-MATE_BOUND).contains(&score)` [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: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> engine/src/engine/search/search.rs:206:29 [INFO] [stdout] | [INFO] [stdout] 206 | if depth == 0 || ply >= MAX_DEPTH as u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `MAX_DEPTH` [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 `if` statement can be collapsed [INFO] [stdout] --> engine/src/engine/search/search.rs:250:16 [INFO] [stdout] | [INFO] [stdout] 250 | } else if depth == 2 { [INFO] [stdout] | ________________^ [INFO] [stdout] 251 | | if static_eval - PRE_FRONTIER_FUTILITY_MARGIN >= beta { [INFO] [stdout] 252 | | return static_eval - PRE_FRONTIER_FUTILITY_MARGIN [INFO] [stdout] 253 | | } [INFO] [stdout] 254 | | } [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] 250 ~ } else if depth == 2 [INFO] [stdout] 251 ~ && static_eval - PRE_FRONTIER_FUTILITY_MARGIN >= beta { [INFO] [stdout] 252 | return static_eval - PRE_FRONTIER_FUTILITY_MARGIN [INFO] [stdout] 253 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter is only used in recursion [INFO] [stdout] --> engine/src/engine/search/search.rs:175:153 [INFO] [stdout] | [INFO] [stdout] 175 | ...t: &mut SearchContext, evaluator: &E) -> i16 { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_evaluator` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> engine/src/engine/search/search.rs:269:117 [INFO] [stdout] | [INFO] [stdout] 269 | let score = -negamax::(&new_pos, -beta, -beta + 1, depth - 1 - NULL_MOVE_R, ply + 1, context, evaluator); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | score = -negamax::(&new_pos, -beta, -alpha, depth - 1, ply + 1, context, evaluator); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | score = -negamax::(&new_pos, -alpha - 1, -alpha, depth - 1 - reduction, ply + 1, context, evaluator); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | score = -negamax::(&new_pos, -alpha - 1, -alpha, depth - 1, ply + 1, context, evaluator); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 315 | score = -negamax::(&new_pos, -beta, -alpha, depth - 1, ply + 1, context, evaluator); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | score = -negamax::(&new_pos, -alpha - 1, -alpha, depth - 1, ply + 1, context, evaluator); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 324 | score = -negamax::(&new_pos, -beta, -alpha, depth - 1, ply + 1, context, evaluator); [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: this function has too many arguments (8/7) [INFO] [stdout] --> engine/src/engine/search/transposition_table.rs:146:5 [INFO] [stdout] | [INFO] [stdout] 146 | pub fn record(&self, hash: u64, best_move: Move, depth: u8, score: i16, flag: HashFlag, ply: u8, generation: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engine/src/engine/search/transposition_table.rs:180:9 [INFO] [stdout] | [INFO] [stdout] 180 | return found as f32 / checked as f32; [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] 180 - return found as f32 / checked as f32; [INFO] [stdout] 180 + found as f32 / checked as f32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `PVTable` [INFO] [stdout] --> engine/src/engine/search/tri_pv_table.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / pub fn new() -> Self { [INFO] [stdout] 13 | | Self { [INFO] [stdout] 14 | | pv_table: [[None; MAX_DEPTH as usize]; MAX_DEPTH as usize], [INFO] [stdout] 15 | | pv_lengths: [0; MAX_DEPTH as usize], [INFO] [stdout] 16 | | } [INFO] [stdout] 17 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 11 + impl Default for PVTable { [INFO] [stdout] 12 + fn default() -> Self { [INFO] [stdout] 13 + Self::new() [INFO] [stdout] 14 + } [INFO] [stdout] 15 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `RepetitionTable` [INFO] [stdout] --> engine/src/engine/search/repetition_table.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / pub fn new() -> Self { [INFO] [stdout] 11 | | Self { len: 0, hashes: [0; 100] } [INFO] [stdout] 12 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 9 + impl Default for RepetitionTable { [INFO] [stdout] 10 + fn default() -> Self { [INFO] [stdout] 11 + Self::new() [INFO] [stdout] 12 + } [INFO] [stdout] 13 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> engine/src/engine/search/search_args.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new(max_depth: Option, ponder: bool, infinite: bool, time_left: Option, inc: Option, movestogo: Option, nodes: Option, movetime: Option) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> engine/src/engine/search/quiescence.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | if !in_check && (!(moove.is_capture() || moove.is_enpassant())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!(in_check || moove.is_capture() || moove.is_enpassant())` [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: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> engine/src/engine/search/quiescence.rs:29:24 [INFO] [stdout] | [INFO] [stdout] 29 | let mut copy = pos.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*pos` [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: the function `parse_set_option` doesn't need a mutable reference [INFO] [stdout] --> engine/src/interface.rs:52:40 [INFO] [stdout] | [INFO] [stdout] 52 | match parse_set_option(&mut command, settings) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 52 - match parse_set_option(&mut command, settings) { [INFO] [stdout] 52 + match parse_set_option(&command, settings) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> engine/src/interface.rs:52:40 [INFO] [stdout] | [INFO] [stdout] 52 | match parse_set_option(&mut command, settings) { [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `command` [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 `match` expression can be replaced with `?` [INFO] [stdout] --> engine/src/interface.rs:245:21 [INFO] [stdout] | [INFO] [stdout] 245 | let depth_str = match take_next(command) { [INFO] [stdout] | _____________________^ [INFO] [stdout] 246 | | None => { [INFO] [stdout] 247 | | return None [INFO] [stdout] 248 | | }, [INFO] [stdout] ... | [INFO] [stdout] 251 | | }, [INFO] [stdout] 252 | | }; [INFO] [stdout] | |_____^ help: try instead: `take_next(command)?` [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: manual implementation of `ok` [INFO] [stdout] --> engine/src/interface.rs:254:5 [INFO] [stdout] | [INFO] [stdout] 254 | / match depth_str.parse::() { [INFO] [stdout] 255 | | Ok(depth) => Some(depth), [INFO] [stdout] 256 | | Err(_) => { [INFO] [stdout] 257 | | None [INFO] [stdout] 258 | | }, [INFO] [stdout] 259 | | } [INFO] [stdout] | |_____^ help: replace with: `depth_str.parse::().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] = note: `#[warn(clippy::manual_ok_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:274:28 [INFO] [stdout] | [INFO] [stdout] 274 | None => return Err(format!("No argument provided for position command")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"No argument provided for position command".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:280:25 [INFO] [stdout] | [INFO] [stdout] 280 | _ => return Err(format!("Illegal position argument")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal position argument".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:313:36 [INFO] [stdout] | [INFO] [stdout] 313 | return Err(format!("Illegal go depth")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go depth".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:326:32 [INFO] [stdout] | [INFO] [stdout] 326 | return Err(format!("Illegal go wtime")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go wtime".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:334:32 [INFO] [stdout] | [INFO] [stdout] 334 | return Err(format!("Illegal go btime")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go btime".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:342:32 [INFO] [stdout] | [INFO] [stdout] 342 | return Err(format!("Illegal go winc")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go winc".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:350:32 [INFO] [stdout] | [INFO] [stdout] 350 | return Err(format!("Illegal go binc")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go binc".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:357:32 [INFO] [stdout] | [INFO] [stdout] 357 | return Err(format!("Illegal go movestogo")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go movestogo".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:364:32 [INFO] [stdout] | [INFO] [stdout] 364 | return Err(format!("Illegal go movetime")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go movetime".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:370:32 [INFO] [stdout] | [INFO] [stdout] 370 | return Err(format!("Illegal go nodes")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go nodes".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] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> engine/src/engine/moove.rs:53:47 [INFO] [stdout] | [INFO] [stdout] 53 | Self::new_internal(src, dst, unsafe { mem::transmute(is_capture) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 53 - Self::new_internal(src, dst, unsafe { mem::transmute(is_capture) }) [INFO] [stdout] 53 + Self::new_internal(src, dst, unsafe { u8::from(is_capture) }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> engine/src/engine/moove.rs:64:31 [INFO] [stdout] | [INFO] [stdout] 64 | move_type |= unsafe { mem::transmute::(is_capture) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 64 - move_type |= unsafe { mem::transmute::(is_capture) }; [INFO] [stdout] 64 + move_type |= unsafe { u8::from(is_capture) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking pgn-reader v0.25.0 [INFO] [stderr] Checking tuner v0.1.0 (/opt/rustwide/workdir/tuner) [INFO] [stdout] warning: unused imports: `Duration` and `thread` [INFO] [stdout] --> tuner/src/evolution_tuner.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::VecDeque, thread, time::{Duration, Instant}}; [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: `CONST_EVALUATOR` [INFO] [stdout] --> tuner/src/evolution_tuner.rs:2:50 [INFO] [stdout] | [INFO] [stdout] 2 | use cadabra::{SearchArgs, Settings, WeightArray, CONST_EVALUATOR}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::distributions::weighted::alias_method::Weight` [INFO] [stdout] --> tuner/src/evolution_tuner.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use rand::distributions::weighted::alias_method::Weight; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated trait `rand::distributions::weighted::alias_method::Weight`: moved to rand_distr crate [INFO] [stdout] --> tuner/src/evolution_tuner.rs:5:50 [INFO] [stdout] | [INFO] [stdout] 5 | use rand::distributions::weighted::alias_method::Weight; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `thread` [INFO] [stdout] --> tuner/src/evolution_tuner.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::VecDeque, thread, time::{Duration, Instant}}; [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: `CONST_EVALUATOR` [INFO] [stdout] --> tuner/src/evolution_tuner.rs:2:50 [INFO] [stdout] | [INFO] [stdout] 2 | use cadabra::{SearchArgs, Settings, WeightArray, CONST_EVALUATOR}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::distributions::weighted::alias_method::Weight` [INFO] [stdout] --> tuner/src/evolution_tuner.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use rand::distributions::weighted::alias_method::Weight; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tuner/src/evolution_tuner.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | let mut pos = cadabra::Position::start_pos(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated trait `rand::distributions::weighted::alias_method::Weight`: moved to rand_distr crate [INFO] [stdout] --> tuner/src/evolution_tuner.rs:5:50 [INFO] [stdout] | [INFO] [stdout] 5 | use rand::distributions::weighted::alias_method::Weight; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tuner/src/evolution_tuner.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | let mut pos = cadabra::Position::start_pos(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GameParser` is never constructed [INFO] [stdout] --> tuner/src/pgn_to_fen.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | struct GameParser { [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 function `new` is never used [INFO] [stdout] --> tuner/src/pgn_to_fen.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 19 | impl GameParser { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 20 | fn new() -> GameParser { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_fen_from_pgn` is never used [INFO] [stdout] --> tuner/src/pgn_to_fen.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn generate_fen_from_pgn(pgn_path: PathBuf) -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MUTATION_SIZE` is never used [INFO] [stdout] --> tuner/src/evolution_tuner.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const MUTATION_SIZE: f64 = 1.1; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `White`, `Black`, and `Draw` are never constructed [INFO] [stdout] --> tuner/src/evolution_tuner.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 106 | enum GameResult { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 107 | White = 1, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 108 | Black = -1, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 109 | Draw = 0, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GameResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> tuner/src/pgn_to_fen.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | if self.games % 1000 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `self.games.is_multiple_of(1000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i16` -> `i16`) [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:139:37 [INFO] [stdout] | [INFO] [stdout] 139 | weights.into_iter().map(|x| x as i16).collect::>().try_into().unwrap() [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: the loop variable `i` is only used to index `arr` [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:172:22 [INFO] [stdout] | [INFO] [stdout] 172 | for i in 0..N { [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 [INFO] [stdout] | [INFO] [stdout] 172 - for i in 0..N { [INFO] [stdout] 172 + for in arr.iter_mut().take(N) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:215:9 [INFO] [stdout] | [INFO] [stdout] 215 | write!(f, "pub const MATERIAL_WEIGHTS_EARLY: [i16; 12] = {:?};\n", self.material_weights_early)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 215 - write!(f, "pub const MATERIAL_WEIGHTS_EARLY: [i16; 12] = {:?};\n", self.material_weights_early)?; [INFO] [stdout] 215 + writeln!(f, "pub const MATERIAL_WEIGHTS_EARLY: [i16; 12] = {:?};", self.material_weights_early)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:216:9 [INFO] [stdout] | [INFO] [stdout] 216 | write!(f, "pub const MATERIAL_WEIGHTS_LATE: [i16; 12] = {:?};\n", self.material_weights_late)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 216 - write!(f, "pub const MATERIAL_WEIGHTS_LATE: [i16; 12] = {:?};\n", self.material_weights_late)?; [INFO] [stdout] 216 + writeln!(f, "pub const MATERIAL_WEIGHTS_LATE: [i16; 12] = {:?};", self.material_weights_late)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | write!(f, "pub const ISOLATED_PAWN_PENALTY: i16 = {};\n", self.isolated_pawn_penalty)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 218 - write!(f, "pub const ISOLATED_PAWN_PENALTY: i16 = {};\n", self.isolated_pawn_penalty)?; [INFO] [stdout] 218 + writeln!(f, "pub const ISOLATED_PAWN_PENALTY: i16 = {};", self.isolated_pawn_penalty)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:219:9 [INFO] [stdout] | [INFO] [stdout] 219 | write!(f, "pub const PASSED_PAWN_BONUS: [i16; 8] = {:?};\n", self.passed_pawn_bonus)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 219 - write!(f, "pub const PASSED_PAWN_BONUS: [i16; 8] = {:?};\n", self.passed_pawn_bonus)?; [INFO] [stdout] 219 + writeln!(f, "pub const PASSED_PAWN_BONUS: [i16; 8] = {:?};", self.passed_pawn_bonus)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | write!(f, "pub const SEMI_OPEN_FILE_BONUS: i16 = {};\n", self.semi_open_file_bonus)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 220 - write!(f, "pub const SEMI_OPEN_FILE_BONUS: i16 = {};\n", self.semi_open_file_bonus)?; [INFO] [stdout] 220 + writeln!(f, "pub const SEMI_OPEN_FILE_BONUS: i16 = {};", self.semi_open_file_bonus)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:221:9 [INFO] [stdout] | [INFO] [stdout] 221 | write!(f, "pub const OPEN_FILE_BONUS: i16 = {};\n", self.open_file_bonus)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 221 - write!(f, "pub const OPEN_FILE_BONUS: i16 = {};\n", self.open_file_bonus)?; [INFO] [stdout] 221 + writeln!(f, "pub const OPEN_FILE_BONUS: i16 = {};", self.open_file_bonus)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:223:9 [INFO] [stdout] | [INFO] [stdout] 223 | write!(f, "pub const KNIGHT_MOBILITY_BONUS_EARLY: i16 = {};\n", self.knight_mobility_bonus_early)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 223 - write!(f, "pub const KNIGHT_MOBILITY_BONUS_EARLY: i16 = {};\n", self.knight_mobility_bonus_early)?; [INFO] [stdout] 223 + writeln!(f, "pub const KNIGHT_MOBILITY_BONUS_EARLY: i16 = {};", self.knight_mobility_bonus_early)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | write!(f, "pub const BISHOP_MOBILITY_BONUS_EARLY: i16 = {};\n", self.bishop_mobility_bonus_early)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 224 - write!(f, "pub const BISHOP_MOBILITY_BONUS_EARLY: i16 = {};\n", self.bishop_mobility_bonus_early)?; [INFO] [stdout] 224 + writeln!(f, "pub const BISHOP_MOBILITY_BONUS_EARLY: i16 = {};", self.bishop_mobility_bonus_early)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:225:9 [INFO] [stdout] | [INFO] [stdout] 225 | write!(f, "pub const ROOK_MOBILITY_BONUS_EARLY: i16 = {};\n", self.rook_mobility_bonus_early)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 225 - write!(f, "pub const ROOK_MOBILITY_BONUS_EARLY: i16 = {};\n", self.rook_mobility_bonus_early)?; [INFO] [stdout] 225 + writeln!(f, "pub const ROOK_MOBILITY_BONUS_EARLY: i16 = {};", self.rook_mobility_bonus_early)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | write!(f, "pub const QUEEN_MOBILITY_BONUS_EARLY: i16 = {};\n", self.queen_mobility_bonus_early)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 226 - write!(f, "pub const QUEEN_MOBILITY_BONUS_EARLY: i16 = {};\n", self.queen_mobility_bonus_early)?; [INFO] [stdout] 226 + writeln!(f, "pub const QUEEN_MOBILITY_BONUS_EARLY: i16 = {};", self.queen_mobility_bonus_early)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:228:9 [INFO] [stdout] | [INFO] [stdout] 228 | write!(f, "pub const KNIGHT_MOBILITY_BONUS_LATE: i16 = {};\n", self.knight_mobility_bonus_late)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 228 - write!(f, "pub const KNIGHT_MOBILITY_BONUS_LATE: i16 = {};\n", self.knight_mobility_bonus_late)?; [INFO] [stdout] 228 + writeln!(f, "pub const KNIGHT_MOBILITY_BONUS_LATE: i16 = {};", self.knight_mobility_bonus_late)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:229:9 [INFO] [stdout] | [INFO] [stdout] 229 | write!(f, "pub const BISHOP_MOBILITY_BONUS_LATE: i16 = {};\n", self.bishop_mobility_bonus_late)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 229 - write!(f, "pub const BISHOP_MOBILITY_BONUS_LATE: i16 = {};\n", self.bishop_mobility_bonus_late)?; [INFO] [stdout] 229 + writeln!(f, "pub const BISHOP_MOBILITY_BONUS_LATE: i16 = {};", self.bishop_mobility_bonus_late)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:230:9 [INFO] [stdout] | [INFO] [stdout] 230 | write!(f, "pub const ROOK_MOBILITY_BONUS_LATE: i16 = {};\n", self.rook_mobility_bonus_late)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 230 - write!(f, "pub const ROOK_MOBILITY_BONUS_LATE: i16 = {};\n", self.rook_mobility_bonus_late)?; [INFO] [stdout] 230 + writeln!(f, "pub const ROOK_MOBILITY_BONUS_LATE: i16 = {};", self.rook_mobility_bonus_late)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | write!(f, "pub const QUEEN_MOBILITY_BONUS_LATE: i16 = {};\n", self.queen_mobility_bonus_late)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 231 - write!(f, "pub const QUEEN_MOBILITY_BONUS_LATE: i16 = {};\n", self.queen_mobility_bonus_late)?; [INFO] [stdout] 231 + writeln!(f, "pub const QUEEN_MOBILITY_BONUS_LATE: i16 = {};", self.queen_mobility_bonus_late)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | write!(f, "pub const PAWN_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 232 - write!(f, "pub const PAWN_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] 232 + writeln!(f, "pub const PAWN_SCORES_EARLY: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:234:9 [INFO] [stdout] | [INFO] [stdout] 234 | write!(f, "pub const PAWN_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 234 - write!(f, "pub const PAWN_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] 234 + writeln!(f, "pub const PAWN_SCORES_LATE: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | write!(f, "pub const KNIGHT_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 236 - write!(f, "pub const KNIGHT_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] 236 + writeln!(f, "pub const KNIGHT_SCORES_EARLY: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:238:9 [INFO] [stdout] | [INFO] [stdout] 238 | write!(f, "pub const KNIGHT_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 238 - write!(f, "pub const KNIGHT_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] 238 + writeln!(f, "pub const KNIGHT_SCORES_LATE: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:240:9 [INFO] [stdout] | [INFO] [stdout] 240 | write!(f, "pub const BISHOP_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 240 - write!(f, "pub const BISHOP_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] 240 + writeln!(f, "pub const BISHOP_SCORES_EARLY: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:242:9 [INFO] [stdout] | [INFO] [stdout] 242 | write!(f, "pub const BISHOP_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 242 - write!(f, "pub const BISHOP_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] 242 + writeln!(f, "pub const BISHOP_SCORES_LATE: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:244:9 [INFO] [stdout] | [INFO] [stdout] 244 | write!(f, "pub const ROOK_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 244 - write!(f, "pub const ROOK_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] 244 + writeln!(f, "pub const ROOK_SCORES_EARLY: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:246:9 [INFO] [stdout] | [INFO] [stdout] 246 | write!(f, "pub const ROOK_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 246 - write!(f, "pub const ROOK_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] 246 + writeln!(f, "pub const ROOK_SCORES_LATE: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | write!(f, "pub const QUEEN_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 248 - write!(f, "pub const QUEEN_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] 248 + writeln!(f, "pub const QUEEN_SCORES_EARLY: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | write!(f, "pub const QUEEN_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 250 - write!(f, "pub const QUEEN_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] 250 + writeln!(f, "pub const QUEEN_SCORES_LATE: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:252:9 [INFO] [stdout] | [INFO] [stdout] 252 | write!(f, "pub const KING_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 252 - write!(f, "pub const KING_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] 252 + writeln!(f, "pub const KING_SCORES_EARLY: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:254:9 [INFO] [stdout] | [INFO] [stdout] 254 | write!(f, "pub const KING_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 254 - write!(f, "pub const KING_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] 254 + writeln!(f, "pub const KING_SCORES_LATE: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:262:5 [INFO] [stdout] | [INFO] [stdout] 262 | write!(f, "[\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 262 - write!(f, "[\n")?; [INFO] [stdout] 262 + writeln!(f, "[")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:269:9 [INFO] [stdout] | [INFO] [stdout] 269 | write!(f, "\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 269 - write!(f, "\n")?; [INFO] [stdout] 269 + writeln!(f)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[i16; 798]` which implements the `Copy` trait [INFO] [stdout] --> tuner/src/evolution_tuner.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | let parent = survivors[i % survivors.len()].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `survivors[i % survivors.len()]` [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: using `clone` on type `[i16; 798]` which implements the `Copy` trait [INFO] [stdout] --> tuner/src/evolution_tuner.rs:33:25 [INFO] [stdout] | [INFO] [stdout] 33 | let mut child = parent.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `parent` [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: the loop variable `j` is only used to index `child` [INFO] [stdout] --> tuner/src/evolution_tuner.rs:34:18 [INFO] [stdout] | [INFO] [stdout] 34 | for j in 0..child.len() { [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] 34 - for j in 0..child.len() { [INFO] [stdout] 34 + for in &mut child { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[i16; 798]` which implements the `Copy` trait [INFO] [stdout] --> tuner/src/evolution_tuner.rs:53:22 [INFO] [stdout] | [INFO] [stdout] 53 | let p1 = population[i].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `population[i]` [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 `[i16; 798]` which implements the `Copy` trait [INFO] [stdout] --> tuner/src/evolution_tuner.rs:54:22 [INFO] [stdout] | [INFO] [stdout] 54 | let p2 = population[j].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `population[j]` [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 `[i16; 798]` which implements the `Copy` trait [INFO] [stdout] --> tuner/src/evolution_tuner.rs:97:24 [INFO] [stdout] | [INFO] [stdout] 97 | survivors.push(population[best].clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `population[best]` [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: usage of a legacy numeric constant [INFO] [stdout] --> tuner/src/evolution_tuner.rs:98:24 [INFO] [stdout] | [INFO] [stdout] 98 | scores[best] = std::i32::MIN; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [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] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 98 - scores[best] = std::i32::MIN; [INFO] [stdout] 98 + scores[best] = i32::MIN; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> tuner/src/evolution_tuner.rs:125:22 [INFO] [stdout] | [INFO] [stdout] 125 | search.start(pos.clone(), args, false, eval); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `pos` [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: useless use of `vec!` [INFO] [stdout] --> tuner/src/evolution_tuner.rs:69:22 [INFO] [stdout] | [INFO] [stdout] 69 | let mut scores = vec![0; POPULATION_SIZE]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[0; POPULATION_SIZE]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GameParser` is never constructed [INFO] [stdout] --> tuner/src/pgn_to_fen.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | struct GameParser { [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 function `new` is never used [INFO] [stdout] --> tuner/src/pgn_to_fen.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 19 | impl GameParser { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 20 | fn new() -> GameParser { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_fen_from_pgn` is never used [INFO] [stdout] --> tuner/src/pgn_to_fen.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn generate_fen_from_pgn(pgn_path: PathBuf) -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MUTATION_SIZE` is never used [INFO] [stdout] --> tuner/src/evolution_tuner.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const MUTATION_SIZE: f64 = 1.1; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `White`, `Black`, and `Draw` are never constructed [INFO] [stdout] --> tuner/src/evolution_tuner.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 106 | enum GameResult { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 107 | White = 1, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 108 | Black = -1, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 109 | Draw = 0, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GameResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> tuner/src/pgn_to_fen.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | if self.games % 1000 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `self.games.is_multiple_of(1000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i16` -> `i16`) [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:139:37 [INFO] [stdout] | [INFO] [stdout] 139 | weights.into_iter().map(|x| x as i16).collect::>().try_into().unwrap() [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: the loop variable `i` is only used to index `arr` [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:172:22 [INFO] [stdout] | [INFO] [stdout] 172 | for i in 0..N { [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 [INFO] [stdout] | [INFO] [stdout] 172 - for i in 0..N { [INFO] [stdout] 172 + for in arr.iter_mut().take(N) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:215:9 [INFO] [stdout] | [INFO] [stdout] 215 | write!(f, "pub const MATERIAL_WEIGHTS_EARLY: [i16; 12] = {:?};\n", self.material_weights_early)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 215 - write!(f, "pub const MATERIAL_WEIGHTS_EARLY: [i16; 12] = {:?};\n", self.material_weights_early)?; [INFO] [stdout] 215 + writeln!(f, "pub const MATERIAL_WEIGHTS_EARLY: [i16; 12] = {:?};", self.material_weights_early)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:216:9 [INFO] [stdout] | [INFO] [stdout] 216 | write!(f, "pub const MATERIAL_WEIGHTS_LATE: [i16; 12] = {:?};\n", self.material_weights_late)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 216 - write!(f, "pub const MATERIAL_WEIGHTS_LATE: [i16; 12] = {:?};\n", self.material_weights_late)?; [INFO] [stdout] 216 + writeln!(f, "pub const MATERIAL_WEIGHTS_LATE: [i16; 12] = {:?};", self.material_weights_late)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | write!(f, "pub const ISOLATED_PAWN_PENALTY: i16 = {};\n", self.isolated_pawn_penalty)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 218 - write!(f, "pub const ISOLATED_PAWN_PENALTY: i16 = {};\n", self.isolated_pawn_penalty)?; [INFO] [stdout] 218 + writeln!(f, "pub const ISOLATED_PAWN_PENALTY: i16 = {};", self.isolated_pawn_penalty)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:219:9 [INFO] [stdout] | [INFO] [stdout] 219 | write!(f, "pub const PASSED_PAWN_BONUS: [i16; 8] = {:?};\n", self.passed_pawn_bonus)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 219 - write!(f, "pub const PASSED_PAWN_BONUS: [i16; 8] = {:?};\n", self.passed_pawn_bonus)?; [INFO] [stdout] 219 + writeln!(f, "pub const PASSED_PAWN_BONUS: [i16; 8] = {:?};", self.passed_pawn_bonus)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | write!(f, "pub const SEMI_OPEN_FILE_BONUS: i16 = {};\n", self.semi_open_file_bonus)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 220 - write!(f, "pub const SEMI_OPEN_FILE_BONUS: i16 = {};\n", self.semi_open_file_bonus)?; [INFO] [stdout] 220 + writeln!(f, "pub const SEMI_OPEN_FILE_BONUS: i16 = {};", self.semi_open_file_bonus)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:221:9 [INFO] [stdout] | [INFO] [stdout] 221 | write!(f, "pub const OPEN_FILE_BONUS: i16 = {};\n", self.open_file_bonus)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 221 - write!(f, "pub const OPEN_FILE_BONUS: i16 = {};\n", self.open_file_bonus)?; [INFO] [stdout] 221 + writeln!(f, "pub const OPEN_FILE_BONUS: i16 = {};", self.open_file_bonus)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:223:9 [INFO] [stdout] | [INFO] [stdout] 223 | write!(f, "pub const KNIGHT_MOBILITY_BONUS_EARLY: i16 = {};\n", self.knight_mobility_bonus_early)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 223 - write!(f, "pub const KNIGHT_MOBILITY_BONUS_EARLY: i16 = {};\n", self.knight_mobility_bonus_early)?; [INFO] [stdout] 223 + writeln!(f, "pub const KNIGHT_MOBILITY_BONUS_EARLY: i16 = {};", self.knight_mobility_bonus_early)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | write!(f, "pub const BISHOP_MOBILITY_BONUS_EARLY: i16 = {};\n", self.bishop_mobility_bonus_early)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 224 - write!(f, "pub const BISHOP_MOBILITY_BONUS_EARLY: i16 = {};\n", self.bishop_mobility_bonus_early)?; [INFO] [stdout] 224 + writeln!(f, "pub const BISHOP_MOBILITY_BONUS_EARLY: i16 = {};", self.bishop_mobility_bonus_early)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:225:9 [INFO] [stdout] | [INFO] [stdout] 225 | write!(f, "pub const ROOK_MOBILITY_BONUS_EARLY: i16 = {};\n", self.rook_mobility_bonus_early)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 225 - write!(f, "pub const ROOK_MOBILITY_BONUS_EARLY: i16 = {};\n", self.rook_mobility_bonus_early)?; [INFO] [stdout] 225 + writeln!(f, "pub const ROOK_MOBILITY_BONUS_EARLY: i16 = {};", self.rook_mobility_bonus_early)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | write!(f, "pub const QUEEN_MOBILITY_BONUS_EARLY: i16 = {};\n", self.queen_mobility_bonus_early)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 226 - write!(f, "pub const QUEEN_MOBILITY_BONUS_EARLY: i16 = {};\n", self.queen_mobility_bonus_early)?; [INFO] [stdout] 226 + writeln!(f, "pub const QUEEN_MOBILITY_BONUS_EARLY: i16 = {};", self.queen_mobility_bonus_early)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:228:9 [INFO] [stdout] | [INFO] [stdout] 228 | write!(f, "pub const KNIGHT_MOBILITY_BONUS_LATE: i16 = {};\n", self.knight_mobility_bonus_late)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 228 - write!(f, "pub const KNIGHT_MOBILITY_BONUS_LATE: i16 = {};\n", self.knight_mobility_bonus_late)?; [INFO] [stdout] 228 + writeln!(f, "pub const KNIGHT_MOBILITY_BONUS_LATE: i16 = {};", self.knight_mobility_bonus_late)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:229:9 [INFO] [stdout] | [INFO] [stdout] 229 | write!(f, "pub const BISHOP_MOBILITY_BONUS_LATE: i16 = {};\n", self.bishop_mobility_bonus_late)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 229 - write!(f, "pub const BISHOP_MOBILITY_BONUS_LATE: i16 = {};\n", self.bishop_mobility_bonus_late)?; [INFO] [stdout] 229 + writeln!(f, "pub const BISHOP_MOBILITY_BONUS_LATE: i16 = {};", self.bishop_mobility_bonus_late)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:230:9 [INFO] [stdout] | [INFO] [stdout] 230 | write!(f, "pub const ROOK_MOBILITY_BONUS_LATE: i16 = {};\n", self.rook_mobility_bonus_late)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 230 - write!(f, "pub const ROOK_MOBILITY_BONUS_LATE: i16 = {};\n", self.rook_mobility_bonus_late)?; [INFO] [stdout] 230 + writeln!(f, "pub const ROOK_MOBILITY_BONUS_LATE: i16 = {};", self.rook_mobility_bonus_late)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | write!(f, "pub const QUEEN_MOBILITY_BONUS_LATE: i16 = {};\n", self.queen_mobility_bonus_late)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 231 - write!(f, "pub const QUEEN_MOBILITY_BONUS_LATE: i16 = {};\n", self.queen_mobility_bonus_late)?; [INFO] [stdout] 231 + writeln!(f, "pub const QUEEN_MOBILITY_BONUS_LATE: i16 = {};", self.queen_mobility_bonus_late)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | write!(f, "pub const PAWN_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 232 - write!(f, "pub const PAWN_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] 232 + writeln!(f, "pub const PAWN_SCORES_EARLY: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:234:9 [INFO] [stdout] | [INFO] [stdout] 234 | write!(f, "pub const PAWN_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 234 - write!(f, "pub const PAWN_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] 234 + writeln!(f, "pub const PAWN_SCORES_LATE: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | write!(f, "pub const KNIGHT_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 236 - write!(f, "pub const KNIGHT_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] 236 + writeln!(f, "pub const KNIGHT_SCORES_EARLY: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:238:9 [INFO] [stdout] | [INFO] [stdout] 238 | write!(f, "pub const KNIGHT_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 238 - write!(f, "pub const KNIGHT_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] 238 + writeln!(f, "pub const KNIGHT_SCORES_LATE: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:240:9 [INFO] [stdout] | [INFO] [stdout] 240 | write!(f, "pub const BISHOP_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 240 - write!(f, "pub const BISHOP_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] 240 + writeln!(f, "pub const BISHOP_SCORES_EARLY: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:242:9 [INFO] [stdout] | [INFO] [stdout] 242 | write!(f, "pub const BISHOP_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 242 - write!(f, "pub const BISHOP_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] 242 + writeln!(f, "pub const BISHOP_SCORES_LATE: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:244:9 [INFO] [stdout] | [INFO] [stdout] 244 | write!(f, "pub const ROOK_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 244 - write!(f, "pub const ROOK_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] 244 + writeln!(f, "pub const ROOK_SCORES_EARLY: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:246:9 [INFO] [stdout] | [INFO] [stdout] 246 | write!(f, "pub const ROOK_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 246 - write!(f, "pub const ROOK_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] 246 + writeln!(f, "pub const ROOK_SCORES_LATE: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | write!(f, "pub const QUEEN_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 248 - write!(f, "pub const QUEEN_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] 248 + writeln!(f, "pub const QUEEN_SCORES_EARLY: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | write!(f, "pub const QUEEN_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 250 - write!(f, "pub const QUEEN_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] 250 + writeln!(f, "pub const QUEEN_SCORES_LATE: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:252:9 [INFO] [stdout] | [INFO] [stdout] 252 | write!(f, "pub const KING_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 252 - write!(f, "pub const KING_SCORES_EARLY: [i16; 64] = \n")?; [INFO] [stdout] 252 + writeln!(f, "pub const KING_SCORES_EARLY: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:254:9 [INFO] [stdout] | [INFO] [stdout] 254 | write!(f, "pub const KING_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 254 - write!(f, "pub const KING_SCORES_LATE: [i16; 64] = \n")?; [INFO] [stdout] 254 + writeln!(f, "pub const KING_SCORES_LATE: [i16; 64] = ")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:262:5 [INFO] [stdout] | [INFO] [stdout] 262 | write!(f, "[\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 262 - write!(f, "[\n")?; [INFO] [stdout] 262 + writeln!(f, "[")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> tuner/src/tuner_evaluator.rs:269:9 [INFO] [stdout] | [INFO] [stdout] 269 | write!(f, "\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 269 - write!(f, "\n")?; [INFO] [stdout] 269 + writeln!(f)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[i16; 798]` which implements the `Copy` trait [INFO] [stdout] --> tuner/src/evolution_tuner.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | let parent = survivors[i % survivors.len()].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `survivors[i % survivors.len()]` [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: using `clone` on type `[i16; 798]` which implements the `Copy` trait [INFO] [stdout] --> tuner/src/evolution_tuner.rs:33:25 [INFO] [stdout] | [INFO] [stdout] 33 | let mut child = parent.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `parent` [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: the loop variable `j` is only used to index `child` [INFO] [stdout] --> tuner/src/evolution_tuner.rs:34:18 [INFO] [stdout] | [INFO] [stdout] 34 | for j in 0..child.len() { [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] 34 - for j in 0..child.len() { [INFO] [stdout] 34 + for in &mut child { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[i16; 798]` which implements the `Copy` trait [INFO] [stdout] --> tuner/src/evolution_tuner.rs:53:22 [INFO] [stdout] | [INFO] [stdout] 53 | let p1 = population[i].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `population[i]` [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 `[i16; 798]` which implements the `Copy` trait [INFO] [stdout] --> tuner/src/evolution_tuner.rs:54:22 [INFO] [stdout] | [INFO] [stdout] 54 | let p2 = population[j].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `population[j]` [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 `[i16; 798]` which implements the `Copy` trait [INFO] [stdout] --> tuner/src/evolution_tuner.rs:97:24 [INFO] [stdout] | [INFO] [stdout] 97 | survivors.push(population[best].clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `population[best]` [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: usage of a legacy numeric constant [INFO] [stdout] --> tuner/src/evolution_tuner.rs:98:24 [INFO] [stdout] | [INFO] [stdout] 98 | scores[best] = std::i32::MIN; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [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] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 98 - scores[best] = std::i32::MIN; [INFO] [stdout] 98 + scores[best] = i32::MIN; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> tuner/src/evolution_tuner.rs:125:22 [INFO] [stdout] | [INFO] [stdout] 125 | search.start(pos.clone(), args, false, eval); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `pos` [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: useless use of `vec!` [INFO] [stdout] --> tuner/src/evolution_tuner.rs:69:22 [INFO] [stdout] | [INFO] [stdout] 69 | let mut scores = vec![0; POPULATION_SIZE]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[0; POPULATION_SIZE]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> engine/src/engine/square.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | / pub fn from_str(str: &str) -> Result { [INFO] [stdout] 31 | | if !str.is_ascii() { [INFO] [stdout] 32 | | return Err(format!("Square string contained non ASCII characters")) [INFO] [stdout] ... | [INFO] [stdout] 51 | | Ok(Square::from(8 * rank + file)) [INFO] [stdout] 52 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/engine/square.rs:32:24 [INFO] [stdout] | [INFO] [stdout] 32 | return Err(format!("Square string contained non ASCII characters")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Square string contained non ASCII characters".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 use of `format!` [INFO] [stdout] --> engine/src/engine/square.rs:43:24 [INFO] [stdout] | [INFO] [stdout] 43 | return Err(format!("Illegal file in square string")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal file in square string".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/engine/square.rs:48:24 [INFO] [stdout] | [INFO] [stdout] 48 | return Err(format!("Illegal rank in square string")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal rank in square string".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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engine/src/engine/zobrist.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | return num as u32; [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] 83 - return num as u32; [INFO] [stdout] 83 + num as u32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engine/src/engine/zobrist.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | return (n1 as u64 | ((n2 as u64) << 32), n3); [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] 93 - return (n1 as u64 | ((n2 as u64) << 32), n3); [INFO] [stdout] 93 + (n1 as u64 | ((n2 as u64) << 32), n3) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> engine/src/engine/color.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | / pub fn from_str(str: &str) -> Result { [INFO] [stdout] 29 | | match str { [INFO] [stdout] 30 | | "w" => Ok(White), [INFO] [stdout] 31 | | "b" => Ok(Black), [INFO] [stdout] ... | [INFO] [stdout] 34 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/engine/position.rs:40:32 [INFO] [stdout] | [INFO] [stdout] 40 | None => return Err(format!("Expected board string in fen")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected board string in fen".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/engine/position.rs:47:24 [INFO] [stdout] | [INFO] [stdout] 47 | return Err(format!("Expected a color char")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected a color char".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/engine/position.rs:65:38 [INFO] [stdout] | [INFO] [stdout] 65 | Err(_) => return Err(format!("Half moves was not a number")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Half moves was not a number".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/engine/position.rs:73:38 [INFO] [stdout] | [INFO] [stdout] 73 | Err(_) => return Err(format!("Full moves was not a number")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Full moves was not a number".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/engine/position.rs:96:28 [INFO] [stdout] | [INFO] [stdout] 96 | return Err(format!("Board from fen does not fit on the board")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Board from fen does not fit on the board".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] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> engine/src/engine/castling.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | / pub fn from_str(castling_str: &str) -> Result { [INFO] [stdout] 26 | | let mut byte: u8 = 0; [INFO] [stdout] 27 | | [INFO] [stdout] 28 | | if castling_str == "-" { [INFO] [stdout] ... | [INFO] [stdout] 49 | | Ok(Self{byte}) [INFO] [stdout] 50 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: transmute used without annotations [INFO] [stdout] --> engine/src/engine/moove.rs:53:52 [INFO] [stdout] | [INFO] [stdout] 53 | Self::new_internal(src, dst, unsafe { mem::transmute(is_capture) }) [INFO] [stdout] | ^^^^^^^^^ help: consider adding missing annotations: `transmute::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_transmute_annotations [INFO] [stdout] = note: `#[warn(clippy::missing_transmute_annotations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large array defined as const [INFO] [stdout] --> /opt/rustwide/target/debug/build/cadabra-b5d3eb995d46b95b/out/sliding_attacks.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | pub const HV_SLIDING_ATTACKS: [u64; 102400] = [ [INFO] [stdout] | ^ ----- help: make this a static item: `static` [INFO] [stdout] | _| [INFO] [stdout] | | [INFO] [stdout] 10 | | 72340172838076926,72340172838076674,72340172838076678,72340172838076674,72340172838076686,72340172838076674,72340172838076678,723... [INFO] [stdout] 11 | | 286,258,262,258,270,258,262,258,318,258,262,258,270,258,262,258,286,258,262,258,270,258,262,258,382,258,262,258,270,258,262,258,2... [INFO] [stdout] 12 | | 65854,65794,65798,65794,65806,65794,65798,65794,65822,65794,65798,65794,65806,65794,65798,65794,65918,65794,65798,65794,65806,657... [INFO] [stdout] ... | [INFO] [stdout] 521 | | 4647714815446351872,4647714815446351872,4647714815446351872,4647714815446351872,4647714815446351872,4647714815446351872,464771481... [INFO] [stdout] 522 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays [INFO] [stdout] = note: `#[warn(clippy::large_const_arrays)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large array defined as const [INFO] [stdout] --> /opt/rustwide/target/debug/build/cadabra-b5d3eb995d46b95b/out/sliding_attacks.rs:532:1 [INFO] [stdout] | [INFO] [stdout] 532 | pub const D12_SLIDING_ATTACKS: [u64; 5248] = [ [INFO] [stdout] | ^ ----- help: make this a static item: `static` [INFO] [stdout] | _| [INFO] [stdout] | | [INFO] [stdout] 533 | | 9241421688590303744,512,262656,512,134480384,512,262656,512,68853957120,512,262656,512,134480384,512,262656,512,35253226045952,51... [INFO] [stdout] 534 | | 76042240,8409088,67653632,20480,8933376,8409088,544768,20480,8665976832,8409088,8657588224,20480,8933376,8409088,544768,20480,760... [INFO] [stdout] 535 | | 70506468999178,70506452221962,17432586,655370,285868042,269090826,17432586,655370,137724821514,137708044298,17432586,655370,28586... [INFO] [stdout] ... | [INFO] [stdout] 559 | | 18049582881570816,18049582881570816,18049582881570816,18049582881570816,18049582881570816,18049582881570816,18049582881570816,180... [INFO] [stdout] 560 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large array defined as const [INFO] [stdout] --> engine/src/engine/move_gen/pin_and_check_masks.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub const SLIDER_HV_CHECK_MASK: [u64; 4096] = generate_hv_slider_check_mask(); [INFO] [stdout] | ^^^^-----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: make this a static item: `static` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large array defined as const [INFO] [stdout] --> engine/src/engine/move_gen/pin_and_check_masks.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub const SLIDER_D12_CHECK_MASK: [u64; 4096] = generate_d12_slider_check_mask(); [INFO] [stdout] | ^^^^-----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: make this a static item: `static` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large array defined as const [INFO] [stdout] --> engine/src/engine/move_gen/pin_and_check_masks.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub const PIN_MASKS: [u64; 16384] = generate_pin_masks(); [INFO] [stdout] | ^^^^-----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: make this a static item: `static` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> engine/src/engine/search/mod.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | mod search; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SearchArgs` which implements the `Copy` trait [INFO] [stdout] --> engine/src/engine/search/search.rs:42:24 [INFO] [stdout] | [INFO] [stdout] 42 | let meta = meta.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `meta` [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: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> engine/src/engine/search/search.rs:43:23 [INFO] [stdout] | [INFO] [stdout] 43 | let pos = pos.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `pos` [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: manual `Range::contains` implementation [INFO] [stdout] --> engine/src/engine/search/search.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | if score >= -MATE_VALUE && score < -MATE_BOUND { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(-MATE_VALUE..-MATE_BOUND).contains(&score)` [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: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> engine/src/engine/search/search.rs:206:29 [INFO] [stdout] | [INFO] [stdout] 206 | if depth == 0 || ply >= MAX_DEPTH as u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `MAX_DEPTH` [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 `if` statement can be collapsed [INFO] [stdout] --> engine/src/engine/search/search.rs:250:16 [INFO] [stdout] | [INFO] [stdout] 250 | } else if depth == 2 { [INFO] [stdout] | ________________^ [INFO] [stdout] 251 | | if static_eval - PRE_FRONTIER_FUTILITY_MARGIN >= beta { [INFO] [stdout] 252 | | return static_eval - PRE_FRONTIER_FUTILITY_MARGIN [INFO] [stdout] 253 | | } [INFO] [stdout] 254 | | } [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] 250 ~ } else if depth == 2 [INFO] [stdout] 251 ~ && static_eval - PRE_FRONTIER_FUTILITY_MARGIN >= beta { [INFO] [stdout] 252 | return static_eval - PRE_FRONTIER_FUTILITY_MARGIN [INFO] [stdout] 253 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter is only used in recursion [INFO] [stdout] --> engine/src/engine/search/search.rs:175:153 [INFO] [stdout] | [INFO] [stdout] 175 | ...t: &mut SearchContext, evaluator: &E) -> i16 { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_evaluator` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> engine/src/engine/search/search.rs:269:117 [INFO] [stdout] | [INFO] [stdout] 269 | let score = -negamax::(&new_pos, -beta, -beta + 1, depth - 1 - NULL_MOVE_R, ply + 1, context, evaluator); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | score = -negamax::(&new_pos, -beta, -alpha, depth - 1, ply + 1, context, evaluator); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | score = -negamax::(&new_pos, -alpha - 1, -alpha, depth - 1 - reduction, ply + 1, context, evaluator); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | score = -negamax::(&new_pos, -alpha - 1, -alpha, depth - 1, ply + 1, context, evaluator); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 315 | score = -negamax::(&new_pos, -beta, -alpha, depth - 1, ply + 1, context, evaluator); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | score = -negamax::(&new_pos, -alpha - 1, -alpha, depth - 1, ply + 1, context, evaluator); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 324 | score = -negamax::(&new_pos, -beta, -alpha, depth - 1, ply + 1, context, evaluator); [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: this function has too many arguments (8/7) [INFO] [stdout] --> engine/src/engine/search/transposition_table.rs:146:5 [INFO] [stdout] | [INFO] [stdout] 146 | pub fn record(&self, hash: u64, best_move: Move, depth: u8, score: i16, flag: HashFlag, ply: u8, generation: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engine/src/engine/search/transposition_table.rs:180:9 [INFO] [stdout] | [INFO] [stdout] 180 | return found as f32 / checked as f32; [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] 180 - return found as f32 / checked as f32; [INFO] [stdout] 180 + found as f32 / checked as f32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `PVTable` [INFO] [stdout] --> engine/src/engine/search/tri_pv_table.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / pub fn new() -> Self { [INFO] [stdout] 13 | | Self { [INFO] [stdout] 14 | | pv_table: [[None; MAX_DEPTH as usize]; MAX_DEPTH as usize], [INFO] [stdout] 15 | | pv_lengths: [0; MAX_DEPTH as usize], [INFO] [stdout] 16 | | } [INFO] [stdout] 17 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 11 + impl Default for PVTable { [INFO] [stdout] 12 + fn default() -> Self { [INFO] [stdout] 13 + Self::new() [INFO] [stdout] 14 + } [INFO] [stdout] 15 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `RepetitionTable` [INFO] [stdout] --> engine/src/engine/search/repetition_table.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / pub fn new() -> Self { [INFO] [stdout] 11 | | Self { len: 0, hashes: [0; 100] } [INFO] [stdout] 12 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 9 + impl Default for RepetitionTable { [INFO] [stdout] 10 + fn default() -> Self { [INFO] [stdout] 11 + Self::new() [INFO] [stdout] 12 + } [INFO] [stdout] 13 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> engine/src/engine/search/search_args.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new(max_depth: Option, ponder: bool, infinite: bool, time_left: Option, inc: Option, movestogo: Option, nodes: Option, movetime: Option) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> engine/src/engine/search/quiescence.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | if !in_check && (!(moove.is_capture() || moove.is_enpassant())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!(in_check || moove.is_capture() || moove.is_enpassant())` [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: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> engine/src/engine/search/quiescence.rs:29:24 [INFO] [stdout] | [INFO] [stdout] 29 | let mut copy = pos.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*pos` [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: the function `parse_set_option` doesn't need a mutable reference [INFO] [stdout] --> engine/src/interface.rs:52:40 [INFO] [stdout] | [INFO] [stdout] 52 | match parse_set_option(&mut command, settings) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 52 - match parse_set_option(&mut command, settings) { [INFO] [stdout] 52 + match parse_set_option(&command, settings) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> engine/src/interface.rs:52:40 [INFO] [stdout] | [INFO] [stdout] 52 | match parse_set_option(&mut command, settings) { [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `command` [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 `match` expression can be replaced with `?` [INFO] [stdout] --> engine/src/interface.rs:245:21 [INFO] [stdout] | [INFO] [stdout] 245 | let depth_str = match take_next(command) { [INFO] [stdout] | _____________________^ [INFO] [stdout] 246 | | None => { [INFO] [stdout] 247 | | return None [INFO] [stdout] 248 | | }, [INFO] [stdout] ... | [INFO] [stdout] 251 | | }, [INFO] [stdout] 252 | | }; [INFO] [stdout] | |_____^ help: try instead: `take_next(command)?` [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: manual implementation of `ok` [INFO] [stdout] --> engine/src/interface.rs:254:5 [INFO] [stdout] | [INFO] [stdout] 254 | / match depth_str.parse::() { [INFO] [stdout] 255 | | Ok(depth) => Some(depth), [INFO] [stdout] 256 | | Err(_) => { [INFO] [stdout] 257 | | None [INFO] [stdout] 258 | | }, [INFO] [stdout] 259 | | } [INFO] [stdout] | |_____^ help: replace with: `depth_str.parse::().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] = note: `#[warn(clippy::manual_ok_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:274:28 [INFO] [stdout] | [INFO] [stdout] 274 | None => return Err(format!("No argument provided for position command")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"No argument provided for position command".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:280:25 [INFO] [stdout] | [INFO] [stdout] 280 | _ => return Err(format!("Illegal position argument")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal position argument".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:313:36 [INFO] [stdout] | [INFO] [stdout] 313 | return Err(format!("Illegal go depth")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go depth".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:326:32 [INFO] [stdout] | [INFO] [stdout] 326 | return Err(format!("Illegal go wtime")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go wtime".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:334:32 [INFO] [stdout] | [INFO] [stdout] 334 | return Err(format!("Illegal go btime")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go btime".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:342:32 [INFO] [stdout] | [INFO] [stdout] 342 | return Err(format!("Illegal go winc")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go winc".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:350:32 [INFO] [stdout] | [INFO] [stdout] 350 | return Err(format!("Illegal go binc")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go binc".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:357:32 [INFO] [stdout] | [INFO] [stdout] 357 | return Err(format!("Illegal go movestogo")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go movestogo".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:364:32 [INFO] [stdout] | [INFO] [stdout] 364 | return Err(format!("Illegal go movetime")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go movetime".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> engine/src/interface.rs:370:32 [INFO] [stdout] | [INFO] [stdout] 370 | return Err(format!("Illegal go nodes")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Illegal go nodes".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] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> engine/src/engine/moove.rs:53:47 [INFO] [stdout] | [INFO] [stdout] 53 | Self::new_internal(src, dst, unsafe { mem::transmute(is_capture) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 53 - Self::new_internal(src, dst, unsafe { mem::transmute(is_capture) }) [INFO] [stdout] 53 + Self::new_internal(src, dst, unsafe { u8::from(is_capture) }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> engine/src/engine/moove.rs:64:31 [INFO] [stdout] | [INFO] [stdout] 64 | move_type |= unsafe { mem::transmute::(is_capture) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 64 - move_type |= unsafe { mem::transmute::(is_capture) }; [INFO] [stdout] 64 + move_type |= unsafe { u8::from(is_capture) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking validator v0.1.0 (/opt/rustwide/workdir/validator) [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> validator/src/main.rs:11:46 [INFO] [stdout] | [INFO] [stdout] 11 | fn debug_perft(pos: &Position, depth: u8) -> Result, (String, Position)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 1040 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `(std::string::String, cadabra::Position)`, for example by boxing large elements or replacing it with `Box<(std::string::String, cadabra::Position)>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> validator/src/main.rs:77:76 [INFO] [stdout] | [INFO] [stdout] 77 | fn validate_position(fen: String, name: &str, depth: u8, tracing: bool) -> Result<(), (String, Position)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 1040 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `(std::string::String, cadabra::Position)`, for example by boxing large elements or replacing it with `Box<(std::string::String, cadabra::Position)>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> validator/src/main.rs:11:46 [INFO] [stdout] | [INFO] [stdout] 11 | fn debug_perft(pos: &Position, depth: u8) -> Result, (String, Position)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 1040 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `(std::string::String, cadabra::Position)`, for example by boxing large elements or replacing it with `Box<(std::string::String, cadabra::Position)>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> validator/src/main.rs:77:76 [INFO] [stdout] | [INFO] [stdout] 77 | fn validate_position(fen: String, name: &str, depth: u8, tracing: bool) -> Result<(), (String, Position)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 1040 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `(std::string::String, cadabra::Position)`, for example by boxing large elements or replacing it with `Box<(std::string::String, cadabra::Position)>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 40s [INFO] running `Command { std: "docker" "inspect" "e33ff87a4df9cde12ea5e6028458c0e7dc0bed12e779053ed55065a115a738f0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e33ff87a4df9cde12ea5e6028458c0e7dc0bed12e779053ed55065a115a738f0", kill_on_drop: false }` [INFO] [stdout] e33ff87a4df9cde12ea5e6028458c0e7dc0bed12e779053ed55065a115a738f0