[INFO] cloning repository https://github.com/D3lta-2-1/chess_game [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/D3lta-2-1/chess_game" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FD3lta-2-1%2Fchess_game", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FD3lta-2-1%2Fchess_game'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d122180114e2e52e0b25485782c6be0b540d51b4 [INFO] linting D3lta-2-1/chess_game against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FD3lta-2-1%2Fchess_game" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/D3lta-2-1/chess_game [INFO] finished tweaking git repo https://github.com/D3lta-2-1/chess_game [INFO] tweaked toml for git repo https://github.com/D3lta-2-1/chess_game written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/D3lta-2-1/chess_game on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/D3lta-2-1/chess_game already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wayland-cursor v0.31.6 [INFO] [stderr] Downloaded redox_syscall v0.5.6 [INFO] [stderr] Downloaded vello_encoding v0.3.0 [INFO] [stderr] Downloaded vello_shaders v0.3.0 [INFO] [stderr] Downloaded android_logger v0.14.1 [INFO] [stderr] Downloaded unicode-properties v0.1.2 [INFO] [stderr] Downloaded vello v0.3.0 [INFO] [stderr] Downloaded peniko v0.2.0 [INFO] [stderr] Downloaded font-types v0.7.2 [INFO] [stderr] Downloaded cc v1.1.22 [INFO] [stderr] Downloaded vello_svg v0.5.0 [INFO] [stderr] Downloaded read-fonts v0.22.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] fd8d5cb2a2f299f4151e9e20680e67661c0000886992f871e7131e1ada8ecda3 [INFO] running `Command { std: "docker" "start" "-a" "fd8d5cb2a2f299f4151e9e20680e67661c0000886992f871e7131e1ada8ecda3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fd8d5cb2a2f299f4151e9e20680e67661c0000886992f871e7131e1ada8ecda3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fd8d5cb2a2f299f4151e9e20680e67661c0000886992f871e7131e1ada8ecda3", kill_on_drop: false }` [INFO] [stdout] fd8d5cb2a2f299f4151e9e20680e67661c0000886992f871e7131e1ada8ecda3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3e4675bba16e69a594568a29304a89a723743c9cab0fe66541bcb38098274002 [INFO] running `Command { std: "docker" "start" "-a" "3e4675bba16e69a594568a29304a89a723743c9cab0fe66541bcb38098274002", kill_on_drop: false }` [INFO] [stderr] Compiling thiserror v1.0.64 [INFO] [stderr] Compiling rustix v0.38.37 [INFO] [stderr] Compiling wayland-sys v0.31.5 [INFO] [stderr] Compiling syn v2.0.79 [INFO] [stderr] Compiling cc v1.1.22 [INFO] [stderr] Compiling libm v0.2.8 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Compiling quick-xml v0.36.2 [INFO] [stderr] Checking ahash v0.8.11 [INFO] [stderr] Compiling wayland-client v0.31.6 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking core_maths v0.1.0 [INFO] [stderr] Checking ttf-parser v0.24.1 [INFO] [stderr] Checking kurbo v0.11.1 [INFO] [stderr] Compiling wayland-scanner v0.31.5 [INFO] [stderr] Compiling naga v22.1.0 [INFO] [stderr] Checking float-cmp v0.9.0 [INFO] [stderr] Checking unicode-width v0.1.14 [INFO] [stderr] Compiling wayland-backend v0.3.7 [INFO] [stderr] Compiling bit-vec v0.7.0 [INFO] [stderr] Checking miniz_oxide v0.8.0 [INFO] [stderr] Compiling indexmap v2.5.0 [INFO] [stderr] Compiling bit-set v0.6.0 [INFO] [stderr] Compiling codespan-reporting v0.11.1 [INFO] [stderr] Checking strict-num v0.1.1 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking memmap2 v0.9.5 [INFO] [stderr] Compiling hexf-parse v0.2.1 [INFO] [stderr] Checking unicode-xid v0.2.6 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling bitflags v2.6.0 [INFO] [stderr] Checking gpu-descriptor v0.3.0 [INFO] [stderr] Checking flate2 v1.0.34 [INFO] [stderr] Checking khronos-egl v6.0.0 [INFO] [stderr] Checking euclid v0.22.11 [INFO] [stderr] Compiling slotmap v1.0.7 [INFO] [stderr] Checking svg_fmt v0.4.3 [INFO] [stderr] Compiling thiserror-impl v1.0.64 [INFO] [stderr] Compiling bytemuck_derive v1.7.1 [INFO] [stderr] Checking peniko v0.2.0 [INFO] [stderr] Checking fdeflate v0.3.5 [INFO] [stderr] Checking regex-syntax v0.8.4 [INFO] [stderr] Checking roxmltree v0.20.0 [INFO] [stderr] Checking png v0.17.14 [INFO] [stderr] Checking fontconfig-parser v0.5.7 [INFO] [stderr] Checking guillotiere v0.6.2 [INFO] [stderr] Checking owned_ttf_parser v0.24.0 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking unicode-bidi-mirroring v0.3.0 [INFO] [stderr] Checking unicode-properties v0.1.2 [INFO] [stderr] Checking unicode-ccc v0.3.0 [INFO] [stderr] Checking unicode-script v0.5.7 [INFO] [stderr] Checking zune-jpeg v0.4.13 [INFO] [stderr] Checking image-webp v0.1.3 [INFO] [stderr] Checking ab_glyph v0.2.28 [INFO] [stderr] Checking anstyle-parse v0.2.6 [INFO] [stderr] Checking regex-automata v0.4.7 [INFO] [stderr] Checking bytemuck v1.18.0 [INFO] [stderr] Compiling winit v0.30.5 [INFO] [stderr] Checking futures-intrusive v0.5.0 [INFO] [stderr] Checking font-types v0.7.2 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking rustybuzz v0.18.0 [INFO] [stderr] Checking svgtypes v0.15.2 [INFO] [stderr] Checking read-fonts v0.22.3 [INFO] [stderr] Checking polling v3.7.3 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Checking fontdb v0.22.0 [INFO] [stderr] Checking regex v1.10.6 [INFO] [stderr] Compiling serde_derive v1.0.210 [INFO] [stderr] Checking simplecss v0.2.1 [INFO] [stderr] Checking unicode-bidi v0.3.15 [INFO] [stderr] Checking unicode-vo v0.1.0 [INFO] [stderr] Checking anstyle-query v1.1.2 [INFO] [stderr] Checking pico-args v0.5.0 [INFO] [stderr] Checking xmlwriter v0.1.0 [INFO] [stderr] Checking colorchoice v1.0.3 [INFO] [stderr] Checking imagesize v0.13.0 [INFO] [stderr] Checking data-url v0.3.1 [INFO] [stderr] Checking anstyle v1.0.10 [INFO] [stderr] Checking anstream v0.6.18 [INFO] [stderr] Checking x11rb v0.13.1 [INFO] [stderr] Checking usvg v0.44.0 [INFO] [stderr] Checking wayland-protocols v0.32.4 [INFO] [stderr] Checking wayland-cursor v0.31.6 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Checking env_filter v0.1.2 [INFO] [stderr] Checking image v0.25.2 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Checking smol_str v0.2.2 [INFO] [stderr] Checking env_logger v0.11.5 [INFO] [stderr] Checking pollster v0.4.0 [INFO] [stderr] Checking serde v1.0.210 [INFO] [stderr] Checking wgpu-hal v22.0.0 [INFO] [stderr] Checking skrifa v0.22.3 [INFO] [stderr] Compiling vello_shaders v0.3.0 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.4 [INFO] [stderr] Checking wayland-protocols-plasma v0.3.4 [INFO] [stderr] Checking serde_json v1.0.128 [INFO] [stderr] Checking wgpu-core v22.1.0 [INFO] [stderr] Checking vello_encoding v0.3.0 [INFO] [stderr] Checking smithay-client-toolkit v0.19.2 [INFO] [stderr] Checking sctk-adwaita v0.10.1 [INFO] [stderr] Checking wgpu v22.1.0 [INFO] [stderr] Checking vello v0.3.0 [INFO] [stderr] Checking vello_svg v0.5.0 [INFO] [stderr] Checking chess_game v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> src/app.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | / enum RenderState<'s> { [INFO] [stdout] 26 | | Active(ActiveRenderState<'s>), [INFO] [stdout] | | ----------------------------- the largest variant contains at least 232 bytes [INFO] [stdout] 27 | | // Cache a window so that it can be reused when the app is resumed after being suspended [INFO] [stdout] 28 | | Suspended(Option>), [INFO] [stdout] | | ------------------------------ the second-largest variant contains at least 8 bytes [INFO] [stdout] 29 | | } [INFO] [stdout] | |_^ the entire enum is at least 232 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 26 - Active(ActiveRenderState<'s>), [INFO] [stdout] 26 + Active(Box>), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> src/app.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | / enum RenderState<'s> { [INFO] [stdout] 26 | | Active(ActiveRenderState<'s>), [INFO] [stdout] | | ----------------------------- the largest variant contains at least 232 bytes [INFO] [stdout] 27 | | // Cache a window so that it can be reused when the app is resumed after being suspended [INFO] [stdout] 28 | | Suspended(Option>), [INFO] [stdout] | | ------------------------------ the second-largest variant contains at least 8 bytes [INFO] [stdout] 29 | | } [INFO] [stdout] | |_^ the entire enum is at least 232 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 26 - Active(ActiveRenderState<'s>), [INFO] [stdout] 26 + Active(Box>), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app.rs:144:17 [INFO] [stdout] | [INFO] [stdout] 144 | / if button == MouseButton::Left && state == ElementState::Pressed { [INFO] [stdout] 145 | | self.logic_handler.on_mouse_click(self.last_cursor_pos.x, self.last_cursor_pos.y); [INFO] [stdout] 146 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 143 ~ WindowEvent::MouseInput { state, button, .. } [INFO] [stdout] 144 ~ if button == MouseButton::Left && state == ElementState::Pressed => { [INFO] [stdout] 145 | self.logic_handler.on_mouse_click(self.last_cursor_pos.x, self.last_cursor_pos.y); [INFO] [stdout] 146 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app.rs:149:17 [INFO] [stdout] | [INFO] [stdout] 149 | / if touch.phase == winit::event::TouchPhase::Ended { [INFO] [stdout] 150 | | self.logic_handler.on_mouse_click(touch.location.x, touch.location.y); [INFO] [stdout] 151 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 148 ~ WindowEvent::Touch(touch) [INFO] [stdout] 149 ~ if touch.phase == winit::event::TouchPhase::Ended => { [INFO] [stdout] 150 | self.logic_handler.on_mouse_click(touch.location.x, touch.location.y); [INFO] [stdout] 151 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/game/board_renderer.rs:78:55 [INFO] [stdout] | [INFO] [stdout] 78 | scene.fill(Fill::NonZero, affine, &color, None, &circle); [INFO] [stdout] | ^^^^^^ help: change this to: `color` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/game/chess_board.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | self.grid.get(x, y).clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.grid.get(x, y)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/game/chess_board.rs:96:35 [INFO] [stdout] | [INFO] [stdout] 96 | Self::is_in_grid(x, y) && self.get_piece(x as usize, y as usize) == None [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `self.get_piece(x as usize, y as usize).is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app.rs:144:17 [INFO] [stdout] | [INFO] [stdout] 144 | / if button == MouseButton::Left && state == ElementState::Pressed { [INFO] [stdout] 145 | | self.logic_handler.on_mouse_click(self.last_cursor_pos.x, self.last_cursor_pos.y); [INFO] [stdout] 146 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 143 ~ WindowEvent::MouseInput { state, button, .. } [INFO] [stdout] 144 ~ if button == MouseButton::Left && state == ElementState::Pressed => { [INFO] [stdout] 145 | self.logic_handler.on_mouse_click(self.last_cursor_pos.x, self.last_cursor_pos.y); [INFO] [stdout] 146 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app.rs:149:17 [INFO] [stdout] | [INFO] [stdout] 149 | / if touch.phase == winit::event::TouchPhase::Ended { [INFO] [stdout] 150 | | self.logic_handler.on_mouse_click(touch.location.x, touch.location.y); [INFO] [stdout] 151 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 148 ~ WindowEvent::Touch(touch) [INFO] [stdout] 149 ~ if touch.phase == winit::event::TouchPhase::Ended => { [INFO] [stdout] 150 | self.logic_handler.on_mouse_click(touch.location.x, touch.location.y); [INFO] [stdout] 151 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ChessGame` [INFO] [stdout] --> src/game.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | / pub fn new() -> Self { [INFO] [stdout] 29 | | Self { [INFO] [stdout] 30 | | #[cfg(not(target_os = "android"))] [INFO] [stdout] 31 | | registry: PieceRegistry::load_from_config(&Path::new("config")), [INFO] [stdout] ... | [INFO] [stdout] 40 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 27 + impl Default for ChessGame { [INFO] [stdout] 28 + fn default() -> Self { [INFO] [stdout] 29 + Self::new() [INFO] [stdout] 30 + } [INFO] [stdout] 31 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/game.rs:31:55 [INFO] [stdout] | [INFO] [stdout] 31 | registry: PieceRegistry::load_from_config(&Path::new("config")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `Path::new("config")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `ChessBoard` which implements the `Copy` trait [INFO] [stdout] --> src/game.rs:49:41 [INFO] [stdout] | [INFO] [stdout] 49 | let mut new_board = self.actual_board().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.actual_board()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/game/board_renderer.rs:78:55 [INFO] [stdout] | [INFO] [stdout] 78 | scene.fill(Fill::NonZero, affine, &color, None, &circle); [INFO] [stdout] | ^^^^^^ help: change this to: `color` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/game/chess_board.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | self.grid.get(x, y).clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.grid.get(x, y)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/game/chess_board.rs:96:35 [INFO] [stdout] | [INFO] [stdout] 96 | Self::is_in_grid(x, y) && self.get_piece(x as usize, y as usize) == None [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `self.get_piece(x as usize, y as usize).is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ChessGame` [INFO] [stdout] --> src/game.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | / pub fn new() -> Self { [INFO] [stdout] 29 | | Self { [INFO] [stdout] 30 | | #[cfg(not(target_os = "android"))] [INFO] [stdout] 31 | | registry: PieceRegistry::load_from_config(&Path::new("config")), [INFO] [stdout] ... | [INFO] [stdout] 40 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 27 + impl Default for ChessGame { [INFO] [stdout] 28 + fn default() -> Self { [INFO] [stdout] 29 + Self::new() [INFO] [stdout] 30 + } [INFO] [stdout] 31 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/game.rs:31:55 [INFO] [stdout] | [INFO] [stdout] 31 | registry: PieceRegistry::load_from_config(&Path::new("config")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `Path::new("config")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `ChessBoard` which implements the `Copy` trait [INFO] [stdout] --> src/game.rs:49:41 [INFO] [stdout] | [INFO] [stdout] 49 | let mut new_board = self.actual_board().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.actual_board()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 45s [INFO] running `Command { std: "docker" "inspect" "3e4675bba16e69a594568a29304a89a723743c9cab0fe66541bcb38098274002", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3e4675bba16e69a594568a29304a89a723743c9cab0fe66541bcb38098274002", kill_on_drop: false }` [INFO] [stdout] 3e4675bba16e69a594568a29304a89a723743c9cab0fe66541bcb38098274002