[INFO] cloning repository https://github.com/ThenerzZ/rust-chess-engine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ThenerzZ/rust-chess-engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThenerzZ%2Frust-chess-engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThenerzZ%2Frust-chess-engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4d24d3a8088bf5a21ac66f307263056fe88dc752
[INFO] testing ThenerzZ/rust-chess-engine against nightly-2025-01-18 for randomize-layout-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThenerzZ%2Frust-chess-engine" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/ThenerzZ/rust-chess-engine on toolchain nightly-2025-01-18
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2025-01-18" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/ThenerzZ/rust-chess-engine
[INFO] finished tweaking git repo https://github.com/ThenerzZ/rust-chess-engine
[INFO] tweaked toml for git repo https://github.com/ThenerzZ/rust-chess-engine written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2025-01-18" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 400 packages to latest compatible versions
[INFO] [stderr]       Adding bevy v0.12.1 (available: v0.15.1)
[INFO] [stderr]       Adding block-sys v0.1.0-beta.1 (available: v0.1.0-beta.2)
[INFO] [stderr]       Adding block2 v0.2.0-alpha.6 (available: v0.2.0)
[INFO] [stderr]       Adding futures-lite v1.13.0 (available: v2.6.0)
[INFO] [stderr]       Adding objc-sys v0.2.0-beta.2 (available: v0.2.0-beta.3)
[INFO] [stderr]       Adding objc2 v0.3.0-beta.3.patch-leaks.3 (available: v0.3.0-beta.5)
[INFO] [stderr]       Adding objc2-encode v2.0.0-pre.2 (available: v2.0.0)
[INFO] [stderr]       Adding thiserror v1.0.69 (available: v2.0.11)
[INFO] [stderr]       Adding wasm-bindgen-futures v0.4.45 (available: v0.4.50)
[INFO] [stderr]       Adding web-sys v0.3.72 (available: v0.3.77)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2025-01-18" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded crossbeam-deque v0.8.6
[INFO] [stderr]   Downloaded waker-fn v1.2.0
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.18
[INFO] [stderr]   Downloaded instant v0.1.13
[INFO] [stderr]   Downloaded fastrand v1.9.0
[INFO] [stderr]   Downloaded futures-lite v1.13.0
[INFO] [stderr]   Downloaded range-alloc v0.1.4
[INFO] [stderr]   Downloaded android_log-sys v0.3.1
[INFO] [stderr]   Downloaded matchers v0.1.0
[INFO] [stderr]   Downloaded objc_exception v0.1.2
[INFO] [stderr]   Downloaded svg_fmt v0.4.4
[INFO] [stderr]   Downloaded bevy_macro_utils v0.12.1
[INFO] [stderr]   Downloaded bevy_utils_proc_macros v0.12.1
[INFO] [stderr]   Downloaded proc-macro-crate v1.3.1
[INFO] [stderr]   Downloaded com-rs v0.2.1
[INFO] [stderr]   Downloaded windows-interface v0.48.0
[INFO] [stderr]   Downloaded guillotiere v0.6.2
[INFO] [stderr]   Downloaded glyph_brush_layout v0.2.4
[INFO] [stderr]   Downloaded valuable v0.1.1
[INFO] [stderr]   Downloaded coreaudio-sys v0.2.16
[INFO] [stderr]   Downloaded bevy_asset_macros v0.12.1
[INFO] [stderr]   Downloaded euclid v0.22.11
[INFO] [stderr]   Downloaded xi-unicode v0.3.0
[INFO] [stderr]   Downloaded bit-set v0.5.3
[INFO] [stderr]   Downloaded constgebra v0.1.4
[INFO] [stderr]   Downloaded d3d12 v0.7.0
[INFO] [stderr]   Downloaded constant_time_eq v0.3.1
[INFO] [stderr]   Downloaded pp-rs v0.2.1
[INFO] [stderr]   Downloaded async-broadcast v0.5.1
[INFO] [stderr]   Downloaded oboe v0.6.1
[INFO] [stderr]   Downloaded libloading v0.7.4
[INFO] [stderr]   Downloaded coreaudio-rs v0.11.3
[INFO] [stderr]   Downloaded alsa v0.9.1
[INFO] [stderr]   Downloaded cpal v0.15.3
[INFO] [stderr]   Downloaded bevy_asset v0.12.1
[INFO] [stderr]   Downloaded naga_oil v0.10.1
[INFO] [stderr]   Downloaded itertools v0.13.0
[INFO] [stderr]   Downloaded oboe-sys v0.6.1
[INFO] [stderr]   Downloaded sysinfo v0.29.11
[INFO] [stderr]   Downloaded oboe-sys v0.5.0
[INFO] [stderr]   Downloaded bindgen v0.70.1
[INFO] [stderr]   Downloaded wgpu-core v0.17.1
[INFO] [stderr]   Downloaded winit v0.28.7
[INFO] [stderr]   Downloaded bevy v0.12.1
[INFO] [stderr]   Downloaded blake3 v1.5.5
[INFO] [stderr]   Downloaded ntapi v0.4.1
[INFO] [stderr]   Downloaded serde_json v1.0.137
[INFO] [stderr]   Downloaded regex-syntax v0.7.5
[INFO] [stderr]   Downloaded bevy_pbr v0.12.1
[INFO] [stderr]   Downloaded glow v0.12.3
[INFO] [stderr]   Downloaded gilrs v0.10.10
[INFO] [stderr]   Downloaded ash v0.37.3+1.3.251
[INFO] [stderr]   Downloaded petgraph v0.6.5
[INFO] [stderr]   Downloaded web-sys v0.3.72
[INFO] [stderr]   Downloaded naga v0.13.0
[INFO] [stderr]   Downloaded regex-automata v0.4.9
[INFO] [stderr]   Downloaded object v0.36.7
[INFO] [stderr]   Downloaded glam v0.24.2
[INFO] [stderr]   Downloaded regex-syntax v0.6.29
[INFO] [stderr]   Downloaded ndk-sys v0.4.1+23.1.7779620
[INFO] [stderr]   Downloaded widestring v1.1.0
[INFO] [stderr]   Downloaded bevy_ecs v0.12.1
[INFO] [stderr]   Downloaded bevy_core_pipeline v0.12.1
[INFO] [stderr]   Downloaded dasp_sample v0.11.0
[INFO] [stderr]   Downloaded ndk v0.8.0
[INFO] [stderr]   Downloaded tinyvec v1.8.1
[INFO] [stderr]   Downloaded bevy_diagnostic v0.12.1
[INFO] [stderr]   Downloaded gpu-allocator v0.22.0
[INFO] [stderr]   Downloaded wgpu-hal v0.17.2
[INFO] [stderr]   Downloaded windows-core v0.54.0
[INFO] [stderr]   Downloaded lewton v0.10.2
[INFO] [stderr]   Downloaded rodio v0.17.3
[INFO] [stderr]   Downloaded gilrs-core v0.5.15
[INFO] [stderr]   Downloaded base64 v0.13.1
[INFO] [stderr]   Downloaded gltf-derive v1.4.1
[INFO] [stderr]   Downloaded gltf v1.4.1
[INFO] [stderr]   Downloaded bevy_scene v0.12.1
[INFO] [stderr]   Downloaded const_panic v0.2.12
[INFO] [stderr]   Downloaded const_soft_float v0.1.4
[INFO] [stderr]   Downloaded hexasphere v9.1.0
[INFO] [stderr]   Downloaded data-encoding v2.7.0
[INFO] [stderr]   Downloaded thiserror-core v1.0.50
[INFO] [stderr]   Downloaded ruzstd v0.4.0
[INFO] [stderr]   Downloaded regex v1.11.1
[INFO] [stderr]   Downloaded khronos-egl v4.1.0
[INFO] [stderr]   Downloaded spirv v0.2.0+1.5.4
[INFO] [stderr]   Downloaded num-derive v0.3.3
[INFO] [stderr]   Downloaded oboe v0.5.0
[INFO] [stderr]   Downloaded alsa-sys v0.3.1
[INFO] [stderr]   Downloaded clang-sys v1.8.1
[INFO] [stderr]   Downloaded ogg v0.8.0
[INFO] [stderr]   Downloaded inotify v0.10.2
[INFO] [stderr]   Downloaded io-kit-sys v0.4.1
[INFO] [stderr]   Downloaded gltf-json v1.4.1
[INFO] [stderr]   Downloaded async-lock v2.8.0
[INFO] [stderr]   Downloaded android-activity v0.4.3
[INFO] [stderr]   Downloaded bevy_time v0.12.1
[INFO] [stderr]   Downloaded encase v0.6.1
[INFO] [stderr]   Downloaded thiserror-core-impl v1.0.50
[INFO] [stderr]   Downloaded tracing-subscriber v0.3.19
[INFO] [stderr]   Downloaded windows-result v0.1.2
[INFO] [stderr]   Downloaded bevy_gizmos v0.12.1
[INFO] [stderr]   Downloaded bevy_animation v0.12.1
[INFO] [stderr]   Downloaded bevy_gltf v0.12.1
[INFO] [stderr]   Downloaded bevy_render v0.12.1
[INFO] [stderr]   Downloaded bevy_mikktspace v0.12.1
[INFO] [stderr]   Downloaded ktx2 v0.3.0
[INFO] [stderr]   Downloaded winnow v0.5.40
[INFO] [stderr]   Downloaded objc2 v0.3.0-beta.3.patch-leaks.3
[INFO] [stderr]   Downloaded taffy v0.3.19
[INFO] [stderr]   Downloaded regex-automata v0.1.10
[INFO] [stderr]   Downloaded rayon v1.10.0
[INFO] [stderr]   Downloaded cexpr v0.6.0
[INFO] [stderr]   Downloaded glob v0.3.2
[INFO] [stderr]   Downloaded num-derive v0.4.2
[INFO] [stderr]   Downloaded async-fs v1.6.0
[INFO] [stderr]   Downloaded bevy_render_macros v0.12.1
[INFO] [stderr]   Downloaded twox-hash v1.6.3
[INFO] [stderr]   Downloaded wgpu v0.17.2
[INFO] [stderr]   Downloaded toml_edit v0.20.7
[INFO] [stderr]   Downloaded bevy_reflect v0.12.1
[INFO] [stderr]   Downloaded crossbeam-channel v0.5.14
[INFO] [stderr]   Downloaded cc v1.2.10
[INFO] [stderr]   Downloaded mio v0.8.11
[INFO] [stderr]   Downloaded toml_edit v0.19.15
[INFO] [stderr]   Downloaded bevy_ui v0.12.1
[INFO] [stderr]   Downloaded allocator-api2 v0.2.21
[INFO] [stderr]   Downloaded indexmap v2.7.1
[INFO] [stderr]   Downloaded encase_derive_impl v0.6.1
[INFO] [stderr]   Downloaded encase_derive v0.6.1
[INFO] [stderr]   Downloaded gpu-descriptor v0.2.4
[INFO] [stderr]   Downloaded hassle-rs v0.10.0
[INFO] [stderr]   Downloaded wgpu-types v0.17.0
[INFO] [stderr]   Downloaded rectangle-pack v0.4.2
[INFO] [stderr]   Downloaded accesskit_consumer v0.16.1
[INFO] [stderr]   Downloaded accesskit_windows v0.15.1
[INFO] [stderr]   Downloaded bevy_tasks v0.12.1
[INFO] [stderr]   Downloaded bevy_input v0.12.1
[INFO] [stderr]   Downloaded bevy_reflect_derive v0.12.1
[INFO] [stderr]   Downloaded uuid v1.12.1
[INFO] [stderr]   Downloaded ndk v0.7.0
[INFO] [stderr]   Downloaded rayon-core v1.12.1
[INFO] [stderr]   Downloaded bevy_audio v0.12.1
[INFO] [stderr]   Downloaded inotify-sys v0.1.5
[INFO] [stderr]   Downloaded mach2 v0.4.2
[INFO] [stderr]   Downloaded libudev-sys v0.1.4
[INFO] [stderr]   Downloaded bevy_gilrs v0.12.1
[INFO] [stderr]   Downloaded inflections v1.1.1
[INFO] [stderr]   Downloaded bevy_encase_derive v0.12.1
[INFO] [stderr]   Downloaded gpu-descriptor-types v0.1.2
[INFO] [stderr]   Downloaded bit-vec v0.6.3
[INFO] [stderr]   Downloaded bevy_sprite v0.12.1
[INFO] [stderr]   Downloaded bevy_text v0.12.1
[INFO] [stderr]   Downloaded bevy_transform v0.12.1
[INFO] [stderr]   Downloaded bevy_hierarchy v0.12.1
[INFO] [stderr]   Downloaded accesskit v0.12.3
[INFO] [stderr]   Downloaded bevy_app v0.12.1
[INFO] [stderr]   Downloaded core-graphics v0.22.3
[INFO] [stderr]   Downloaded objc2-encode v2.0.0-pre.2
[INFO] [stderr]   Downloaded redox_syscall v0.3.5
[INFO] [stderr]   Downloaded bevy_winit v0.12.1
[INFO] [stderr]   Downloaded accesskit_macos v0.10.1
[INFO] [stderr]   Downloaded windows-implement v0.48.0
[INFO] [stderr]   Downloaded bevy_core v0.12.1
[INFO] [stderr]   Downloaded tracing-wasm v0.2.1
[INFO] [stderr]   Downloaded event-listener v2.5.3
[INFO] [stderr]   Downloaded num_enum v0.6.1
[INFO] [stderr]   Downloaded radsort v0.1.1
[INFO] [stderr]   Downloaded grid v0.10.0
[INFO] [stderr]   Downloaded accesskit_winit v0.15.0
[INFO] [stderr]   Downloaded approx v0.5.1
[INFO] [stderr]   Downloaded bevy_derive v0.12.1
[INFO] [stderr]   Downloaded bevy_ecs_macros v0.12.1
[INFO] [stderr]   Downloaded async-channel v1.9.0
[INFO] [stderr]   Downloaded bevy_math v0.12.1
[INFO] [stderr]   Downloaded num_enum v0.5.11
[INFO] [stderr]   Downloaded tracing-log v0.1.4
[INFO] [stderr]   Downloaded bevy_log v0.12.1
[INFO] [stderr]   Downloaded bevy_utils v0.12.1
[INFO] [stderr]   Downloaded num_enum_derive v0.6.1
[INFO] [stderr]   Downloaded bevy_ptr v0.12.1
[INFO] [stderr]   Downloaded erased-serde v0.3.31
[INFO] [stderr]   Downloaded nonmax v0.5.5
[INFO] [stderr]   Downloaded fixedbitset v0.4.2
[INFO] [stderr]   Downloaded bevy_window v0.12.1
[INFO] [stderr]   Downloaded num_enum_derive v0.5.11
[INFO] [stderr]   Downloaded block-sys v0.1.0-beta.1
[INFO] [stderr]   Downloaded wayland-scanner v0.29.5
[INFO] [stderr]   Downloaded metal v0.26.0
[INFO] [stderr]   Downloaded bevy_internal v0.12.1
[INFO] [stderr]   Downloaded objc-sys v0.2.0-beta.2
[INFO] [stderr]   Downloaded raw-window-handle v0.5.2
[INFO] [stderr]   Downloaded block2 v0.2.0-alpha.6
[INFO] [stderr]   Downloaded bevy_a11y v0.12.1
[INFO] [stderr]   Downloaded image v0.24.9
[INFO] [stderr]   Downloaded windows v0.48.0
[INFO] [stderr]   Downloaded windows v0.54.0
[INFO] [stderr]   Downloaded windows v0.44.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] eff1b08f9a58a242925f71efcb333aae42c89857ac2424a5423a986e7e817c27
[INFO] running `Command { std: "docker" "start" "-a" "eff1b08f9a58a242925f71efcb333aae42c89857ac2424a5423a986e7e817c27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "eff1b08f9a58a242925f71efcb333aae42c89857ac2424a5423a986e7e817c27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eff1b08f9a58a242925f71efcb333aae42c89857ac2424a5423a986e7e817c27", kill_on_drop: false }`
[INFO] [stdout] eff1b08f9a58a242925f71efcb333aae42c89857ac2424a5423a986e7e817c27
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d7d2e860f8e6fba02225dac8902d5eb8f25a76044df1985d7dcfc8be17b9b7d1
[INFO] running `Command { std: "docker" "start" "-a" "d7d2e860f8e6fba02225dac8902d5eb8f25a76044df1985d7dcfc8be17b9b7d1", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling unicode-ident v1.0.14
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling serde v1.0.217
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling once_cell v1.20.2
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling toml_datetime v0.6.8
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling log v0.4.25
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling tracing-core v0.1.33
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling event-listener v2.5.3
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling futures-lite v2.6.0
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling async-task v4.7.1
[INFO] [stderr]    Compiling fastrand v1.9.0
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling waker-fn v1.2.0
[INFO] [stderr]    Compiling nonmax v0.5.5
[INFO] [stderr]    Compiling thread_local v1.1.8
[INFO] [stderr]    Compiling smol_str v0.2.2
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling bevy_ptr v0.12.1
[INFO] [stderr]    Compiling futures-lite v1.13.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling regex-syntax v0.6.29
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling overload v0.1.1
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling nu-ansi-term v0.46.0
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling indexmap v2.7.1
[INFO] [stderr]    Compiling async-channel v1.9.0
[INFO] [stderr]    Compiling async-executor v1.13.1
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]    Compiling tracing-log v0.1.4
[INFO] [stderr]    Compiling syn v2.0.96
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling raw-window-handle v0.5.2
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling bevy_tasks v0.12.1
[INFO] [stderr]    Compiling uuid v1.12.1
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling event-listener v5.4.0
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling bit-vec v0.6.3
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling bit-set v0.5.3
[INFO] [stderr]    Compiling event-listener-strategy v0.5.3
[INFO] [stderr]    Compiling pp-rs v0.2.1
[INFO] [stderr]    Compiling spirv v0.2.0+1.5.4
[INFO] [stderr]    Compiling crossbeam-channel v0.5.14
[INFO] [stderr]    Compiling cc v1.2.10
[INFO] [stderr]    Compiling libloading v0.7.4
[INFO] [stderr]    Compiling hexf-parse v0.2.1
[INFO] [stderr]    Compiling khronos-egl v4.1.0
[INFO] [stderr]    Compiling toml_edit v0.20.7
[INFO] [stderr]    Compiling codespan-reporting v0.11.1
[INFO] [stderr]    Compiling ash v0.37.3+1.3.251
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling piper v0.2.4
[INFO] [stderr]    Compiling async-channel v2.3.1
[INFO] [stderr]    Compiling async-fs v1.6.0
[INFO] [stderr]    Compiling accesskit v0.12.3
[INFO] [stderr]    Compiling adler2 v2.0.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.3
[INFO] [stderr]    Compiling async-lock v2.8.0
[INFO] [stderr]    Compiling blocking v1.6.1
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling libloading v0.8.6
[INFO] [stderr]    Compiling thiserror-core v1.0.50
[INFO] [stderr]    Compiling renderdoc-sys v1.1.0
[INFO] [stderr]    Compiling arrayref v0.3.9
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling regex-automata v0.1.10
[INFO] [stderr]    Compiling constant_time_eq v0.3.1
[INFO] [stderr]    Compiling glow v0.12.3
[INFO] [stderr]    Compiling profiling v1.0.16
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling async-broadcast v0.5.1
[INFO] [stderr]    Compiling const_soft_float v0.1.4
[INFO] [stderr]    Compiling blake3 v1.5.5
[INFO] [stderr]    Compiling flate2 v1.0.35
[INFO] [stderr]    Compiling constgebra v0.1.4
[INFO] [stderr]    Compiling twox-hash v1.6.3
[INFO] [stderr]    Compiling const_panic v0.2.12
[INFO] [stderr]    Compiling regex-syntax v0.7.5
[INFO] [stderr]    Compiling color_quant v1.1.0
[INFO] [stderr]    Compiling matchers v0.1.0
[INFO] [stderr]    Compiling png v0.17.16
[INFO] [stderr]    Compiling data-encoding v2.7.0
[INFO] [stderr]    Compiling ktx2 v0.3.0
[INFO] [stderr]    Compiling radsort v0.1.1
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling xml-rs v0.8.25
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling euclid v0.22.11
[INFO] [stderr]    Compiling ttf-parser v0.25.1
[INFO] [stderr]    Compiling svg_fmt v0.4.4
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling serde_json v1.0.137
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]    Compiling ryu v1.0.18
[INFO] [stderr]    Compiling rectangle-pack v0.4.2
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling itoa v1.0.14
[INFO] [stderr]    Compiling ab_glyph_rasterizer v0.1.8
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling tinyvec v1.8.1
[INFO] [stderr]    Compiling inotify v0.10.2
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling guillotiere v0.6.2
[INFO] [stderr]    Compiling ogg v0.8.0
[INFO] [stderr]    Compiling vec_map v0.8.2
[INFO] [stderr]    Compiling xi-unicode v0.3.0
[INFO] [stderr]    Compiling gilrs v0.10.10
[INFO] [stderr]    Compiling dasp_sample v0.11.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling grid v0.10.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling sysinfo v0.29.11
[INFO] [stderr]    Compiling bevy_macro_utils v0.12.1
[INFO] [stderr]    Compiling encase_derive_impl v0.6.1
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling lewton v0.10.2
[INFO] [stderr]    Compiling taffy v0.3.19
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling winit v0.28.7
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling owned_ttf_parser v0.25.0
[INFO] [stderr]    Compiling serde_derive v1.0.217
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling bytemuck_derive v1.8.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling bevy_utils_proc_macros v0.12.1
[INFO] [stderr]    Compiling bevy_reflect_derive v0.12.1
[INFO] [stderr]    Compiling bevy_ecs_macros v0.12.1
[INFO] [stderr]    Compiling bevy_derive v0.12.1
[INFO] [stderr]    Compiling thiserror-core-impl v1.0.50
[INFO] [stderr]    Compiling bevy_asset_macros v0.12.1
[INFO] [stderr]    Compiling encase_derive v0.6.1
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling bevy_render_macros v0.12.1
[INFO] [stderr]    Compiling bevy_encase_derive v0.12.1
[INFO] [stderr]    Compiling ab_glyph v0.2.29
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]    Compiling chess_core v0.1.0 (/opt/rustwide/workdir/crates/chess_core)
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling bytemuck v1.21.0
[INFO] [stdout] warning: unused variable: `wb`
[INFO] [stdout]    --> crates/chess_core/src/board.rs:431:26
[INFO] [stdout]     |
[INFO] [stdout] 431 |             if let (Some(wb), Some(bb)) = (white_bishop, black_bishop) {
[INFO] [stdout]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_wb`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bb`
[INFO] [stdout]    --> crates/chess_core/src/board.rs:431:36
[INFO] [stdout]     |
[INFO] [stdout] 431 |             if let (Some(wb), Some(bb)) = (white_bishop, black_bishop) {
[INFO] [stdout]     |                                    ^^ help: if this is intentional, prefix it with an underscore: `_bb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling glyph_brush_layout v0.2.4
[INFO] [stderr]    Compiling image v0.24.9
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling ruzstd v0.4.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling chess_engine v0.1.0 (/opt/rustwide/workdir/crates/chess_engine)
[INFO] [stdout] warning: unused import: `evaluation::evaluate_position`
[INFO] [stdout]  --> crates/chess_engine/src/lib.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) use evaluation::evaluate_position;
[INFO] [stdout]   |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `search::search_best_move`
[INFO] [stdout]   --> crates/chess_engine/src/lib.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) use search::search_best_move; 
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> crates/chess_engine/src/search.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:328:9
[INFO] [stdout]     |
[INFO] [stdout] 328 |     let mut moves = generate_ordered_moves(board, best_move, depth, prev_move);
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:638:13
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let mut history = HISTORY_TABLE.get_mut().unwrap();
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:653:13
[INFO] [stdout]     |
[INFO] [stdout] 653 |         let mut killer_moves = KILLER_MOVES.get_mut().unwrap();
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:663:17
[INFO] [stdout]     |
[INFO] [stdout] 663 |             let mut counter_moves = COUNTER_MOVES.get_mut().unwrap();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_DEPTH` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const MIN_DEPTH: u8 = 4;                     // Always search at least this deep
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASPIRATION_WINDOW` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const ASPIRATION_WINDOW: i32 = 50;           // Initial aspiration window size
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NULL_MOVE_R` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const NULL_MOVE_R: u8 = 3;                   // Null move reduction
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LMR_DEPTH_THRESHOLD` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const LMR_DEPTH_THRESHOLD: u8 = 3;           // Late Move Reduction depth threshold
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LMR_MOVE_THRESHOLD` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const LMR_MOVE_THRESHOLD: usize = 4;         // Number of moves before LMR kicks in
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FUTILITY_MARGIN` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const FUTILITY_MARGIN: [i32; 4] = [0, 300, 500, 800];  // Increased margins for better tactical play
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_QUIESCENCE_DEPTH` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const MAX_QUIESCENCE_DEPTH: u8 = 8;          // Deeper quiescence search for tactical positions
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PV_LENGTH` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | const MAX_PV_LENGTH: usize = 64;  // Maximum length of the principal variation
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PV_TABLE` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | static PV_TABLE: Lazy<Mutex<Vec<Move>>> = Lazy::new(|| Mutex::new(Vec::with_capacity(MAX_PV_LENGTH)));
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `elapsed` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 97  | impl TimeManager {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn elapsed(&self) -> Duration {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BETA_INIT` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:125:7
[INFO] [stdout]     |
[INFO] [stdout] 125 | const BETA_INIT: i32 = 19000;                     // Initial beta for search window
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_MOVES_TO_CONSIDER` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:127:7
[INFO] [stdout]     |
[INFO] [stdout] 127 | const MAX_MOVES_TO_CONSIDER: usize = 50;          // Increased from 35 to consider more moves
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_TACTICAL_MOVES` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:130:7
[INFO] [stdout]     |
[INFO] [stdout] 130 | const MAX_TACTICAL_MOVES: usize = 8;         // Maximum number of tactical moves to consider
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_default_move` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:133:4
[INFO] [stdout]     |
[INFO] [stdout] 133 | fn create_default_move() -> Move {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_history_tables` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:633:4
[INFO] [stdout]     |
[INFO] [stdout] 633 | fn update_history_tables(mv: Move, depth: u8, prev_move: Option<Move>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_history_score` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:785:4
[INFO] [stdout]     |
[INFO] [stdout] 785 | fn get_history_score(history: &Vec<Vec<i32>>, mv: Move) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gives_check` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:797:4
[INFO] [stdout]     |
[INFO] [stdout] 797 | fn gives_check(board: &Board) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_tactical_position` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:863:4
[INFO] [stdout]     |
[INFO] [stdout] 863 | fn is_tactical_position(board: &Board) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_material_count` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:929:4
[INFO] [stdout]     |
[INFO] [stdout] 929 | fn get_material_count(board: &Board) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_killer_moves` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:956:4
[INFO] [stdout]     |
[INFO] [stdout] 956 | fn update_killer_moves(killer_moves: &mut Option<[Move; 2]>, mv: Move) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_clearly_winning_capture` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:967:4
[INFO] [stdout]     |
[INFO] [stdout] 967 | fn is_clearly_winning_capture(board: &Board, mv: Move) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_depth` is never read
[INFO] [stdout]   --> crates/chess_engine/src/ai.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct ChessAI {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 14 |     max_depth: u8,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChessAI` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:572:36
[INFO] [stdout]     |
[INFO] [stdout] 572 |                 let killer_moves = KILLER_MOVES.get_mut().unwrap().get(depth as usize);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:585:41
[INFO] [stdout]     |
[INFO] [stdout] 585 |                     let counter_moves = COUNTER_MOVES.get_mut().unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:594:31
[INFO] [stdout]     |
[INFO] [stdout] 594 |                 let history = HISTORY_TABLE.get_mut().unwrap();
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:638:27
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let mut history = HISTORY_TABLE.get_mut().unwrap();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:653:32
[INFO] [stdout]     |
[INFO] [stdout] 653 |         let mut killer_moves = KILLER_MOVES.get_mut().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:663:37
[INFO] [stdout]     |
[INFO] [stdout] 663 |             let mut counter_moves = COUNTER_MOVES.get_mut().unwrap();
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling accesskit_winit v0.15.0
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling bitflags v2.8.0
[INFO] [stderr]    Compiling glam v0.24.2
[INFO] [stderr]    Compiling erased-serde v0.3.31
[INFO] [stderr]    Compiling naga v0.13.0
[INFO] [stderr]    Compiling gpu-descriptor-types v0.1.2
[INFO] [stderr]    Compiling gpu-alloc-types v0.3.0
[INFO] [stderr]    Compiling wgpu-types v0.17.0
[INFO] [stderr]    Compiling ron v0.8.1
[INFO] [stderr]    Compiling alsa v0.9.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling gpu-alloc v0.6.0
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling gilrs-core v0.5.15
[INFO] [stderr]    Compiling bevy_utils v0.12.1
[INFO] [stderr]    Compiling gpu-descriptor v0.2.4
[INFO] [stderr]    Compiling rodio v0.17.3
[INFO] [stderr]    Compiling gltf-json v1.4.1
[INFO] [stderr]    Compiling bevy_math v0.12.1
[INFO] [stderr]    Compiling encase v0.6.1
[INFO] [stderr]    Compiling bevy_mikktspace v0.12.1
[INFO] [stderr]    Compiling hexasphere v9.1.0
[INFO] [stderr]    Compiling bevy_reflect v0.12.1
[INFO] [stderr]    Compiling gltf v1.4.1
[INFO] [stderr]    Compiling wgpu-hal v0.17.2
[INFO] [stderr]    Compiling naga_oil v0.10.1
[INFO] [stderr]    Compiling bevy_ecs v0.12.1
[INFO] [stderr]    Compiling wgpu-core v0.17.1
[INFO] [stderr]    Compiling wgpu v0.17.2
[INFO] [stderr]    Compiling bevy_app v0.12.1
[INFO] [stderr]    Compiling bevy_log v0.12.1
[INFO] [stderr]    Compiling bevy_core v0.12.1
[INFO] [stderr]    Compiling bevy_input v0.12.1
[INFO] [stderr]    Compiling bevy_time v0.12.1
[INFO] [stderr]    Compiling bevy_a11y v0.12.1
[INFO] [stderr]    Compiling bevy_asset v0.12.1
[INFO] [stderr]    Compiling bevy_hierarchy v0.12.1
[INFO] [stderr]    Compiling bevy_diagnostic v0.12.1
[INFO] [stderr]    Compiling bevy_transform v0.12.1
[INFO] [stderr]    Compiling bevy_window v0.12.1
[INFO] [stderr]    Compiling bevy_gilrs v0.12.1
[INFO] [stderr]    Compiling bevy_audio v0.12.1
[INFO] [stderr]    Compiling bevy_render v0.12.1
[INFO] [stderr]    Compiling bevy_winit v0.12.1
[INFO] [stderr]    Compiling bevy_core_pipeline v0.12.1
[INFO] [stderr]    Compiling bevy_animation v0.12.1
[INFO] [stderr]    Compiling bevy_scene v0.12.1
[INFO] [stderr]    Compiling bevy_sprite v0.12.1
[INFO] [stderr]    Compiling bevy_pbr v0.12.1
[INFO] [stderr]    Compiling bevy_text v0.12.1
[INFO] [stderr]    Compiling bevy_ui v0.12.1
[INFO] [stderr]    Compiling bevy_gltf v0.12.1
[INFO] [stderr]    Compiling bevy_gizmos v0.12.1
[INFO] [stderr]    Compiling bevy_internal v0.12.1
[INFO] [stderr]    Compiling bevy v0.12.1
[INFO] [stderr]    Compiling chess_ui v0.1.0 (/opt/rustwide/workdir/crates/chess_ui)
[INFO] [stdout] warning: unused imports: `AsyncComputeTaskPool` and `Task`
[INFO] [stdout]  --> crates/chess_ui/src/lib.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 |     tasks::{AsyncComputeTaskPool, Task},
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board_offset`
[INFO] [stdout]    --> crates/chess_ui/src/lib.rs:346:5
[INFO] [stdout]     |
[INFO] [stdout] 346 |     board_offset: Vec3,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_board_offset`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_q`
[INFO] [stdout]    --> crates/chess_ui/src/lib.rs:427:5
[INFO] [stdout]     |
[INFO] [stdout] 427 |     camera_q: Query<(&Camera, &GlobalTransform)>,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/chess_ui/src/lib.rs:1276:5
[INFO] [stdout]      |
[INFO] [stdout] 1276 |     mut interaction_query: Query<
[INFO] [stdout]      |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/chess_ui/src/lib.rs:1281:5
[INFO] [stdout]      |
[INFO] [stdout] 1281 |     mut pieces: Query<(Entity, &mut Piece, &mut Transform)>,
[INFO] [stdout]      |     ----^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GameEndState` is more private than the item `GameState::game_end_state`
[INFO] [stdout]   --> crates/chess_ui/src/lib.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub game_end_state: GameEndState,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `GameState::game_end_state` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `GameEndState` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> crates/chess_ui/src/lib.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum GameEndState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PendingPromotion` is more private than the item `GameState::pending_promotion`
[INFO] [stdout]    --> crates/chess_ui/src/lib.rs:40:5
[INFO] [stdout]     |
[INFO] [stdout] 40  |     pub pending_promotion: Option<PendingPromotion>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `GameState::pending_promotion` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `PendingPromotion` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> crates/chess_ui/src/lib.rs:130:1
[INFO] [stdout]     |
[INFO] [stdout] 130 | struct PendingPromotion {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveInfo` is never constructed
[INFO] [stdout]    --> crates/chess_ui/src/lib.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | struct MoveInfo {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MoveAttempt` is never used
[INFO] [stdout]    --> crates/chess_ui/src/lib.rs:144:6
[INFO] [stdout]     |
[INFO] [stdout] 144 | enum MoveAttempt {
[INFO] [stdout]     |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_player_move` is never used
[INFO] [stdout]    --> crates/chess_ui/src/lib.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn validate_player_move(board: &Board, piece: &Piece, target: Position) -> MoveAttempt {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling chess-engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 19s
[INFO] running `Command { std: "docker" "inspect" "d7d2e860f8e6fba02225dac8902d5eb8f25a76044df1985d7dcfc8be17b9b7d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d7d2e860f8e6fba02225dac8902d5eb8f25a76044df1985d7dcfc8be17b9b7d1", kill_on_drop: false }`
[INFO] [stdout] d7d2e860f8e6fba02225dac8902d5eb8f25a76044df1985d7dcfc8be17b9b7d1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6c48b874c66251c34aba1f01707bd5ca35852b484a3625f899c376eb9bbdb9b1
[INFO] running `Command { std: "docker" "start" "-a" "6c48b874c66251c34aba1f01707bd5ca35852b484a3625f899c376eb9bbdb9b1", kill_on_drop: false }`
[INFO] [stdout] warning: unused variable: `wb`
[INFO] [stdout]    --> crates/chess_core/src/board.rs:431:26
[INFO] [stdout]     |
[INFO] [stdout] 431 |             if let (Some(wb), Some(bb)) = (white_bishop, black_bishop) {
[INFO] [stdout]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_wb`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bb`
[INFO] [stdout]    --> crates/chess_core/src/board.rs:431:36
[INFO] [stdout]     |
[INFO] [stdout] 431 |             if let (Some(wb), Some(bb)) = (white_bishop, black_bishop) {
[INFO] [stdout]     |                                    ^^ help: if this is intentional, prefix it with an underscore: `_bb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `evaluation::evaluate_position`
[INFO] [stdout]  --> crates/chess_engine/src/lib.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) use evaluation::evaluate_position;
[INFO] [stdout]   |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `search::search_best_move`
[INFO] [stdout]   --> crates/chess_engine/src/lib.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) use search::search_best_move; 
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> crates/chess_engine/src/search.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:328:9
[INFO] [stdout]     |
[INFO] [stdout] 328 |     let mut moves = generate_ordered_moves(board, best_move, depth, prev_move);
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:638:13
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let mut history = HISTORY_TABLE.get_mut().unwrap();
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:653:13
[INFO] [stdout]     |
[INFO] [stdout] 653 |         let mut killer_moves = KILLER_MOVES.get_mut().unwrap();
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:663:17
[INFO] [stdout]     |
[INFO] [stdout] 663 |             let mut counter_moves = COUNTER_MOVES.get_mut().unwrap();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_DEPTH` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const MIN_DEPTH: u8 = 4;                     // Always search at least this deep
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASPIRATION_WINDOW` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const ASPIRATION_WINDOW: i32 = 50;           // Initial aspiration window size
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NULL_MOVE_R` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const NULL_MOVE_R: u8 = 3;                   // Null move reduction
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LMR_DEPTH_THRESHOLD` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const LMR_DEPTH_THRESHOLD: u8 = 3;           // Late Move Reduction depth threshold
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LMR_MOVE_THRESHOLD` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const LMR_MOVE_THRESHOLD: usize = 4;         // Number of moves before LMR kicks in
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FUTILITY_MARGIN` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const FUTILITY_MARGIN: [i32; 4] = [0, 300, 500, 800];  // Increased margins for better tactical play
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_QUIESCENCE_DEPTH` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const MAX_QUIESCENCE_DEPTH: u8 = 8;          // Deeper quiescence search for tactical positions
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PV_LENGTH` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | const MAX_PV_LENGTH: usize = 64;  // Maximum length of the principal variation
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PV_TABLE` is never used
[INFO] [stdout]   --> crates/chess_engine/src/search.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | static PV_TABLE: Lazy<Mutex<Vec<Move>>> = Lazy::new(|| Mutex::new(Vec::with_capacity(MAX_PV_LENGTH)));
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `elapsed` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 97  | impl TimeManager {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn elapsed(&self) -> Duration {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BETA_INIT` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:125:7
[INFO] [stdout]     |
[INFO] [stdout] 125 | const BETA_INIT: i32 = 19000;                     // Initial beta for search window
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_MOVES_TO_CONSIDER` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:127:7
[INFO] [stdout]     |
[INFO] [stdout] 127 | const MAX_MOVES_TO_CONSIDER: usize = 50;          // Increased from 35 to consider more moves
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_TACTICAL_MOVES` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:130:7
[INFO] [stdout]     |
[INFO] [stdout] 130 | const MAX_TACTICAL_MOVES: usize = 8;         // Maximum number of tactical moves to consider
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_default_move` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:133:4
[INFO] [stdout]     |
[INFO] [stdout] 133 | fn create_default_move() -> Move {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_history_tables` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:633:4
[INFO] [stdout]     |
[INFO] [stdout] 633 | fn update_history_tables(mv: Move, depth: u8, prev_move: Option<Move>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_history_score` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:785:4
[INFO] [stdout]     |
[INFO] [stdout] 785 | fn get_history_score(history: &Vec<Vec<i32>>, mv: Move) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gives_check` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:797:4
[INFO] [stdout]     |
[INFO] [stdout] 797 | fn gives_check(board: &Board) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_tactical_position` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:863:4
[INFO] [stdout]     |
[INFO] [stdout] 863 | fn is_tactical_position(board: &Board) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_material_count` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:929:4
[INFO] [stdout]     |
[INFO] [stdout] 929 | fn get_material_count(board: &Board) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_killer_moves` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:956:4
[INFO] [stdout]     |
[INFO] [stdout] 956 | fn update_killer_moves(killer_moves: &mut Option<[Move; 2]>, mv: Move) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_clearly_winning_capture` is never used
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:967:4
[INFO] [stdout]     |
[INFO] [stdout] 967 | fn is_clearly_winning_capture(board: &Board, mv: Move) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_depth` is never read
[INFO] [stdout]   --> crates/chess_engine/src/ai.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct ChessAI {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 14 |     max_depth: u8,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChessAI` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:572:36
[INFO] [stdout]     |
[INFO] [stdout] 572 |                 let killer_moves = KILLER_MOVES.get_mut().unwrap().get(depth as usize);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:585:41
[INFO] [stdout]     |
[INFO] [stdout] 585 |                     let counter_moves = COUNTER_MOVES.get_mut().unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:594:31
[INFO] [stdout]     |
[INFO] [stdout] 594 |                 let history = HISTORY_TABLE.get_mut().unwrap();
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:638:27
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let mut history = HISTORY_TABLE.get_mut().unwrap();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling chess-engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:653:32
[INFO] [stdout]     |
[INFO] [stdout] 653 |         let mut killer_moves = KILLER_MOVES.get_mut().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> crates/chess_engine/src/search.rs:663:37
[INFO] [stdout]     |
[INFO] [stdout] 663 |             let mut counter_moves = COUNTER_MOVES.get_mut().unwrap();
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsyncComputeTaskPool` and `Task`
[INFO] [stdout]  --> crates/chess_ui/src/lib.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 |     tasks::{AsyncComputeTaskPool, Task},
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board_offset`
[INFO] [stdout]    --> crates/chess_ui/src/lib.rs:346:5
[INFO] [stdout]     |
[INFO] [stdout] 346 |     board_offset: Vec3,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_board_offset`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_q`
[INFO] [stdout]    --> crates/chess_ui/src/lib.rs:427:5
[INFO] [stdout]     |
[INFO] [stdout] 427 |     camera_q: Query<(&Camera, &GlobalTransform)>,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/chess_ui/src/lib.rs:1276:5
[INFO] [stdout]      |
[INFO] [stdout] 1276 |     mut interaction_query: Query<
[INFO] [stdout]      |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/chess_ui/src/lib.rs:1281:5
[INFO] [stdout]      |
[INFO] [stdout] 1281 |     mut pieces: Query<(Entity, &mut Piece, &mut Transform)>,
[INFO] [stdout]      |     ----^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GameEndState` is more private than the item `GameState::game_end_state`
[INFO] [stdout]   --> crates/chess_ui/src/lib.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub game_end_state: GameEndState,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `GameState::game_end_state` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `GameEndState` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> crates/chess_ui/src/lib.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum GameEndState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PendingPromotion` is more private than the item `GameState::pending_promotion`
[INFO] [stdout]    --> crates/chess_ui/src/lib.rs:40:5
[INFO] [stdout]     |
[INFO] [stdout] 40  |     pub pending_promotion: Option<PendingPromotion>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `GameState::pending_promotion` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `PendingPromotion` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> crates/chess_ui/src/lib.rs:130:1
[INFO] [stdout]     |
[INFO] [stdout] 130 | struct PendingPromotion {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveInfo` is never constructed
[INFO] [stdout]    --> crates/chess_ui/src/lib.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | struct MoveInfo {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MoveAttempt` is never used
[INFO] [stdout]    --> crates/chess_ui/src/lib.rs:144:6
[INFO] [stdout]     |
[INFO] [stdout] 144 | enum MoveAttempt {
[INFO] [stdout]     |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_player_move` is never used
[INFO] [stdout]    --> crates/chess_ui/src/lib.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn validate_player_move(board: &Board, piece: &Piece, target: Position) -> MoveAttempt {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 5.91s
[INFO] running `Command { std: "docker" "inspect" "6c48b874c66251c34aba1f01707bd5ca35852b484a3625f899c376eb9bbdb9b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6c48b874c66251c34aba1f01707bd5ca35852b484a3625f899c376eb9bbdb9b1", kill_on_drop: false }`
[INFO] [stdout] 6c48b874c66251c34aba1f01707bd5ca35852b484a3625f899c376eb9bbdb9b1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 4e6f4085ab8c402600291983ffaf07403f96bfbf95d289ca2dfb98db9b9de9a2
[INFO] running `Command { std: "docker" "start" "-a" "4e6f4085ab8c402600291983ffaf07403f96bfbf95d289ca2dfb98db9b9de9a2", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `wb`
[INFO] [stderr]    --> crates/chess_core/src/board.rs:431:26
[INFO] [stderr]     |
[INFO] [stderr] 431 |             if let (Some(wb), Some(bb)) = (white_bishop, black_bishop) {
[INFO] [stderr]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_wb`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bb`
[INFO] [stderr]    --> crates/chess_core/src/board.rs:431:36
[INFO] [stderr]     |
[INFO] [stderr] 431 |             if let (Some(wb), Some(bb)) = (white_bishop, black_bishop) {
[INFO] [stderr]     |                                    ^^ help: if this is intentional, prefix it with an underscore: `_bb`
[INFO] [stderr] 
[INFO] [stderr] warning: `chess_core` (lib) generated 2 warnings
[INFO] [stderr] warning: unused import: `evaluation::evaluate_position`
[INFO] [stderr]  --> crates/chess_engine/src/lib.rs:9:16
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub(crate) use evaluation::evaluate_position;
[INFO] [stderr]   |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `search::search_best_move`
[INFO] [stderr]   --> crates/chess_engine/src/lib.rs:10:16
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub(crate) use search::search_best_move; 
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rayon::prelude`
[INFO] [stderr]  --> crates/chess_engine/src/search.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use rayon::prelude::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:328:9
[INFO] [stderr]     |
[INFO] [stderr] 328 |     let mut moves = generate_ordered_moves(board, best_move, depth, prev_move);
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:638:13
[INFO] [stderr]     |
[INFO] [stderr] 638 |         let mut history = HISTORY_TABLE.get_mut().unwrap();
[INFO] [stderr]     |             ----^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:653:13
[INFO] [stderr]     |
[INFO] [stderr] 653 |         let mut killer_moves = KILLER_MOVES.get_mut().unwrap();
[INFO] [stderr]     |             ----^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:663:17
[INFO] [stderr]     |
[INFO] [stderr] 663 |             let mut counter_moves = COUNTER_MOVES.get_mut().unwrap();
[INFO] [stderr]     |                 ----^^^^^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MIN_DEPTH` is never used
[INFO] [stderr]   --> crates/chess_engine/src/search.rs:18:7
[INFO] [stderr]    |
[INFO] [stderr] 18 | const MIN_DEPTH: u8 = 4;                     // Always search at least this deep
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ASPIRATION_WINDOW` is never used
[INFO] [stderr]   --> crates/chess_engine/src/search.rs:19:7
[INFO] [stderr]    |
[INFO] [stderr] 19 | const ASPIRATION_WINDOW: i32 = 50;           // Initial aspiration window size
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NULL_MOVE_R` is never used
[INFO] [stderr]   --> crates/chess_engine/src/search.rs:21:7
[INFO] [stderr]    |
[INFO] [stderr] 21 | const NULL_MOVE_R: u8 = 3;                   // Null move reduction
[INFO] [stderr]    |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LMR_DEPTH_THRESHOLD` is never used
[INFO] [stderr]   --> crates/chess_engine/src/search.rs:22:7
[INFO] [stderr]    |
[INFO] [stderr] 22 | const LMR_DEPTH_THRESHOLD: u8 = 3;           // Late Move Reduction depth threshold
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LMR_MOVE_THRESHOLD` is never used
[INFO] [stderr]   --> crates/chess_engine/src/search.rs:23:7
[INFO] [stderr]    |
[INFO] [stderr] 23 | const LMR_MOVE_THRESHOLD: usize = 4;         // Number of moves before LMR kicks in
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FUTILITY_MARGIN` is never used
[INFO] [stderr]   --> crates/chess_engine/src/search.rs:24:7
[INFO] [stderr]    |
[INFO] [stderr] 24 | const FUTILITY_MARGIN: [i32; 4] = [0, 300, 500, 800];  // Increased margins for better tactical play
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_QUIESCENCE_DEPTH` is never used
[INFO] [stderr]   --> crates/chess_engine/src/search.rs:25:7
[INFO] [stderr]    |
[INFO] [stderr] 25 | const MAX_QUIESCENCE_DEPTH: u8 = 8;          // Deeper quiescence search for tactical positions
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_PV_LENGTH` is never used
[INFO] [stderr]   --> crates/chess_engine/src/search.rs:65:7
[INFO] [stderr]    |
[INFO] [stderr] 65 | const MAX_PV_LENGTH: usize = 64;  // Maximum length of the principal variation
[INFO] [stderr]    |       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `PV_TABLE` is never used
[INFO] [stderr]   --> crates/chess_engine/src/search.rs:66:8
[INFO] [stderr]    |
[INFO] [stderr] 66 | static PV_TABLE: Lazy<Mutex<Vec<Move>>> = Lazy::new(|| Mutex::new(Vec::with_capacity(MAX_PV_LENGTH)));
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `elapsed` is never used
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:117:8
[INFO] [stderr]     |
[INFO] [stderr] 97  | impl TimeManager {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 117 |     fn elapsed(&self) -> Duration {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BETA_INIT` is never used
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:125:7
[INFO] [stderr]     |
[INFO] [stderr] 125 | const BETA_INIT: i32 = 19000;                     // Initial beta for search window
[INFO] [stderr]     |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_MOVES_TO_CONSIDER` is never used
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:127:7
[INFO] [stderr]     |
[INFO] [stderr] 127 | const MAX_MOVES_TO_CONSIDER: usize = 50;          // Increased from 35 to consider more moves
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_TACTICAL_MOVES` is never used
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:130:7
[INFO] [stderr]     |
[INFO] [stderr] 130 | const MAX_TACTICAL_MOVES: usize = 8;         // Maximum number of tactical moves to consider
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_default_move` is never used
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:133:4
[INFO] [stderr]     |
[INFO] [stderr] 133 | fn create_default_move() -> Move {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `update_history_tables` is never used
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:633:4
[INFO] [stderr]     |
[INFO] [stderr] 633 | fn update_history_tables(mv: Move, depth: u8, prev_move: Option<Move>) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_history_score` is never used
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:785:4
[INFO] [stderr]     |
[INFO] [stderr] 785 | fn get_history_score(history: &Vec<Vec<i32>>, mv: Move) -> i32 {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `gives_check` is never used
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:797:4
[INFO] [stderr]     |
[INFO] [stderr] 797 | fn gives_check(board: &Board) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_tactical_position` is never used
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:863:4
[INFO] [stderr]     |
[INFO] [stderr] 863 | fn is_tactical_position(board: &Board) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_material_count` is never used
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:929:4
[INFO] [stderr]     |
[INFO] [stderr] 929 | fn get_material_count(board: &Board) -> i32 {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `update_killer_moves` is never used
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:956:4
[INFO] [stderr]     |
[INFO] [stderr] 956 | fn update_killer_moves(killer_moves: &mut Option<[Move; 2]>, mv: Move) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_clearly_winning_capture` is never used
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:967:4
[INFO] [stderr]     |
[INFO] [stderr] 967 | fn is_clearly_winning_capture(board: &Board, mv: Move) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `max_depth` is never read
[INFO] [stderr]   --> crates/chess_engine/src/ai.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct ChessAI {
[INFO] [stderr]    |            ------- field in this struct
[INFO] [stderr] 14 |     max_depth: u8,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ChessAI` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:572:36
[INFO] [stderr]     |
[INFO] [stderr] 572 |                 let killer_moves = KILLER_MOVES.get_mut().unwrap().get(depth as usize);
[INFO] [stderr]     |                                    ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:585:41
[INFO] [stderr]     |
[INFO] [stderr] 585 |                     let counter_moves = COUNTER_MOVES.get_mut().unwrap();
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:594:31
[INFO] [stderr]     |
[INFO] [stderr] 594 |                 let history = HISTORY_TABLE.get_mut().unwrap();
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:638:27
[INFO] [stderr]     |
[INFO] [stderr] 638 |         let mut history = HISTORY_TABLE.get_mut().unwrap();
[INFO] [stderr]     |                           ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:653:32
[INFO] [stderr]     |
[INFO] [stderr] 653 |         let mut killer_moves = KILLER_MOVES.get_mut().unwrap();
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stderr]    --> crates/chess_engine/src/search.rs:663:37
[INFO] [stderr]     |
[INFO] [stderr] 663 |             let mut counter_moves = COUNTER_MOVES.get_mut().unwrap();
[INFO] [stderr]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr] 
[INFO] [stderr] warning: `chess_engine` (lib) generated 35 warnings (run `cargo fix --lib -p chess_engine` to apply 6 suggestions)
[INFO] [stderr] warning: unused imports: `AsyncComputeTaskPool` and `Task`
[INFO] [stderr]  --> crates/chess_ui/src/lib.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 |     tasks::{AsyncComputeTaskPool, Task},
[INFO] [stderr]   |             ^^^^^^^^^^^^^^^^^^^^  ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `board_offset`
[INFO] [stderr]    --> crates/chess_ui/src/lib.rs:346:5
[INFO] [stderr]     |
[INFO] [stderr] 346 |     board_offset: Vec3,
[INFO] [stderr]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_board_offset`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `camera_q`
[INFO] [stderr]    --> crates/chess_ui/src/lib.rs:427:5
[INFO] [stderr]     |
[INFO] [stderr] 427 |     camera_q: Query<(&Camera, &GlobalTransform)>,
[INFO] [stderr]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_q`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/chess_ui/src/lib.rs:1276:5
[INFO] [stderr]      |
[INFO] [stderr] 1276 |     mut interaction_query: Query<
[INFO] [stderr]      |     ----^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |     |
[INFO] [stderr]      |     help: remove this `mut`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/chess_ui/src/lib.rs:1281:5
[INFO] [stderr]      |
[INFO] [stderr] 1281 |     mut pieces: Query<(Entity, &mut Piece, &mut Transform)>,
[INFO] [stderr]      |     ----^^^^^^
[INFO] [stderr]      |     |
[INFO] [stderr]      |     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: type `GameEndState` is more private than the item `GameState::game_end_state`
[INFO] [stderr]   --> crates/chess_ui/src/lib.rs:39:5
[INFO] [stderr]    |
[INFO] [stderr] 39 |     pub game_end_state: GameEndState,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `GameState::game_end_state` is reachable at visibility `pub`
[INFO] [stderr]    |
[INFO] [stderr] note: but type `GameEndState` is only usable at visibility `pub(crate)`
[INFO] [stderr]   --> crates/chess_ui/src/lib.rs:25:1
[INFO] [stderr]    |
[INFO] [stderr] 25 | enum GameEndState {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `PendingPromotion` is more private than the item `GameState::pending_promotion`
[INFO] [stderr]    --> crates/chess_ui/src/lib.rs:40:5
[INFO] [stderr]     |
[INFO] [stderr] 40  |     pub pending_promotion: Option<PendingPromotion>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `GameState::pending_promotion` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `PendingPromotion` is only usable at visibility `pub(crate)`
[INFO] [stderr]    --> crates/chess_ui/src/lib.rs:130:1
[INFO] [stderr]     |
[INFO] [stderr] 130 | struct PendingPromotion {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MoveInfo` is never constructed
[INFO] [stderr]    --> crates/chess_ui/src/lib.rs:137:8
[INFO] [stderr]     |
[INFO] [stderr] 137 | struct MoveInfo {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: enum `MoveAttempt` is never used
[INFO] [stderr]    --> crates/chess_ui/src/lib.rs:144:6
[INFO] [stderr]     |
[INFO] [stderr] 144 | enum MoveAttempt {
[INFO] [stderr]     |      ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `validate_player_move` is never used
[INFO] [stderr]    --> crates/chess_ui/src/lib.rs:170:4
[INFO] [stderr]     |
[INFO] [stderr] 170 | fn validate_player_move(board: &Board, piece: &Piece, target: Position) -> MoveAttempt {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `chess_ui` (lib) generated 10 warnings (run `cargo fix --lib -p chess_ui` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.86s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/chess_engine-95bb0e2ced1c4bf7)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "4e6f4085ab8c402600291983ffaf07403f96bfbf95d289ca2dfb98db9b9de9a2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4e6f4085ab8c402600291983ffaf07403f96bfbf95d289ca2dfb98db9b9de9a2", kill_on_drop: false }`
[INFO] [stdout] 4e6f4085ab8c402600291983ffaf07403f96bfbf95d289ca2dfb98db9b9de9a2
