[INFO] cloning repository https://github.com/Nekrolm/reversi [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Nekrolm/reversi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNekrolm%2Freversi", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNekrolm%2Freversi'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 47591702674401c710e8c1ea18569a4071db29bb [INFO] linting Nekrolm/reversi against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNekrolm%2Freversi" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Nekrolm/reversi [INFO] finished tweaking git repo https://github.com/Nekrolm/reversi [INFO] tweaked toml for git repo https://github.com/Nekrolm/reversi written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Nekrolm/reversi 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/Nekrolm/reversi already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded async-trait v0.1.29 [INFO] [stderr] Downloaded ncurses v5.99.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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 498b8b1cac748d35484f73ca012db22951f9e41363989e89887629a1df501f0d [INFO] running `Command { std: "docker" "start" "-a" "498b8b1cac748d35484f73ca012db22951f9e41363989e89887629a1df501f0d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "498b8b1cac748d35484f73ca012db22951f9e41363989e89887629a1df501f0d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "498b8b1cac748d35484f73ca012db22951f9e41363989e89887629a1df501f0d", kill_on_drop: false }` [INFO] [stdout] 498b8b1cac748d35484f73ca012db22951f9e41363989e89887629a1df501f0d [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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ec0f18dbdb0b8d7ed460923a84dc3fa8452bc639b2af9f810fcec6527f9586ff [INFO] running `Command { std: "docker" "start" "-a" "ec0f18dbdb0b8d7ed460923a84dc3fa8452bc639b2af9f810fcec6527f9586ff", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.10 [INFO] [stderr] Compiling syn v1.0.17 [INFO] [stderr] Compiling libc v0.2.68 [INFO] [stderr] Compiling proc-macro-nested v0.1.4 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Checking futures-core v0.3.4 [INFO] [stderr] Checking futures-sink v0.3.4 [INFO] [stderr] Compiling proc-macro-hack v0.5.15 [INFO] [stderr] Compiling pkg-config v0.3.17 [INFO] [stderr] Checking futures-task v0.3.4 [INFO] [stderr] Checking futures-io v0.3.4 [INFO] [stderr] Compiling getrandom v0.1.14 [INFO] [stderr] Checking ppv-lite86 v0.2.6 [INFO] [stderr] Checking futures-channel v0.3.4 [INFO] [stderr] Compiling ncurses v5.99.0 [INFO] [stderr] Compiling quote v1.0.3 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Compiling futures-macro v0.3.4 [INFO] [stderr] Compiling async-trait v0.1.29 [INFO] [stderr] Checking futures-util v0.3.4 [INFO] [stderr] Checking futures-executor v0.3.4 [INFO] [stderr] Checking futures v0.3.4 [INFO] [stderr] Checking Reversi v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `BorrowMut` and `Borrow` [INFO] [stdout] --> src/game/mod.rs:2:19 [INFO] [stdout] | [INFO] [stdout] 2 | use std::borrow::{BorrowMut, Borrow}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/game/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/game/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | use futures; [INFO] [stdout] | ^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures` [INFO] [stdout] --> src/game/mod.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use futures; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/game/board.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Range` [INFO] [stdout] --> src/view/stdio.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::ops::Range; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `async_trait::async_trait` [INFO] [stdout] --> src/view/curses.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use async_trait::async_trait; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `view::stdio::StdIOView` [INFO] [stdout] --> src/main.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | use view::stdio::StdIOView; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/view/curses.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 96 | / loop { [INFO] [stdout] 97 | | self.window.draw(player, board, self.position.get()); [INFO] [stdout] 98 | | match self.window.action() { [INFO] [stdout] 99 | | Action::Exit => return MoveResponse::Exit, [INFO] [stdout] ... | [INFO] [stdout] 108 | | } [INFO] [stdout] | |_________- any code following this expression is unreachable [INFO] [stdout] 109 | return MoveResponse::Exit; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowMut` and `Borrow` [INFO] [stdout] --> src/game/mod.rs:2:19 [INFO] [stdout] | [INFO] [stdout] 2 | use std::borrow::{BorrowMut, Borrow}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/game/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/game/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | use futures; [INFO] [stdout] | ^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures` [INFO] [stdout] --> src/game/mod.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use futures; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/game/board.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Range` [INFO] [stdout] --> src/view/stdio.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::ops::Range; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `async_trait::async_trait` [INFO] [stdout] --> src/view/curses.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use async_trait::async_trait; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `view::stdio::StdIOView` [INFO] [stdout] --> src/main.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | use view::stdio::StdIOView; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/view/stdio.rs:61:28 [INFO] [stdout] | [INFO] [stdout] 61 | fn handle_error(&self, err : board::MoveError){ [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/view/curses.rs:112:28 [INFO] [stdout] | [INFO] [stdout] 112 | fn handle_error(&self, err : MoveError){ [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/view/mod.rs:11:29 [INFO] [stdout] | [INFO] [stdout] 11 | fn handle_error(& self, err : MoveError) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `my_score` [INFO] [stdout] --> src/view/mod.rs:13:30 [INFO] [stdout] | [INFO] [stdout] 13 | fn handle_result(& self, my_score : u32, other_score : u32) {} [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_my_score` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other_score` [INFO] [stdout] --> src/view/mod.rs:13:46 [INFO] [stdout] | [INFO] [stdout] 13 | fn handle_result(& self, my_score : u32, other_score : u32) {} [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_other_score` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/player/dummy_player.rs:31:32 [INFO] [stdout] | [INFO] [stdout] 31 | fn notify_error(&mut self, err : MoveError) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `my_score` [INFO] [stdout] --> src/player/dummy_player.rs:32:31 [INFO] [stdout] | [INFO] [stdout] 32 | fn send_result(&mut self, my_score : u32, other_score : u32) {} [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_my_score` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other_score` [INFO] [stdout] --> src/player/dummy_player.rs:32:47 [INFO] [stdout] | [INFO] [stdout] 32 | fn send_result(&mut self, my_score : u32, other_score : u32) {} [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_other_score` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StdIOView` is never constructed [INFO] [stdout] --> src/view/stdio.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct StdIOView { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_cell` is never used [INFO] [stdout] --> src/view/stdio.rs:15:4 [INFO] [stdout] | [INFO] [stdout] 15 | fn draw_cell(cell : board::CellState){ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_board` is never used [INFO] [stdout] --> src/view/stdio.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn draw_board(board: &board::Board) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | / return match p { [INFO] [stdout] 25 | | PlayerId::Black => PlayerId::White, [INFO] [stdout] 26 | | PlayerId::White => PlayerId::Black, [INFO] [stdout] 27 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 24 ~ match p { [INFO] [stdout] 25 + PlayerId::Black => PlayerId::White, [INFO] [stdout] 26 + PlayerId::White => PlayerId::Black, [INFO] [stdout] 27 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | return Cell{x, y}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 41 - return Cell{x, y}; [INFO] [stdout] 41 + Cell{x, y} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | return &(self.field[cell.x as usize][cell.y as usize]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 55 - return &(self.field[cell.x as usize][cell.y as usize]); [INFO] [stdout] 55 + &(self.field[cell.x as usize][cell.y as usize]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | return &mut (self.field[cell.x as usize][cell.y as usize]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 61 - return &mut (self.field[cell.x as usize][cell.y as usize]); [INFO] [stdout] 61 + &mut (self.field[cell.x as usize][cell.y as usize]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | return Cell { x: cell.x + dir.x, y: cell.y + dir.y } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 79 - return Cell { x: cell.x + dir.x, y: cell.y + dir.y } [INFO] [stdout] 79 + Cell { x: cell.x + dir.x, y: cell.y + dir.y } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | return Board{field}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 91 - return Board{field}; [INFO] [stdout] 91 + Board{field} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | return BOARD_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 95 - return BOARD_SIZE; [INFO] [stdout] 95 + BOARD_SIZE [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | / return VALID_INDEX_RANGE.contains(&cell.x) [INFO] [stdout] 100 | | && VALID_INDEX_RANGE.contains(&cell.y) [INFO] [stdout] | |__________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 99 ~ VALID_INDEX_RANGE.contains(&cell.x) [INFO] [stdout] 100 + && VALID_INDEX_RANGE.contains(&cell.y) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/game/board.rs:113:64 [INFO] [stdout] | [INFO] [stdout] 113 | return self.is_valid_cell(cell) && cell_counter > 0 && !self[cell].is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self[cell].is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | return self.is_valid_cell(cell) && cell_counter > 0 && !self[cell].is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 113 - return self.is_valid_cell(cell) && cell_counter > 0 && !self[cell].is_none() [INFO] [stdout] 113 + self.is_valid_cell(cell) && cell_counter > 0 && !self[cell].is_none() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | / return DIRECTIONS.iter().any( [INFO] [stdout] 119 | | |dir| self.check_direction(cell, *dir, other_player)); [INFO] [stdout] | |_________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 118 ~ DIRECTIONS.iter().any( [INFO] [stdout] 119 ~ |dir| self.check_direction(cell, *dir, other_player)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | return moves; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 149 - return moves; [INFO] [stdout] 149 + moves [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | return cnt; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 163 - return cnt; [INFO] [stdout] 163 + cnt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | / return match self.can_move_cell(cell, player) { [INFO] [stdout] 189 | | None => { [INFO] [stdout] 190 | | self.apply_move(cell, player); [INFO] [stdout] 191 | | return None; [INFO] [stdout] 192 | | }, [INFO] [stdout] 193 | | err => err [INFO] [stdout] 194 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 188 ~ match self.can_move_cell(cell, player) { [INFO] [stdout] 189 + None => { [INFO] [stdout] 190 + self.apply_move(cell, player); [INFO] [stdout] 191 + return None; [INFO] [stdout] 192 + }, [INFO] [stdout] 193 + err => err [INFO] [stdout] 194 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | return !self.available_moves(player).is_empty(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 198 - return !self.available_moves(player).is_empty(); [INFO] [stdout] 198 + !self.available_moves(player).is_empty() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/mod.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | return board.can_move(player.player_id()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 29 - return board.can_move(player.player_id()); [INFO] [stdout] 29 + board.can_move(player.player_id()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/mod.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | return board.try_move(cell,player.player_id()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 34 - return board.try_move(cell,player.player_id()); [INFO] [stdout] 34 + board.try_move(cell,player.player_id()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/mod.rs:56:25 [INFO] [stdout] | [INFO] [stdout] 56 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 - return true; [INFO] [stdout] 56 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be written as a `let` statement [INFO] [stdout] --> src/game/mod.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | / match &mut self.players { [INFO] [stdout] 41 | | Players {current, next} => { [INFO] [stdout] 42 | | if !can_move(current.as_ref(), &self.board){ [INFO] [stdout] 43 | | if can_move(next.as_ref(), &self.board){ [INFO] [stdout] ... | [INFO] [stdout] 61 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] help: consider using a `let` statement [INFO] [stdout] | [INFO] [stdout] 40 ~ let Players {current, next} = &mut self.players; [INFO] [stdout] 41 + { [INFO] [stdout] 42 + if !can_move(current.as_ref(), &self.board){ [INFO] [stdout] 43 + if can_move(next.as_ref(), &self.board){ [INFO] [stdout] 44 + self.players.flip(); [INFO] [stdout] 45 + return true; [INFO] [stdout] 46 + } [INFO] [stdout] 47 + return false; [INFO] [stdout] 48 + } [INFO] [stdout] 49 + use MoveResponse::{*}; [INFO] [stdout] 50 + match current.request_move(&self.board) { [INFO] [stdout] 51 + Move(cell) => { [INFO] [stdout] 52 + match try_move_cell(current.as_ref(), cell, &mut self.board) { [INFO] [stdout] 53 + None => self.players.flip(), [INFO] [stdout] 54 + Some(err) => current.notify_error(err) [INFO] [stdout] 55 + } [INFO] [stdout] 56 + return true; [INFO] [stdout] 57 + } [INFO] [stdout] 58 + Exit => false [INFO] [stdout] 59 + } [INFO] [stdout] 60 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/mod.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | / return Game{board :Board::new(), [INFO] [stdout] 75 | | players: Players{ [INFO] [stdout] 76 | | current:first, [INFO] [stdout] 77 | | next:second} [INFO] [stdout] 78 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 74 ~ Game{board :Board::new(), [INFO] [stdout] 75 + players: Players{ [INFO] [stdout] 76 + current:first, [INFO] [stdout] 77 + next:second} [INFO] [stdout] 78 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/view/stdio.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | return Move(Cell::new( v[0], v[1])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 58 - return Move(Cell::new( v[0], v[1])); [INFO] [stdout] 58 + Move(Cell::new( v[0], v[1])) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/view/curses.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | / return match player { [INFO] [stdout] 15 | | PlayerId::White => 'O', [INFO] [stdout] 16 | | PlayerId::Black => 'X', [INFO] [stdout] 17 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 14 ~ match player { [INFO] [stdout] 15 + PlayerId::White => 'O', [INFO] [stdout] 16 + PlayerId::Black => 'X', [INFO] [stdout] 17 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/view/curses.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | / return match ncurses::wgetch(self.window) { [INFO] [stdout] 62 | | ncurses::KEY_UP => Action::Offset(Cell::new(-1, 0)), [INFO] [stdout] 63 | | ncurses::KEY_DOWN => Action::Offset(Cell::new(1, 0)), [INFO] [stdout] 64 | | ncurses::KEY_LEFT => Action::Offset(Cell::new(0, -1)), [INFO] [stdout] ... | [INFO] [stdout] 68 | | _ => Action::Offset(Cell::new(0,0)) [INFO] [stdout] 69 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 61 ~ match ncurses::wgetch(self.window) { [INFO] [stdout] 62 + ncurses::KEY_UP => Action::Offset(Cell::new(-1, 0)), [INFO] [stdout] 63 + ncurses::KEY_DOWN => Action::Offset(Cell::new(1, 0)), [INFO] [stdout] 64 + ncurses::KEY_LEFT => Action::Offset(Cell::new(0, -1)), [INFO] [stdout] 65 + ncurses::KEY_RIGHT => Action::Offset(Cell::new(0, 1)), [INFO] [stdout] 66 + SPACE => Action::Accept, [INFO] [stdout] 67 + EXIT => Action::Exit, [INFO] [stdout] 68 + _ => Action::Offset(Cell::new(0,0)) [INFO] [stdout] 69 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/view/curses.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | return Self { window, position : StdCell::new(Cell::new(0,0))} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 89 - return Self { window, position : StdCell::new(Cell::new(0,0))} [INFO] [stdout] 89 + Self { window, position : StdCell::new(Cell::new(0,0))} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/view/curses.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | return MoveResponse::Exit; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 109 - return MoveResponse::Exit; [INFO] [stdout] 109 + MoveResponse::Exit [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/player/user_player.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | return Self {id, view} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 14 - return Self {id, view} [INFO] [stdout] 14 + Self {id, view} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/player/user_player.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | return self.id; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 - return self.id; [INFO] [stdout] 20 + self.id [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/player/user_player.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | return self.view.input(self.player_id(), board) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 23 - return self.view.input(self.player_id(), board) [INFO] [stdout] 23 + self.view.input(self.player_id(), board) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/player/dummy_player.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | return Self {id, rnd : rand::thread_rng()}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 - return Self {id, rnd : rand::thread_rng()}; [INFO] [stdout] 13 + Self {id, rnd : rand::thread_rng()} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/player/dummy_player.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | return self.id; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 21 - return self.id; [INFO] [stdout] 21 + self.id [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/player/dummy_player.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | / return match board.available_moves(self.player_id()).choose(&mut self.rnd) { [INFO] [stdout] 26 | | None => MoveResponse::Exit, [INFO] [stdout] 27 | | Some(cell) => MoveResponse::Move(*cell) [INFO] [stdout] 28 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 ~ match board.available_moves(self.player_id()).choose(&mut self.rnd) { [INFO] [stdout] 26 + None => MoveResponse::Exit, [INFO] [stdout] 27 + Some(cell) => MoveResponse::Move(*cell) [INFO] [stdout] 28 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/view/curses.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 96 | / loop { [INFO] [stdout] 97 | | self.window.draw(player, board, self.position.get()); [INFO] [stdout] 98 | | match self.window.action() { [INFO] [stdout] 99 | | Action::Exit => return MoveResponse::Exit, [INFO] [stdout] ... | [INFO] [stdout] 108 | | } [INFO] [stdout] | |_________- any code following this expression is unreachable [INFO] [stdout] 109 | return MoveResponse::Exit; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/view/stdio.rs:61:28 [INFO] [stdout] | [INFO] [stdout] 61 | fn handle_error(&self, err : board::MoveError){ [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/view/curses.rs:112:28 [INFO] [stdout] | [INFO] [stdout] 112 | fn handle_error(&self, err : MoveError){ [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/view/mod.rs:11:29 [INFO] [stdout] | [INFO] [stdout] 11 | fn handle_error(& self, err : MoveError) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `my_score` [INFO] [stdout] --> src/view/mod.rs:13:30 [INFO] [stdout] | [INFO] [stdout] 13 | fn handle_result(& self, my_score : u32, other_score : u32) {} [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_my_score` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other_score` [INFO] [stdout] --> src/view/mod.rs:13:46 [INFO] [stdout] | [INFO] [stdout] 13 | fn handle_result(& self, my_score : u32, other_score : u32) {} [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_other_score` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/player/dummy_player.rs:31:32 [INFO] [stdout] | [INFO] [stdout] 31 | fn notify_error(&mut self, err : MoveError) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `my_score` [INFO] [stdout] --> src/player/dummy_player.rs:32:31 [INFO] [stdout] | [INFO] [stdout] 32 | fn send_result(&mut self, my_score : u32, other_score : u32) {} [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_my_score` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other_score` [INFO] [stdout] --> src/player/dummy_player.rs:32:47 [INFO] [stdout] | [INFO] [stdout] 32 | fn send_result(&mut self, my_score : u32, other_score : u32) {} [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_other_score` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | / return match p { [INFO] [stdout] 25 | | PlayerId::Black => PlayerId::White, [INFO] [stdout] 26 | | PlayerId::White => PlayerId::Black, [INFO] [stdout] 27 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 24 ~ match p { [INFO] [stdout] 25 + PlayerId::Black => PlayerId::White, [INFO] [stdout] 26 + PlayerId::White => PlayerId::Black, [INFO] [stdout] 27 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | return Cell{x, y}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 41 - return Cell{x, y}; [INFO] [stdout] 41 + Cell{x, y} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | return &(self.field[cell.x as usize][cell.y as usize]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 55 - return &(self.field[cell.x as usize][cell.y as usize]); [INFO] [stdout] 55 + &(self.field[cell.x as usize][cell.y as usize]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | return &mut (self.field[cell.x as usize][cell.y as usize]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 61 - return &mut (self.field[cell.x as usize][cell.y as usize]); [INFO] [stdout] 61 + &mut (self.field[cell.x as usize][cell.y as usize]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | return Cell { x: cell.x + dir.x, y: cell.y + dir.y } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 79 - return Cell { x: cell.x + dir.x, y: cell.y + dir.y } [INFO] [stdout] 79 + Cell { x: cell.x + dir.x, y: cell.y + dir.y } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | return Board{field}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 91 - return Board{field}; [INFO] [stdout] 91 + Board{field} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | return BOARD_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 95 - return BOARD_SIZE; [INFO] [stdout] 95 + BOARD_SIZE [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | / return VALID_INDEX_RANGE.contains(&cell.x) [INFO] [stdout] 100 | | && VALID_INDEX_RANGE.contains(&cell.y) [INFO] [stdout] | |__________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 99 ~ VALID_INDEX_RANGE.contains(&cell.x) [INFO] [stdout] 100 + && VALID_INDEX_RANGE.contains(&cell.y) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/game/board.rs:113:64 [INFO] [stdout] | [INFO] [stdout] 113 | return self.is_valid_cell(cell) && cell_counter > 0 && !self[cell].is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self[cell].is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | return self.is_valid_cell(cell) && cell_counter > 0 && !self[cell].is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 113 - return self.is_valid_cell(cell) && cell_counter > 0 && !self[cell].is_none() [INFO] [stdout] 113 + self.is_valid_cell(cell) && cell_counter > 0 && !self[cell].is_none() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | / return DIRECTIONS.iter().any( [INFO] [stdout] 119 | | |dir| self.check_direction(cell, *dir, other_player)); [INFO] [stdout] | |_________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 118 ~ DIRECTIONS.iter().any( [INFO] [stdout] 119 ~ |dir| self.check_direction(cell, *dir, other_player)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | return moves; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 149 - return moves; [INFO] [stdout] 149 + moves [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | return cnt; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 163 - return cnt; [INFO] [stdout] 163 + cnt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | / return match self.can_move_cell(cell, player) { [INFO] [stdout] 189 | | None => { [INFO] [stdout] 190 | | self.apply_move(cell, player); [INFO] [stdout] 191 | | return None; [INFO] [stdout] 192 | | }, [INFO] [stdout] 193 | | err => err [INFO] [stdout] 194 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 188 ~ match self.can_move_cell(cell, player) { [INFO] [stdout] 189 + None => { [INFO] [stdout] 190 + self.apply_move(cell, player); [INFO] [stdout] 191 + return None; [INFO] [stdout] 192 + }, [INFO] [stdout] 193 + err => err [INFO] [stdout] 194 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/board.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | return !self.available_moves(player).is_empty(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 198 - return !self.available_moves(player).is_empty(); [INFO] [stdout] 198 + !self.available_moves(player).is_empty() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/mod.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | return board.can_move(player.player_id()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 29 - return board.can_move(player.player_id()); [INFO] [stdout] 29 + board.can_move(player.player_id()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/mod.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | return board.try_move(cell,player.player_id()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 34 - return board.try_move(cell,player.player_id()); [INFO] [stdout] 34 + board.try_move(cell,player.player_id()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/mod.rs:56:25 [INFO] [stdout] | [INFO] [stdout] 56 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 - return true; [INFO] [stdout] 56 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be written as a `let` statement [INFO] [stdout] --> src/game/mod.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | / match &mut self.players { [INFO] [stdout] 41 | | Players {current, next} => { [INFO] [stdout] 42 | | if !can_move(current.as_ref(), &self.board){ [INFO] [stdout] 43 | | if can_move(next.as_ref(), &self.board){ [INFO] [stdout] ... | [INFO] [stdout] 61 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] help: consider using a `let` statement [INFO] [stdout] | [INFO] [stdout] 40 ~ let Players {current, next} = &mut self.players; [INFO] [stdout] 41 + { [INFO] [stdout] 42 + if !can_move(current.as_ref(), &self.board){ [INFO] [stdout] 43 + if can_move(next.as_ref(), &self.board){ [INFO] [stdout] 44 + self.players.flip(); [INFO] [stdout] 45 + return true; [INFO] [stdout] 46 + } [INFO] [stdout] 47 + return false; [INFO] [stdout] 48 + } [INFO] [stdout] 49 + use MoveResponse::{*}; [INFO] [stdout] 50 + match current.request_move(&self.board) { [INFO] [stdout] 51 + Move(cell) => { [INFO] [stdout] 52 + match try_move_cell(current.as_ref(), cell, &mut self.board) { [INFO] [stdout] 53 + None => self.players.flip(), [INFO] [stdout] 54 + Some(err) => current.notify_error(err) [INFO] [stdout] 55 + } [INFO] [stdout] 56 + return true; [INFO] [stdout] 57 + } [INFO] [stdout] 58 + Exit => false [INFO] [stdout] 59 + } [INFO] [stdout] 60 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/mod.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | / return Game{board :Board::new(), [INFO] [stdout] 75 | | players: Players{ [INFO] [stdout] 76 | | current:first, [INFO] [stdout] 77 | | next:second} [INFO] [stdout] 78 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 74 ~ Game{board :Board::new(), [INFO] [stdout] 75 + players: Players{ [INFO] [stdout] 76 + current:first, [INFO] [stdout] 77 + next:second} [INFO] [stdout] 78 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/view/stdio.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | return Move(Cell::new( v[0], v[1])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 58 - return Move(Cell::new( v[0], v[1])); [INFO] [stdout] 58 + Move(Cell::new( v[0], v[1])) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/view/curses.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | / return match player { [INFO] [stdout] 15 | | PlayerId::White => 'O', [INFO] [stdout] 16 | | PlayerId::Black => 'X', [INFO] [stdout] 17 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 14 ~ match player { [INFO] [stdout] 15 + PlayerId::White => 'O', [INFO] [stdout] 16 + PlayerId::Black => 'X', [INFO] [stdout] 17 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/view/curses.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | / return match ncurses::wgetch(self.window) { [INFO] [stdout] 62 | | ncurses::KEY_UP => Action::Offset(Cell::new(-1, 0)), [INFO] [stdout] 63 | | ncurses::KEY_DOWN => Action::Offset(Cell::new(1, 0)), [INFO] [stdout] 64 | | ncurses::KEY_LEFT => Action::Offset(Cell::new(0, -1)), [INFO] [stdout] ... | [INFO] [stdout] 68 | | _ => Action::Offset(Cell::new(0,0)) [INFO] [stdout] 69 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 61 ~ match ncurses::wgetch(self.window) { [INFO] [stdout] 62 + ncurses::KEY_UP => Action::Offset(Cell::new(-1, 0)), [INFO] [stdout] 63 + ncurses::KEY_DOWN => Action::Offset(Cell::new(1, 0)), [INFO] [stdout] 64 + ncurses::KEY_LEFT => Action::Offset(Cell::new(0, -1)), [INFO] [stdout] 65 + ncurses::KEY_RIGHT => Action::Offset(Cell::new(0, 1)), [INFO] [stdout] 66 + SPACE => Action::Accept, [INFO] [stdout] 67 + EXIT => Action::Exit, [INFO] [stdout] 68 + _ => Action::Offset(Cell::new(0,0)) [INFO] [stdout] 69 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/view/curses.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | return Self { window, position : StdCell::new(Cell::new(0,0))} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 89 - return Self { window, position : StdCell::new(Cell::new(0,0))} [INFO] [stdout] 89 + Self { window, position : StdCell::new(Cell::new(0,0))} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/view/curses.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | return MoveResponse::Exit; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 109 - return MoveResponse::Exit; [INFO] [stdout] 109 + MoveResponse::Exit [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/player/user_player.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | return Self {id, view} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 14 - return Self {id, view} [INFO] [stdout] 14 + Self {id, view} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/player/user_player.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | return self.id; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 - return self.id; [INFO] [stdout] 20 + self.id [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/player/user_player.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | return self.view.input(self.player_id(), board) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 23 - return self.view.input(self.player_id(), board) [INFO] [stdout] 23 + self.view.input(self.player_id(), board) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/player/dummy_player.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | return Self {id, rnd : rand::thread_rng()}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 - return Self {id, rnd : rand::thread_rng()}; [INFO] [stdout] 13 + Self {id, rnd : rand::thread_rng()} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/player/dummy_player.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | return self.id; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 21 - return self.id; [INFO] [stdout] 21 + self.id [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/player/dummy_player.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | / return match board.available_moves(self.player_id()).choose(&mut self.rnd) { [INFO] [stdout] 26 | | None => MoveResponse::Exit, [INFO] [stdout] 27 | | Some(cell) => MoveResponse::Move(*cell) [INFO] [stdout] 28 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 ~ match board.available_moves(self.player_id()).choose(&mut self.rnd) { [INFO] [stdout] 26 + None => MoveResponse::Exit, [INFO] [stdout] 27 + Some(cell) => MoveResponse::Move(*cell) [INFO] [stdout] 28 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.88s [INFO] running `Command { std: "docker" "inspect" "ec0f18dbdb0b8d7ed460923a84dc3fa8452bc639b2af9f810fcec6527f9586ff", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ec0f18dbdb0b8d7ed460923a84dc3fa8452bc639b2af9f810fcec6527f9586ff", kill_on_drop: false }` [INFO] [stdout] ec0f18dbdb0b8d7ed460923a84dc3fa8452bc639b2af9f810fcec6527f9586ff